-1

我想监控一台windows机器。我创建了一个 Windows 服务,我的目的是在进程尝试创建新的注册表项时收到通知。

我使用RegistryCallback 以下签名

NTSTATUS RegistryCallback(
  _In_      PVOID CallbackContext,
  _In_opt_  PVOID Argument1,
  _In_opt_  PVOID Argument2
)

RegistryCallback 已使用 CmRegisterCallback 注册。问题是我在每次创建注册表项时都会收到通知,但是我只想在创建新注册表项时收到通知,或者至少要获得该项已经存在的信息,有什么办法吗?

4

1 回答 1

3

您不能请求特定的通知,您必须全部接收。但是,Argument1它会告诉您正在执行哪种操作,因此您只能处理您感兴趣的操作。 Argument2包含指向各种结构的指针,具体取决于 的值Argument1,它为您提供有关操作的更详细信息。例如,when Argument1is指向一个结构RegNtPostCreateKeyEx,其字段指向一个结构,其字段告诉您键是否已存在。Argument2REG_POST_OPERATION_INFORMATIONPreInformationREG_CREATE_KEY_INFORMATIONDisposition

于 2013-05-29T19:36:12.857 回答