XP 系统发现新硬件问题的解决方法

来源:互联网 发布:淘宝联盟怎么贷款 编辑:程序博客网 时间:2024/06/05 13:25

第一篇文章,不知道怎么开始,但是很想把现在知道的点点记下来,以后做其他东西了,或许这些再也想不起来了。

 

 

具体过程如下:

当时我们拿到别的公司开发好的INF还有SYS文件,但是我们要修改INF实现我们自己需求(也就是设备显示的名称),我们会首先通过SetupCopyOEMInf()函数预安装驱动,一开始改过之后每次插入设备,电脑都会弹出发现新硬件向导,通过多次和发INF文件的工程师沟通,得到个关键子Test-signing,Google一下

找到如下信息:

 

http://msdn.microsoft.com/en-us/windows/hardware/gg487328

 

结合selfsign_example.bat----------------这个文件如果你安装过WINDDK 会在src\general\build\driversigning目录下找到,其过程一目了然。

自己总结了下:

1.通过MakeCert.exe 得到一个证书文件,其名称可以在MakeCert.exe 的参数中设置 假设为:Test.cer

       Makecert -r -pe -ss PrivateCertStore -n "CN=Usb(WHMTest)" TestCert.cer

2.调用Inf2Cat.exe 将你修改的的inf 转换为.Cat文件。传入的参数可以是.inf所在的文件夹,该exe会把文件下的所有inf的转换为cat(当然你inf里所使用的sys文件也要在相对的路径下)

        inf2cat.exe /driver:32inf /os:XP_X86,7_X86 (后面参数表示xp,和win732系统的签名)

3.调用signtool.exe 将2步产生的.cat文件签名

               SignTool sign /s PrivateCertStore 32inf\*.cat(此*.cat 文件会在第三步产生)
              SignTool sign /s PrivateCertStore 32inf\*.cat
              SignTool sign /s PrivateCertStore 32inf\*.cat

4.将1产生的证书文件安装到系统

certmgr.exe -add -c "Test.cer" -s -r localMachine root

certmgr.exe -add -c "Test.cer" -s -r localMachine trustedpublisher

 

第4步过程结束之后,在次调用SetupCopyOEMInf()函数,插入设备,驱动就好完成自动安装。

 

以上也是驱动安装包制作的核心过程。

 

PS:以上exe都可以在WINDDK的安装目录下找到,不明白的在看看这个文件把,selfsign_example.bat。该文件我已上传。(另外还包含Certmgr.exe,KMCS_Walkthrough.doc (微软文档))。

 

话说这位大神早就写过类似的东西http://blog.sina.com.cn/s/blog_4b650d650100p7bt.html,枉我把他所要的博文都看了一遍,当时竟然没注意。

 

 

 

 

 

 

 

原创粉丝点击