VS2008 + WDK 配置 及其编译错误
来源:互联网 发布:阿里云服务器地域 编辑:程序博客网 时间:2024/04/27 17:38
1. 安装WDK,并配置系统环境变量:WDKROOT-D:\WinDDK\7600.16385.1
2. 启动VS2005,在菜单栏“工具”-“选项”内选择“项目和解决方案”-“VC++目录”依次添加所需的目录,具体配置如下图:
注意:$(WDKROOT)\inc\api一定要放在第一个,否则会导致编译失败
3. 具体的项目属性按照如下设置:
注:创建项目时选择“Win32项目”
代码例子:
- #include <ntddk.h>
- extern "C" VOID DriverUnload(IN PDRIVER_OBJECT pDriverObject);
- extern "C" NTSTATUS DispatchRoutine(PDEVICE_OBJECT pDevObj, PIRP pIrp);
- extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING pRegistryPath)//驱动入口
- {
- DbgPrint("DriverEntry\r\n");
- pDriverObject->DriverUnload = DriverUnload;//注册卸载函数
- pDriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchRoutine;//注册派遣函数
- pDriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchRoutine;
- pDriverObject->MajorFunction[IRP_MJ_WRITE] = DispatchRoutine;
- pDriverObject->MajorFunction[IRP_MJ_READ] = DispatchRoutine;
- return STATUS_SUCCESS;
- }
- extern "C" VOID DriverUnload(PDRIVER_OBJECT pDriverObject)
- {
- DbgPrint("DriverUnload\r\n");
- }
- extern "C" NTSTATUS DispatchRoutine(PDEVICE_OBJECT pDevObj, PIRP pIrp)
- {
- NTSTATUS status = STATUS_SUCCESS;
- pIrp->IoStatus.Status = status;
- pIrp->IoStatus.Information = 0;
- IoCompleteRequest(pIrp, IO_NO_INCREMENT);//完成IRP请求
- return status;
- }
编译运行,会发现提示错误,
第一种情况:
error LNK2019: 无法解析的外部符号 @__security_check_cookie@4
请您将“项目属性”-“C/C++”-“代码生成”的“缓冲区安全检查”设为“否”
第二种情况:
会出现error C3861: “SAL_functionClass”: 找不到标识符等等100多的错误信息,
形成原因是因为:安装了windows sdk6.0 和7.1的冲突, 在vc项目的lib, incluce里调整顺序。 把7.1放在6.0的前面。
第三种情况:
error LNK1295: “/MANIFESTUAC”与“/DRIVER”规范不兼容;链接时不使用“/MANIFESTUAC”
这是因为UAC开启导致的 , 进入项目 - 属性 - 连接器 - 清单文件 - 启用用户账户控制(否)即可
编译成功,出现系统文件:
0 0
- VS2008 + WDK 配置 及其编译错误
- VS2008 + WDK 配置 及其编译错误
- VS2008 + WDK 配置 及其编译错误
- VS2008 + WDK 配置 及其编译错误
- VS2008 + WDK 配置 及其编译错误
- vs2008,WDK快速配置
- vs2008+WDK环境配置
- VS2008配置wdk
- VS2008与WDK 环境配置
- vs2008+wdk配置驱动开发环境
- XP环境下的VS2008+WDK配置
- 【VC】VS2008+WDK 配置方法解析
- 在vs2008中配置wdk环境
- 【VC】VS2008+WDK 配置方法解析
- 通过WDK编译驱动出现的错误
- vs2008 wdk 驱动开发环境配置 之wdm
- 最正确的VS2008+WDK xp开发环境配置
- VS2008+DDKWIZARD+WDK基于WIN7内核编程环境配置
- android中的通信机制总结
- LeetCode242 Valid Anagram
- C#将类拆分到多个文件的方法
- Linux文件查找命令之locate与find
- Android开发技巧——设置系统状态栏颜色
- VS2008 + WDK 配置 及其编译错误
- phpmyadmin中mysql登陆超时(1440秒未活动)解决方案
- 1003. Emergency (25)
- iOS AFnetWorking 请求webservice数据
- Perl 与动态网站的诞生
- Android手机 Fildder真机抓包
- Struts2获取ServletAPI
- 寻找客户的需求
- android gradle自动构建大总结