Windows 10 IoT 上的 WinUSB 驱动程序
WinUSB driver on Windows 10 IoT
我正在尝试使用 Windows 附带的 WinUsb.sys 驱动程序(包括 Windows 10 IoT of Raspberry Pi 2)。使用 devcon.exe 我可以看到我尝试使用的 USB 已连接(它被命名为 USB\VID_1234&PID_ABCD&3753427A&0&4
),但我不知道如何强制它使用 WinUsb.sys 驱动程序.
我找到了 some instructions on microsoft.com,但这似乎适用于标准 Windows 安装,您可以使用设备管理器(我在 IoT 上没有)。此页面上的 INF 文件示例还引用了一个 CAT 文件,我认为这是某种驱动程序签名,我不知道如何生成它(或者如果我需要的话)。还有对 Windows NT (Signature = "$Windows NT$"
) 的引用,我不知道是否需要针对 IoT 更改它(或者是否需要针对 IoT 更改任何其他内容)。
那么,使用 devcon.exe 和某种 INF 文件,我怎样才能让 Windows IoT 使用 WinUsb.sys 作为我连接的 USB 设备的驱动程序?
经过反复试验,我终于让它工作了。这是一个完整的 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。
最后用您设备的正确信息替换底部附近的 ManufacturerName 和 DeviceName。
使用 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 恢复后,您的设备应该列在默认启动应用程序的 "Connected Devices" 下,您现在应该能够使用 Windows.Devices.Usb
中的功能与 USB 设备通信。
我正在尝试使用 Windows 附带的 WinUsb.sys 驱动程序(包括 Windows 10 IoT of Raspberry Pi 2)。使用 devcon.exe 我可以看到我尝试使用的 USB 已连接(它被命名为 USB\VID_1234&PID_ABCD&3753427A&0&4
),但我不知道如何强制它使用 WinUsb.sys 驱动程序.
我找到了 some instructions on microsoft.com,但这似乎适用于标准 Windows 安装,您可以使用设备管理器(我在 IoT 上没有)。此页面上的 INF 文件示例还引用了一个 CAT 文件,我认为这是某种驱动程序签名,我不知道如何生成它(或者如果我需要的话)。还有对 Windows NT (Signature = "$Windows NT$"
) 的引用,我不知道是否需要针对 IoT 更改它(或者是否需要针对 IoT 更改任何其他内容)。
那么,使用 devcon.exe 和某种 INF 文件,我怎样才能让 Windows IoT 使用 WinUsb.sys 作为我连接的 USB 设备的驱动程序?
经过反复试验,我终于让它工作了。这是一个完整的 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。 最后用您设备的正确信息替换底部附近的 ManufacturerName 和 DeviceName。
使用 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 恢复后,您的设备应该列在默认启动应用程序的 "Connected Devices" 下,您现在应该能够使用 Windows.Devices.Usb
中的功能与 USB 设备通信。