环境vs2017 community + sdk(wdk)10.0.17763
Dll用户模式驱动,vs2017编译不通过,提示缺少msvcrt.lib等
Msvcrt.lib 替换为 ntstc_msvcrt.lib(网上说是c++的)
将vc++目录里的包含目录,库目录和vc相关的都去掉,提示缺少什么用everything搜,把路径添加上去,都添加wdk里面的不要用vc++的库,
链接选项添加相应的引用库,忽略所有默认库
编译出来的可以查看一下是否引用应用层的库,做一个参考验证
参考:https://blog.csdn.net/opshres169/article/details/51705809
https://blog.csdn.net/lpwstr/article/details/78553705
代码兼容性修改:里面分配内存的函数需要修改
规则为:非分页内存需要添加不可执行标记
NonPagedPool -> NonPagePooldNx
NonPagedPoolCacheAligned -> NonPagedPoolNxCacheAligned
ExInitializeNPagedLookasideList 函数的Flags参数需要传递POOL_NX_ALLOCATION
另测试出错时会提供网址链接上面有详细需要替换的函数
测试需要下载最新的hlk filters sql数据库
https://docs.microsoft.com/en-us/windows-hardware/test/hlk/user/windows-hardware-lab-kit-filters
使用相应的测试列表:
https://docs.microsoft.com/en-us/windows-hardware/test/hlk/windows-hardware-lab-kit
另:驱动改完后不需要每次都测试,可以用以前的测试结果和新的驱动打包提交
win8.1之前的系统需要走测试流程。win10不需要。
从微软官网下载对应的版本hck2.1或之前的,具体官网上有很详细的流程。
服务端安装好之后不要给电脑改名,否则数据库会连不上。
客户端装好系统之后,先用驱动精灵把所有驱动都升级到最稳定版本,避免系统镜像中的驱动不兼容导致失败(遇到过)。
win10 系统的驱动,不需要测试,购买Ev证书签好后(可选),创建.cab的包,然后用EV证书签名,提交。通过后即可