打开设备时UWP CreateFile2 ERROR_NOT_SUPPORTED_IN_APPCONTAINER

问题描述 投票:0回答:1

我们在UWP应用程序中有P / Invoked的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调用打开设备的推荐方法是什么?

uwp device
1个回答
0
投票

来自documentation

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

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

© www.soinside.com 2019 - 2024. All rights reserved.