Windows 10 IoT 上的 WinUSB 驱动程序

Windows 10 IoT 上的 WinUSB 驱动程序

我通常不会像这样交叉发布,但 stackoverflow 上的一位用户建议这可能属于这里。还有一个在 stackoverflow 上可以获得小额赏金如果有人感兴趣的话。

我正在尝试使用 Windows(包括 Raspberry Pi 2 的 Windows 10 IoT)自带的 WinUsb.sys 驱动程序。使用 devcon.exe 我可以看到我尝试使用的 USB 已连接(名为USB\VID_00E3&PID_6324\5&3753427A&0&4),但我不知道如何强制它使用 WinUsb.sys 驱动程序。

我发现microsoft.com 上的一些说明但这似乎是针对标准 Windows 安装的,其中有设备管理器可用(而我在 IoT 上没有)。此页面上的 INF 文件示例还引用了 CAT 文件,我认为这是某种驱动程序签名,但我不知道如何生成它(或者我是否需要生成它)。还有一个对 Windows NT(Signature = "$Windows NT$")的引用,我不知道是否需要为 IoT 进行更改(或者是否需要为 IoT 进行任何其他更改)。

那么,使用 devcon.exe 和某种 INF 文件,如何让 Windows IoT 使用 WinUsb.sys 作为我正在连接的 USB 设备的驱动程序?

答案1

经过多次尝试和错误,我终于让它工作了。以下是完整的 INF 文件,供将来参考:


; WinUSB installation file for USB device

[Version]
Signature = "$Windows NT$"
Class     = USBDevice
ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
Provider  = %ManufacturerName%
CatalogFile = WinUSBInstallation.cat
DriverVer=09/04/2012,13.54.20.543

; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ManufacturerName%=Standard,NTarm

[Standard.NTarm]
%DeviceName% =USB_Install, USB\VID_1234&PID_ABCD

; ========== Class definition ===========
[ClassInstall32]
AddReg = ClassInstall_AddReg

[ClassInstall_AddReg]
HKR,,,,%ClassName%
HKR,,NoInstallClass,,1
HKR,,IconPath,%REG_MULTI_SZ%,"%systemroot%\system32\setupapi.dll,-20"
HKR,,LowerLogoVersion,,5.2

; =================== Installation ===================
[USB_Install]
Include = winusb.inf
Needs   = WINUSB.NT

[USB_Install.Services]
Include =winusb.inf
Needs   = WINUSB.NT.Services

[USB_Install.HW]
AddReg=Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{ec55ee47-5758-4378-926b-68ed0aec8170}"

; =================== Strings ===================
[Strings]
ManufacturerName="The name of the company producing your device"
ClassName="Universal Serial Bus devices"
DeviceName="The name of your device"
REG_MULTI_SZ = 0x00010000

将 [Standard.NTarm] 中的供应商 ID (VID) 和产品 ID (PID) 替换为您添加的 USB 的相应 VID 和 PID。最后将底部附近的制造商名称和设备名称替换为您设备的正确信息。

使用 SMB 或 FTP 将此文件放在 Raspberry Pi 2 的某个位置。

通过 SSH 或 PowerShell 连接到 Raspberry Pi 2,然后转到放置 INF 文件的文件夹。运行以下命令:devcon dp_add .\<name of your INF file>

您应该看到以下结果:Driver package 'oem0.inf' added.

最后重新启动 RP2(shutdown -r -t 0从 SSH/PowerShell)。

当 RP2 重新启动时,您的设备应该在默认启动应用程序的“已连接设备”下列出,并且您现在应该能够使用其中的功能Windows.Devices.Usb与 USB 设备进行通信。

相关内容