我正在使用他们managed wrapper for the ftd2xx.dll的FTDI D2XX driver来访问USB设备。当在.NET Framework或.NET Core控制台应用程序中使用包装器时,它将按预期工作。但是,当我在UWP(通用Windows平台)应用程序中使用包装器时,它不会:
GetNumberOfDevices
/ FT_CreateDeviceInfoList
报告正确连接的设备数量。
GetDeviceList
/ FT_GetDeviceInfoDetail
返回空FT_DEVICE_INFO_NODE
元素,但flags
字段的值为1.根据D2XX Programmer's Guide标记1表示“端口打开了。“
如果我用一个应用程序实例打开设备并尝试用另一个实例访问它,我可以在非UWP应用程序中观察到类似的效果。但是我没有在UWP中打开设备,因为我无法获得所需的设备信息,也不知道如何关闭它。我确定没有其他应用程序正在运行该设备。如果我关闭UWP应用程序并启动非UWP应用程序,它可以正常工作。
我在应用清单中看到相同或不具备以下功能的行为(我正在使用设备的VID和PID的正确值):
<Capabilities>
<iot:Capability Name="lowLevelDevices" />
<DeviceCapability Name="usb">
<Device Id="vidpid:XXXX XXXX">
<Function Type="name:vendorSpecific" />
</Device>
</DeviceCapability>
</Capabilities>
此外,在设备管理器中,有时“设备未迁移到部分或模糊匹配”警告USB设备。我将驱动程序更新到最新版本2.12.28,但仍然收到警告。不确定这是否是一个问题,因为驱动程序正在运行非UWP应用程序。
UWP应用程序是否对设备/ USB /驱动程序的使用有任何限制?
提前致谢。