ObReferenceObjectByName

ObReferenceObjectByName

我读了一篇非常有趣的文章,内容涉及使用wdk编写驱动程序,其使用的功能之一称为ObReferenceObjectByName。此功能使我很头疼。第一件坏事是微软没有记录在案。第二件事是,本文中使用的语言是C++,我想将代码保存在纯C语言中。我知道大多数时候这应该不是问题,但我没有-因为我的生活-能够弄清楚如何包含此功能。

本文中的代码如下所示:

extern "C"{

 #include <ntifs.h>


 NTSYSAPI NTSTATUS NTAPI ObReferenceObjectByName(PUNICODE_STRING ObjectName,

         ULONG Attributes,

         PACCESS_STATE AccessState,

         ACCESS_MASK DesiredAccess,

         POBJECT_TYPE ObjectType,

         KPROCESSOR_MODE AccessMode,

         PVOID ParseContext OPTIONAL,

         PVOID* Object);
}

我已经尝试复制了几个小时。我尝试声明不带'extern'关键字,尝试更改调用约定,尝试更改包含...我总是以错误“未解析的外部符号...”结束。

我很沮丧,所以如果有人可以提供一些建议,我将不胜感激。谢谢。

最佳答案

您不会阅读http://www.codeproject.com/KB/recipes/keystroke-hook.aspx并尝试创建自己的键盘记录器吗?

无论如何,不​​要使用此方法,而是先调用ZwCreateFile然后调用ObReferenceObjectByHandle。

10-08 05:14