本地配置
- Windows 10 64位专业版
- 安装了Vistual Studio
20152017。精确得来说是安装了便携式精简的VS2015,虽然它精简容量小,但也阉割了一些插件安装的组件,导致WDK17134的VS插件安装失败。 - 安装完对应版本的WDK
1713417763
更新
(2019/05/16)
1.工程从VS2015升级至VS2017
2.WDK从17134到17763
3.项目属性:
- 多字节改成Unicode;
- 把硬编码目标平台改成对$(TargetPlatformVersion)的引用
- C/C++->代码生成->Spectre缓解:关闭
- 把宏变量NTDDI_VERSION从0x06030000改成0x0A000000,也就是从WIN7改成WIN10,若有需要,请自行增添编译配置或者更改该变量,其影响一部分Routine的定义
- 至于是否要开启INTERGITY,请自行在C/C++->命令行,增加/INTERGITY开关
工程下载
rar文件有已经配置好了的.vcxproj以及源文件:超时空链接
项目编译的目标是Windows 10 x64编译,各位需要的话可以改成自己的目标系统,编译阶段上的结构体、定义以及链接阶段一些lib可能会基于目标系统有所不同。
项目设置里尽可能用了宏变量引用库目录以及包含目录,应该不需要再次进行本地适配
修复了若干国内博客上老旧VS版本的配置指导导致的隐含问题包含但不限于:
- 使用IoCreateDeviceSecure例程时连接到了kernel.lib等win32应用程序的库文件,导致加载驱动时返回无效驱动文件
- 使用了固定基地址
- 只支持C编译
- 删除了从继承父级继承或项目默认设置继承(这部分继承会直接依赖VC运行库或静态库导致驱动程序有问题,驱动程序不可依赖任何上层静态库、动态库)
当然,最简便的方式莫过于安装完整版的VS2017以及最新版本的WDK,创建WDK项目。