如何在UWP应用程序中访问FTDI USB设备?

如何在UWP应用程序中访问FTDI USB设备?,uwp,usb,ftdi,Uwp,Usb,Ftdi,我用他们的FTDI来访问USB设备。当包装器在.NET Framework或.NET核心控制台应用程序中使用时,它会按预期工作。但是,当我在UWP(通用Windows平台)应用程序中使用包装器时,它不会: GetNumberOfDevices/FT\u CreateDeviceInfo列表报告连接的设备的正确数量 GetDeviceList/FT\u getDeviceInfo详细信息返回空的FT\u设备信息节点元素,值为1的标志字段除外。根据标志1,表示“端口打开” 如果我用一个应用程序实例打

我用他们的FTDI来访问USB设备。当包装器在.NET Framework或.NET核心控制台应用程序中使用时,它会按预期工作。但是,当我在UWP(通用Windows平台)应用程序中使用包装器时,它不会:

GetNumberOfDevices
/
FT\u CreateDeviceInfo列表
报告连接的设备的正确数量

GetDeviceList
/
FT\u getDeviceInfo详细信息
返回空的
FT\u设备信息节点
元素,值为1的
标志
字段除外。根据标志1,表示“端口打开”

如果我用一个应用程序实例打开设备并尝试用另一个实例访问它,我可以在我的非UWP应用程序中观察到类似的效果。但我没有在UWP中打开设备,因为我无法获得所需的设备信息,也不知道如何关闭它。我确信没有其他正在运行的应用程序打开了该设备。如果我关闭UWP应用程序并启动非UWP应用程序,它工作正常

在应用程序清单中,无论是否具有以下功能,我都看到了相同的行为(我正在为设备的VID和PID使用正确的值):


此外,在设备管理器中,USB设备有时会出现“设备未迁移到部分或不明确匹配”警告。我将驱动程序更新为最新版本2.12.28,但仍然收到警告。不确定这是否是问题,因为驱动程序正在为非UWP应用程序工作

UWP应用程序在记录设备/USB/驱动程序使用方面是否有任何限制


提前感谢。

您是否尝试过官方软件,看看它是否有效?是的,我尝试过该示例,但应用程序无法找到该设备。我将该功能添加到清单中,在初始化的代理软件(Scenarion1)中使用我的VID和PID添加了一个监视程序,并为设备安装了windusb.sys驱动程序。即使这会找到devcie,我也需要重写我的应用程序,使其不依赖于ftd2x.dll提供的函数。在使用winusb.sys驱动程序时,我仍然会收到“设备未迁移到部分或不明确匹配”警告。@wierob找到解决方案了吗?我现在面临着一个类似的问题…根据微软的支持,不可能直接从UWP应用程序使用FTDI USB驱动程序。建议的解决方案是嵌入一个处理USB通信的完全信任Win32应用程序,并在完全信任组件和主UWP应用程序之间建立某种进程间通信
  <Capabilities>
    <iot:Capability Name="lowLevelDevices" />
    <DeviceCapability Name="usb">
      <Device Id="vidpid:XXXX XXXX">
        <Function Type="name:vendorSpecific" />
      </Device>
    </DeviceCapability>
  </Capabilities>