现在的位置: 首页 > 综合 > 正文

我碰到的有关驱动自动安装的问题

2013年10月12日 ⁄ 综合 ⁄ 共 1635字 ⁄ 字号 评论关闭

 http://topic.csdn.net/t/20051220/14/4470178.html

 

 

我要做一个驱动自动安装的安装程序,要在XP下安装驱动。   
  我这里共两个文件,一个.inf,一个.sys。   
  参考了论坛里几位前辈的贴子,谈论的方法都是在InstallShield里,   
  在某处(比如OnFirstUIAfter函数)加上如下代码:   
  //==============================================   
  //...   
  string   szProgram;     
  string   szCmdLine;   
  //...   
  szProgram   =   "rundll32.exe";   
  szCmdLine   =   "setupapi.dll,InstallHinfSection   你要执行的section名   132"   +   "你的.inf文件所在全路径名";     
  LaunchAppAndWait(szProgram,   szCmdLine,   WAIT);     
  //==============================================   
  其实InstallShield内部的实现是调用Windows   API函数orShellExecuteEx(orShellExecute),   
  于是我就自己写了个程序来实现如上代码效果,以下是我在MFC里写的代码:   
  //==============================================   
  ::ShellExecute(NULL,   "open",   "rundll32.exe",     
                      "setupapi.dll,   InstallHinfSection   PwSwpDrv.Dev   132           c://driver//pwswpdrv.inf",   
                        "c://driver",   SW_SHOWNORMAL);   
  //==============================================   
  我的两个文件.inf和.sys放在C盘的自己建的driver目录下。   
  程序执行的结果是:   
  1.因为指定了SW_SHOWNORMAL,所以出现了一个将.sys文件拷到c:/windows/system32/driver目录下的一个对话框。   
  2.也是最关键的:我在c:/windows/inf目录下发现我的.inf文件已成功地转化为oem13.inf(我机器里是oem13,这个数字是不一定的,视机器而定);在c:/windows/system32/driver目录下也发现我的.inf文件,名字没变。   
    
  按理说出现了刚才的第2点,安装已经成功,为什么我的驱动还无法正常工作?设备管理器里我的设备还是有个感叹号,而且点查看驱动详细信息时,出现该设备没有安装驱动。   
    
  请问大家各路高手,到底该如何实现驱动的自动安装?谢谢!!!  

 

 

 

 

编写INF文件时,参看DDK中"Installation   Requirements   for   Network   Protocols"。   
    
  如果安装失败,请检查%systemroot%/setupapi.log文件。   
  假设用NCPA安装INF文件时碰到如下错误信息:   
    
  >   Error   E000020B   in   UpdateDriverForPlugAndPlayDevices:   ERROR_NO_SUCH_DEVINST   
    
  >   #E154   类别安装程式失败。   错误   0xe0000208:   操作无法在尚未注册的设备信息元素上运行。   
    
  请立即用chkinf.bat(DDK自带工具)检查一下INF文件,此时可能有低级错误出现,比   
  如"AddReg项不在正确的节内"。
   

抱歉!评论已关闭.