我正在尝试使用Windows附带的WinUsb.sys驱动程序(包括Raspberry 2的Windows 10 IoT )。使用devcon.exe,我可以看到我试图使用的USB是连接的(它名为USB\VID_1234&PID_ABCD\5&3753427A&0&4
),但我不知道如何强制它使用WinUsb.sys驱动程序。
我找到了关于microsoft.com的一些说明,但这似乎适用于标准的Windows,在这里您可以使用设备管理器(我在IoT上没有)。这个页面上的INF文件示例也引用了一个CAT文件,我假设它是某种类型的驱动程序签名,我不知道如何生成这个文件(或者我甚至需要这样做)。也有对Windows (Signature = "$Windows NT$"
)的引用,我不知道是否需要对IoT进行更改(或者是否需要对IoT进行任何更改)。
那么,使用devcon.exe和某种类型的INF文件,我如何才能让IoT使用WinUsb.sys作为我要附加的USB设备的驱动程序呢?
发布于 2015-11-14 11:59:48
经过多次的尝试和错误,我终于让它起作用了。下面是一个完整的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 2,然后转到您放置INF文件的文件夹。运行以下命令:devcon dp_add .\<name of your INF file>
您应该看到以下结果:Driver package 'oem0.inf' added.
最后,重新启动RP2 (SSH/PowerShell中的shutdown -r -t 0
)。
当RP2重新启动时,您的设备应该列在默认启动应用程序的“连接设备”下面,您现在应该能够使用来自Windows.Devices.Usb
的功能与该设备进行通信。
https://stackoverflow.com/questions/33317743
复制相似问题