UsbDevice.FromIdAsync returns null
本文关键字:null returns FromIdAsync UsbDevice | 更新日期: 2023-09-27 18:06:32
我有这样的代码:
private async void OnDeviceAdded(DeviceWatcher watcher, DeviceInformation deviceInformation)
{
if (deviceInformation.Name.StartsWith("ClearShot") && deviceInformation.IsEnabled)
{
targetDevice = await UsbDevice.FromIdAsync(deviceInformation.Id);
OnConnected(EventArgs.Empty);
}
}
这实际上是一个从DeviceWatcher
调用的事件问题是targetDevice
总是空的。
没有崩溃,没有什么,它只是null,没有改变。为什么?
编辑:这是我在清单中的东西:
<DeviceCapability Name="usb">
<Device Id="vidpid:184c 0001">
<Function Type="classId:ff * *"/>
</Device>
</DeviceCapability>
我只是注意内存,它有UsbDevice后为空。FromIdAsync应该检查以下内容:
-
设备管理器中存在WinUsb驱动程序的设备
-
注册表中存在带有生成GUID的多字符串参数DeviceInterfaceGUIDs
[HKEY_LOCAL_MACHINE'SYSTEM'CurrentControlSet'Enum'USB'VID_184C&PID_0001'8000013'Device Parameters] "DeviceInterfaceGUIDs"=hex(7):7b,00,32,00,34,00,42,00,35,00,37,00,46,00,34,00,' 37,00,2d,00,41,00,37,00,41,00,43,00,2d,00,34,00,46,00,41,00,32,00,2d,00,39,' 00,43,00,31,00,33,00,2d,00,32,00,38,00,36,00,42,00,30,00,33,00,34,00,46,00,'
-
在包中存在适当的DeviceCapability。appxmanifest
<Capabilities> <DeviceCapability Name="usb"> <Device Id="vidpid:184C 0001"> <Function Type="classId:ff * *" /> <Function Type="name:vendorSpecific" /> </Device> </DeviceCapability>
我发现了问题,Windows为我安装的WInUSB驱动程序由于某种原因不工作,我不得不安装另一个。