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 值之一:

返回代码 说明
STATUS_FLT_INSTANCE_ALTITUDE_COLLISION
调用驱动程序或其他驱动程序已经为指定的高度注册了 RegistryCallback 例程。
STATUS_INSUFFICIENT_RESOURCES
尝试分配内存失败。

注解

CmRegisterCallbackEx 例程从 Windows Vista 开始可用。

驱动程序可以调用 CmRegisterCallbackCmRegisterCallbackEx 来注册 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)

另请参阅

CmRegisterCallback

CmUnRegisterCallback

DRIVER_OBJECT

RegistryCallback

UNICODE_STRING