在32位操作系统上,一直运行挺好的驱动,但当操作系统安装了windows 2008 R2 (64bits),再安装以前的驱动时,一直报0x800f0203错误,windows对此的错误定义是“没有为设备信息集或元素选择驱动程序”。驱动安装采用的是微软win2000 DDK 中提供的snetcfg.exe,
安装语法如下:
snetcfg [-v] [-l <full-path-to-component-INF>] -c <p|s|c> -i <comp-id>
where,
-l provides the location of INF
-c provides the class of the component to be installed
p == Protocol, s == Service, c == Client
-i provides the component ID
The arguments must be passed in the order shown.
Examples:
snetcfg -l c:\oemdir\foo.inf -c p -i foo
...installs protocol 'foo' using c:\oemdir\foo.inf
snetcfg -c s -i MS_Server
...installs service 'MS_Server'
首先怀疑是snetcfg在64位操作系统上,不支持,于是装上盖茨大叔家最新的WDK,使用里面提供的bindview.exe来安装我的驱动,很失望,还是报“没有为设备信息集或元素选择驱动程序”。尝试了很多方法,都失败后,我开始怀疑inf或者.sys驱动文件不支持64位操作系统,没办法,只能静下心来看MSDN,看64位操作系统对inf或者.sys驱动文件有没有特殊要求。MSDN上有一篇文章“INF Requirements for 64-bit Systems”
主要改变如下
Driver INF files on Windows Server 2003 SP1 and later versions of Windows must decorate entries in the[Manufacturer] section and [Models] section names with.ntia64 or .ntamd64, as appropriate, to specify operating system versions on non-x86 based systems. This change does not affect INFs for x86-based systems or non-PnP driver INF files (including file system driver INF files for x64-based architectures).