【问题标题】:Usb Driver on 64bit Windows64 位 Windows 上的 USB 驱动程序
【发布时间】:2010-04-29 13:52:27
【问题描述】:

我有一个非常通用的 64 位驱动程序,基于 WDK 中的 bulkusb.sys。多年来,它一直在使用嵌入式程序,但现在需要在 Vista 64 上运行。 从我尝试查看的所有文档中,似乎没有任何影响它,除了为 64 位环境编译它,但是当我使用 AMD64 构建环境编译它时,我得到“驱动程序不适合这个平台”尝试打开系统时的错误消息。

有什么办法可以解决这个问题?

更新: “试图打开系统”到底是什么意思?在日志中,当它尝试运行驱动程序的 sys 文件(不是 inf 中的错误)时,它会失败。 您使用的是哪个 WDK 版本? 7600.16385.0

是否在同一台 Vista x64 机器上构建和尝试部署? 不,我是在 32 位 xp 上构建的,但我不明白这有多重要,因为我使用了正确的构建环境。

您的驱动程序是否使用交叉签名证书进行签名?不,我试过启用未签名的驱动程序,但没有帮助,但我也不确定这个主题会发生什么,如果你也可以给我一些信息,它会不客气。

是否选择了正确的构建环境(chk/fre/amd64/win2k)? 我用过 chk-vista-amd64。因为是vista 64bit...

【问题讨论】:

  • “试图打开系统”到底是什么意思?您使用的是哪个 WDK 版本?是否在同一台 Vista x64 机器上构建和尝试部署?
  • 您的驱动程序是否使用交叉签名证书进行签名?是否选择了正确的构建环境(chk/fre/amd64/win2k)?

标签: windows-vista usb 64-bit driver


【解决方案1】:

如果您的代码基于 WDK 中的 bulkusb.sys,您应该尝试编译包含在 Intel 82930 USB 测试板的 Bulk USB 设备驱动程序代码 WinDDK的C:\WinDDK\7600.16385.1\src\usb\usbsamp\sys。然后,如果它可以在您的环境中启动,请尝试将您使用(是)作为驱动程序模板的 WinDDK 中的代码与来自 WinDDK 7600.16385 的当前版本的 usbsamp 进行比较。 1。您将看到在 usbsamp 中进行了哪些更改。可能与您应该在程序中进行的更改相同。

我无法给出更准确的答案,因为我试图在我看不到的代码中找到错误。在我看来这并不容易。

【讨论】:

    【解决方案2】:

    确保您要删除

    中的驱动程序副本
    %WinDir%\System32\DriverStore
    

    因为否则您尝试在系统上安装的较新版本的驱动程序将不会被使用。 有两种方法可以做到这一点:

    1) 插入您的设备并安装错误的驱动程序,并使用设备管理器删除,但删除时,使用鼠标菜单而不是删除键,并选中“删除驱动程序”框

    2) 在 %WinDir%\Inf 中找到与您的驱动程序对应的 OEM##.inf 文件。 使用提升的命令行窗口(即以管理员身份运行)使用

    pnputil -d oem##.inf
    

    现在您可以安装新版本的驱动程序了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2011-03-11
      • 1970-01-01
      • 2012-04-03
      • 2010-11-15
      相关资源
      最近更新 更多