我需要使用 ZwLoadDriver
来自 ntddk.h 的函数。我安装了Windows Software Development Kit (SDK) for Windows 8 .设置所有包含(#include <ntddk.h>
)。而且我有很多错误,例如 type/sruct redefinition
, ... already has a body
.我认为我的 SDK header 与 DDK 的 header 混合在一起。如何解决这个问题?
最佳答案
DDK 只能用于开发驱动程序。在用户模式下水火不容,许多声明与 SDK header 重叠。
从用户模式使用 NtLoadDriver() 没有记录,没有可用的头文件来获取声明,也没有可用于 ntdll.dll 的导入库。它是一个 native 操作系统 api 函数,即使它的参数也使用非标准格式的注册表项。 native 操作系统与 Win32 api 非常不同。如果您真的非常想这样做,那么您必须编写自己的声明并使用 GetProcAddress() 来获取 ntdll.dll 中的入口点
但是 Windows 已经很好地支持从用户模式代码加载驱动程序。最好使用记录和支持的方式,OpenSCManager + CreateService。示例项目是 available here .
关于c++ - 如何在 visual studio 2010 中包含 DDK header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549989/