32位驱动安装到64位操作系统时出错

在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).

http://blog.csdn.net/lizheng308/article/details/7291176

posted @ 2015-12-29 18:38  findumars  Views(2283)  Comments(0Edit  收藏  举报