筛选注册表调用

注册表筛选驱动程序是筛选注册表调用的任何内核模式驱动程序,例如防病毒软件包的驱动程序组件。 实现注册表的配置管理器允许注册表筛选驱动程序筛选任何线程对注册表函数的调用。 Microsoft Windows XP 首先支持筛选注册表调用。

在 Windows XP 上,注册表筛选驱动程序可以调用 CmRegisterCallback 来注册 RegistryCallback 例程,并调用 CmUnRegisterCallback 来注销回调例程。 RegistryCallback 例程在配置管理器处理操作之前接收每个注册表操作的通知。 一组 REG_XXX_KEY_INFORMATION 数据结构包含有关每个注册表操作的信息。 RegistryCallback 例程可以阻止注册表操作。 当配置管理器完成创建或打开注册表项时,回调例程也会收到通知。

Windows Server 2003 提供其他完成通知。

Windows Vista 提供以下附加注册表筛选功能:

  • 注册表筛选驱动程序可以在驱动程序堆栈中分层,堆栈中的每个驱动程序都可以筛选注册表操作。

  • CmRegisterCallback 例程将替换为 CmRegisterCallbackEx 例程。

  • 驱动程序可以完全处理注册表操作 (或将请求的操作重定向到其他操作) ,并阻止配置管理器处理该操作。

  • 驱动程序可以将上下文信息分配给单个注册表操作或键对象。

  • 驱动程序可以修改注册表操作的输出参数和返回值。

  • 其他成员已添加到所有 REG_XXX_KEY_INFORMATION 数据结构。

  • 驱动程序接收有关其他注册表操作的通知。

有关驱动程序可以在每个 Windows 版本上筛选的注册表操作的列表,请参阅 REG_NOTIFY_CLASS

若要详细了解如何筛选注册表调用,请参阅以下主题:

注册通知

处理通知

支持分层注册表筛选驱动程序

指定上下文信息

获取其他注册表信息

注册表通知中的项对象指针无效

筛选针对应用程序配置单元执行的注册表操作