UWP CreateFile2 ERROR_NOT_SUPPORTED_IN_APPCONTAINER при открытии устройства - PullRequest
0 голосов
/ 19 марта 2019

У нас есть C ++ dll, который вызывается P / в приложении UWP.DLL открывает USB-устройство с помощью функции CreateFile.

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

Все работает нормально, за исключением того, что наше приложение должно быть загружено сбоку.

Двигаясь вперед, мы заменили большинство несовместимые функции в dll C ++ с совместимыми.

Однако при открытии устройства с CreateFile2 происходит сбой с кодом ошибки ERROR_NOT_SUPPORTED_IN_APPCONTAINER

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

Каков рекомендуемый способ открыть устройство черезWin32 звонит в UWP?

1 Ответ

0 голосов
/ 20 марта 2019

Извлечение из документации ,

При вызове из приложения Магазина Windows, CreateFile2 упрощается.Вы можете открывать только файлы или каталоги внутри каталогов ApplicationData.LocalFolder или Package.InstalledLocation.Вы не можете открывать именованные каналы или почтовые слоты или создавать зашифрованные файлы (FILE_ATTRIBUTE_ENCRYPTED).

По этой причине вы получаете ошибку.Если вы хотите создать файл на вашем USB-устройстве, лучше использовать UWP RemovableDevices api.Для более подробной информации, пожалуйста, обратитесь к этому учебнику .Если вы настаиваете на использовании Win32 API, возможно, вам нужно подумать о технологии настольного моста.

...