IofGetDriverProxyWrapperFromEndpoint 函数 (wdm.h)

IofGetDriverProxyWrapperFromEndpoint 函数使用终结点函数指针获取指向终结点函数包装器的指针。

Syntax

NTSTATUS IofGetDriverProxyWrapperFromEndpoint(
  PDRIVER_PROXY_EXTENSION                 DriverProxyExtension,
  PDRIVER_PROXY_ENDPOINT_FUNCTION         Endpoint,
  PDRIVER_PROXY_WRAPPED_ENDPOINT_FUNCTION *Wrapper
);

参数

DriverProxyExtension

[in]指向终结点注册到的 DriverProxy 扩展的指针。 此扩展是在之前对 IoCreateDriverProxyExtension 的调用中创建的。

Endpoint

[in]指向要为其查找包装器的终结点函数的指针。 这必须是以前向 IoRegisterDriverProxyEndpoints 注册的函数指针。

Wrapper

[out]指向接收指向包装终结点函数的指针的变量的指针。 如果找到终结点,则会指向应调用的包装函数,而不是原始终结点。

返回值

IofGetDriverProxyWrapperFromEndpoint 返回以下 NTSTATUS 值之一:

返回代码 Description
STATUS_SUCCESS 已成功找到并返回包装函数。
STATUS_NOT_FOUND 在注册的终结点中找不到指定的终结点函数。

注解

此函数是检索 Driver Hot-Swap V2 中的终结点包装器的标准方法。 传递给此函数的终结点指针必须与在自动终结点枚举过程中标识的指针完全匹配。

若要避免在调用此函数时出现编译器警告,可能需要强制转换 EndpointWrapper 参数。 为方便起见,提供了自动处理类型转换的宏 IoGetDriverProxyWrapperFromEndpoint 。 建议使用宏,而不是直接调用此函数。

可以在任何 IRQL 级别调用该函数,并执行快速查找作。

获取包装器后,驱动程序应调用包装函数而不是原始终结点函数,以启用可热交换功能。

要求

Requirement 价值
目标平台 普遍
Header wdm.h
Library NtosKrnl.lib
IRQL 任何级别

另请参阅

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION