【问题标题】:use win32 API to see whether a Windows XPe system has got USB2 or just 1.1使用 win32 API 查看 Windows XPe 系统是否有 USB2 或只有 1.1
【发布时间】:2011-03-09 12:43:03
【问题描述】:

有没有办法只使用 win32 API 来找出可用的 USB 版本? XPe 构建非常准系统,并且没有 WMI。

我考虑了 USBview 技术:通过打开 \.\HCD0 到说 \.\HCD9 来枚举 USB 集线器,使用 DeviceIoControl 获取集线器名称,并寻找增强的主机控制器。但是要构建它,我需要我不熟悉并且不想安装的 DDK,除非我真的必须这样做。

有没有更简单的方法?

【问题讨论】:

    标签: c winapi windows-xp embedded usb


    【解决方案1】:

    正如您提到的,UsbView 枚举 USB 集线器和设备。它的源代码在 DDK 中的 ddk\xp\src\wdm\usb\usbview。

    我找到了一种更简单的方法,该方法针对特定设备并适用于我的情况。我能够根据设备的最大数据包大小确定速度。数据包大小在结构 USBD_PIPE_INFORMATION 中的结构成员 MaximumPacketSize 中。在 MSDN 上,请参阅 OSRUSBFX2,它说“最大数据包大小取决于速度” - USB 2.0 大小为 0x200,USB 1.1 大小为 0x40。在 MSDN 中搜索 OSRUSBFX2 以获取更多信息。

    虽然不像枚举 USB 设备那样通用,但 USBD_PIPE_INFORMATION 方法可能适用于您的情况并且更简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 2018-03-13
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      相关资源
      最近更新 更多