DRIVER_PROXY_ENDPOINT_FUNCTION回调定义 DriverProxy 系统中热交换终结点函数的函数签名。 这是一种泛型函数指针类型,表示任何可通过驱动程序 Hot-Swap 框架进行热交换的驱动程序函数。
Syntax
DRIVER_PROXY_ENDPOINT_FUNCTION DriverProxyEndpointFunction;
VOID DriverProxyEndpointFunction()
{...}
返回值
None
注解
终结点函数是可在运行时替换的驱动程序实现的函数,无需卸载驱动程序。 DriverProxy 系统创建包装函数,用于将调用重定向到每个终结点函数的当前实现,从而启用热交换功能。
此回调类型用作 DriverProxy 系统的泛型函数指针。 在实践中,终结点函数将具有不同的签名,具体取决于其特定用途,但它们都被视为 DriverProxy 基础结构中的 DRIVER_PROXY_ENDPOINT_FUNCTION 指针。
在 Driver Hot-Swap V2 中,通过编译器和链接器分析在生成过程中自动发现终结点函数。 编译器标识应可热交换的函数,并将有关这些 .shsept 函数的信息放在二进制文件的节中。
终结点函数的主要特征:
- 可以通过 DriverProxy 系统在运行时替换它们
- 它们通过 IoGetDriverProxyWrapperFromEndpoint 返回的包装函数进行访问
- 它们必须与 IoCreateDriverProxyExtension 创建的 DriverProxy 扩展相关联
- 其更换是通过 DriverProxy 基础结构协调的,以确保线程安全
终结点函数的实际 IRQL 要求取决于要实现的特定函数。 驱动程序应根据预期使用情况的 IRQL 约束设计其终结点函数。
要求
| Requirement | 价值 |
|---|---|
| 目标平台 | 普遍 |
| Header | wdm.h |
| IRQL | Variable |
另请参阅
IoGetDriverProxyWrapperFromEndpoint