c++ - 如何在 visual studio 2010 中包含 DDK header ?

标签 c++ visual-studio-2010 windows-8

我需要使用 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/

相关文章:

wpf - VSX 2010 包加载 - Markup.xaml 解析找不到程序集

web-services - Windows 8 Metro应用程序应如何连接到中央数据库?

c++ - 如何使用 VC++ 2010 构建 koolplot 库

c++ - 关于具有不同内容的文件拷贝的 Visual Studio 警告

c++ - Cuda,计算3d对象之间的距离矩阵

c++ - 无法使用对象访问迭代器数据成员

c# - .NET 4.0 框架中是否已经存在以下泛型方法?

c# - 在运行时更改代码中的属性值

wpf - 带有Microsoft WPF功能区的窗口样式与Windows 8样式不匹配

c++ - OpenGL:标准化世界协调