RegistryCallback和RegCreateKeyEx

时间:2013-05-29 17:47:49

标签: windows winapi registry driver windows-kernel

我监视一些Windows机器。我运行了我编写的Windows服务,当进程尝试创建新的注册表项时,我的目的是通知。

我将RegistryCallback与以下签名

一起使用
NTSTATUS RegistryCallback(
  _In_      PVOID CallbackContext,
  _In_opt_  PVOID Argument1,
  _In_opt_  PVOID Argument2
)

RegistryCallback已在CmRegisterCallback中注册。问题是我收到每个注册表项创建的通知,我仍然只想通知创建新的注册表项,或者至少获取该密钥已经存在的信息,有没有办法这样做?

1 个答案:

答案 0 :(得分:3)

您无法请求特定通知,您必须全部接收。但是,Argument1会告诉您正在执行哪种操作,因此您只能处理您感兴趣的操作。Argument2包含指向各种结构的指针,具体取决于Argument1的值,它为您提供有关操作的更详细信息。例如,当Argument1RegNtPostCreateKeyEx时,Argument2指向REG_POST_OPERATION_INFORMATION结构,其PreInformation字段指向REG_CREATE_KEY_INFORMATION结构Disposition }}字段告诉您密钥是否已存在。