cmRegisterCallbackEx 函数 (wdm.h)
CmRegisterCallbackEx 例程注册 RegistryCallback 例程。
语法
NTSTATUS CmRegisterCallbackEx(
[in] PEX_CALLBACK_FUNCTION Function,
[in] PCUNICODE_STRING Altitude,
[in] PVOID Driver,
[in, optional] PVOID Context,
[out] PLARGE_INTEGER Cookie,
PVOID Reserved
);
参数
[in] Function
指向要注册的 RegistryCallback 例程的指针。
[in] Altitude
指向 UNICODE_STRING 结构的指针。 此结构必须包含表示调用微筛选器驱动程序的高度的字符串。 有关详细信息,请参阅“备注”。
[in] Driver
指向表示驱动程序的 DRIVER_OBJECT 结构的指针。
[in, optional] Context
驱动程序定义的值,配置管理器将它作为 CallbackContext 参数传递给 RegistryCallback 例程。
[out] Cookie
指向LARGE_INTEGER变量的指针,该变量接收标识回调例程的值。 取消注册回调例程时,将此值作为 Cookie 参数传递给 CmUnRegisterCallback。
Reserved
此参数留待将来使用。
返回值
如果操作成功,CmRegisterCallbackEx 将返回STATUS_SUCCESS。 否则,此例程可能会返回以下 NTSTATUS 值之一:
返回代码 | 说明 |
---|---|
|
调用驱动程序或其他驱动程序已经为指定的高度注册了 RegistryCallback 例程。 |
|
尝试分配内存失败。 |
注解
CmRegisterCallbackEx 例程从 Windows Vista 开始可用。
驱动程序可以调用 CmRegisterCallback 或 CmRegisterCallbackEx 来注册 RegistryCallback 例程,每次线程对注册表执行操作时都会调用该例程。
当加载微筛选器时, Altitude 参数定义微筛选器驱动程序相对于 I/O 堆栈中其他微筛选器的位置。 向微筛选器分配高度由 Microsoft 管理。 有关海拔高度的详细信息,请参阅 微筛选器驱动程序的加载顺序组和海拔高度。
调用 CmUnRegisterCallback 以取消注册 CmRegisterCallbackEx 注册的回调例程。
有关 CmRegisterCallbackEx 和筛选注册表操作的详细信息,请参阅 筛选注册表调用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , IrqlExApcLte2 (wdm) |