异想天开

What's the true meaning of light, Could you tell me why

64位下win 7开发测试驱动

日期:2018-03-04 17:17:58
  
最后更新日期:2018-05-27 22:33:48
64位win 7下,用drivermonitor加载64位驱动,失败信息如下:

解决办法:
用自签名的证书,自己给驱动签名,在win 7的系统测试模式下加载

1. 制作证书
在开始菜单找到visual studio 2008命令行提示,执行如下命令:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>makecert -r -pe -n "cn=MyCA" -$ commercial -a sha1 -b 01/05/2018 -e 01/01/2020 -cy authority -ss my -sr currentuser
Succeeded
各个部分解释:
-r: 自签名
-pe: 将所生成的私钥标记为可导出。这样可将私钥包括在证书中。
-n "cn=MyCA": 证书的subject name,.net自带类库中有X509Store类,可以在store中根据证书subject name,来找到改证书
store参考:X509Store 类
-$ commercial:指明证书商业使用。。。
-a:指定签名算法。必须是 md5(默认值)或 sha1。
-b 01/05/2018:证书有效期的开始时间,默认为证书的创建日期。格式为:mm/dd/yyyy
-e 01/01/2020:指定有效期的结束时间。默认为 12/31/2039 11:59:59 GMT。格式同上
-ss my:证书产生到my个人store区
-sr currentuser:保持到计算机当前个人用户区,其他用户登录系统后则看不到该证书

2.给驱动签名
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>signtool sign /s my /n MyCA "D:\Projects\TrueCrypt7.1a\Debug\Setup Files\truecrypt.sys"
Done Adding Additional Store
Successfully signed: D:\Projects\TrueCrypt7.1a\Debug\Setup Files\truecrypt.sys
各个部分解释:
/s 指定证书存储区, my为个人store区
/n MyCA 指定证书名字

3.进入win 7测试模式
用管理员权限打开cmd.exe,执行如下命令
BCDEDIT -SET TESTSIGNING ON
重启电脑后,发现桌面右下角会显示如下

此时加载64位驱动,则没有ERROR 577

遗留问题加载32位驱动失败

解决:开机按F8, 如下图,选择禁用驱动签名模式