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 例程,每次线程在注册表上执行作时都会调用该例程。

海拔 参数定义小筛选器驱动程序相对于 I/O 堆栈中其他微筛选器的位置(加载微型筛选器时)。 将高度分配给微筛选器由Microsoft管理。 有关海拔的详细信息,请参阅 微型筛选驱动程序的加载顺序组和海拔高度。

调用 CmUnRegisterCallback 以取消注册 CmRegisterCallbackEx 注册的回调例程。

有关 CmRegisterCallbackEx 和筛选注册表作的详细信息,请参阅 筛选注册表调用

要求

要求 价值
最低支持的客户端 从 Windows Vista 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIs(storport)IrqlExApcLte2(wdm)

另请参阅

CmRegisterCallback

CmUnRegisterCallback

DRIVER_OBJECT

RegistryCallback

UNICODE_STRING