【发布时间】:2012-04-20 22:58:42
【问题描述】:
我正在编写一个内核驱动程序,它通过 CmRegisterCallbackEx 注册注册表例程回调。我想获得关键的完整路径并通过 DbgPrint 打印出来。在回调中,我使用带有 KeyNameInformation 标志的 ZwQueryKey 成功查询了 Key 指针,但在 KEY_NAME_INFORMATION 结构的文档中我读到:
在 Windows Vista 和更高版本的 Windows 中可用 操作系统。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff553381(v=vs.85).aspx
那么有没有办法在 windows xp 的内核中获取完整的注册表路径?我知道这是可能的,因为 SysInternals 工具已经具有此功能,并且在 xp 中运行良好。
谢谢
更新
我刚刚尝试在 XP SP2 上使用 KeyNameInformation 标志获取密钥完整路径(如 MSDN 所述,XP 不支持此标志,请参见上面的链接),令我惊讶的是,它成功了。任何人都知道为什么 MSDN 声明不支持此标志?这是一个简单的错误还是我误解了什么?
谢谢。
【问题讨论】:
-
尝试标记你的编程语言,这样更容易提供帮助..
-
我猜是因为 XP EOL 不支持它?
-
@hellork,EOL 是什么意思?实际上,看起来它是完全支持的。这可能是文档中的错误。我已经报告了,希望他们能修复
-
生命终结,因为他们过去可能支持它,但现在他们不再关心 XP。
标签: c windows callback registry kernel