我想监控一台windows机器。我创建了一个 Windows 服务,我的想法是在进程尝试创建 new 注册表项时收到通知。
我用
RegistryCallback
签名如下
NTSTATUS RegistryCallback(
_In_ PVOID CallbackContext,
_In_opt_ PVOID Argument1,
_In_opt_ PVOID Argument2
)
RegistryCallback 已通过 CmRegisterCallback 注册。问题是每次创建注册表项时都会通知我,但是我只想在创建新注册表项时收到通知,或者至少获取该注册表项已经存在的信息,有什么办法吗?
您不能请求特定的通知,您必须全部接收。然而,
Argument1
告诉你正在执行什么样的操作,所以你可以只处理你感兴趣的。有关操作的信息。例如,当 Argument2
是 Argument1
时,Argument1
指向一个 RegNtPostCreateKeyEx
结构,其 Argument2
字段指向一个
REG_POST_OPERATION_INFORMATION
结构,其 PreInformation
字段告诉您键是否已经存在或不。