HLK 微软驱动签名过程中踩过的坑

环境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证书签名,提交。通过后即可

 

 

你可能感兴趣的:(windows,驱动,hlk,whql,驱动签名测试)