gpt4 book ai didi

c# - 无法从 DeviceInformation.Id 创建 UsbDevice

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:26 26 4
gpt4 key购买 nike

我正在尝试使用仅适用于 PC 的通用 Windows 应用程序(无手机)(WinRT) 通过 Windows.Devices.Usb API 连接到设备 (SecuGen Hamster Pro 20)。

该设备是指纹扫描仪。

我已经完成了网上找到的所有步骤:

我查找了所有使用以下设备的设备:

var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync();

这将返回大约 1400 个设备。经过一些过滤后使用:

 var resultList = myDevices.Where(s => s.Name.ToLower().Contains("secu")).ToList<DeviceInformation>();

resultList 在我的机器上包含 3 个设备(我在其他机器上试过,在一些机器上发现了 10 个结果)。

我没有使用重载来查找设备 DeviceInformation.FindAllAsync(String aqsFilter) 因为它返回 0 个结果虽然我确定我做对了(使用正确的 VID 和 PID)

这里的问题是当我尝试使用以下 3 个结果中的任何一个创建 UsbDevice 对象时:

UsbDevice device = await UsbDevice.FromIdAsync(resultList[0].Id);

返回值为null,我都试过了(resultList[0] , resultList[1] , resultList[2]) 没有运气。

我使用以下方法配置了功能:

 <DeviceCapability Name="usb">
<Device Id="vidpid:1162 2200">
<Function Type="name:vendorSpecific"/>
</Device>
</DeviceCapability>

我还尝试从 DeviceInformation.FindAllAsync() 返回的 1400 个设备中的任何一个创建一个 UsbDevice 对象,但所有设备都返回 null,甚至有些抛出异常系统找不到指定的文件 0x80070002

我尝试读取它返回的设备的 DeviceAccessInformation DeviceAccessStatus.Unspecified

任何人都可以引导我找到我在这里缺少的东西吗?

最佳答案

您必须使用 UsbDevice.GetDeviceSelector,然后在搜索设备时使用选择器。如果没有返回任何内容,则设备未正确“配置”为使用 WinUSB.sys 驱动程序。 (据我所知,它必须使用该驱动程序才能与 usbdevice 类一起使用)。

如果您手动告诉它在设备管理器中使用该驱动程序,那么,理论上,您仍然必须先使用 regedit 更改 key 才能生效(注意:我这样做了,但仍然无法运行)。我在这里找到了解决它的解决方案: http://www.lewisbenge.net/2013/09/20/integrating-windows-8-1-with-owi-535-robotic-arm/基本上,您必须使用 inf 文件安装驱动程序。使用该站点上链接的那个,并根据目标平台将 NTamd64 替换为 NTarm

关于c# - 无法从 DeviceInformation.Id 创建 UsbDevice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com