打开设备时UWP CreateFile2 ERROR_NOT_SUPPORTED_IN_APPCONTAINER

时间:2019-03-19 16:28:55

标签: uwp device

我们有一个UWP应用中P /调用的C ++ dll。 dll使用CreateFile函数打开USB设备。

hDevice = CreateFile("\\\\.\\EZUSB_FX2", GENERIC_WRITE, 0, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0, NULL);

一切正常,除了必须对我们的应用进行侧面加载。

向前迈进,我们已将C ++ dll中的大多数不兼容功能替换为兼容功能。

但是,在使用CreateFile2打开设备时,它失败并显示错误代码ERROR_NOT_SUPPORTED_IN_APPCONTAINER

hDevice = CreateFile2(L"\\\\.\\EZUSB_FX2", GENERIC_WRITE, 0, OPEN_EXISTING, NULL);

通过UWP中的Win32调用打开设备的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

源自documentation

  

从Windows应用商店应用调用时,CreateFile2得以简化。您只能在ApplicationData.LocalFolder或Package.InstalledLocation目录中打开文件或目录。您无法打开命名管道或邮槽,也无法创建加密文件(FILE_ATTRIBUTE_ENCRYPTED)。

这就是您得到错误的原因。 如果要在USB设备中创建文件,更好的方法是使用UWP RemovableDevices API。有关更多详细信息,请参阅此tutorial。如果您坚持使用Win32 API,也许您需要考虑Desktopbridge技术。