CreateFile2 api возвращает ERROR_NOT_SUPPORTED_IN_APPCONTAINER, когда файл отсутствует/доступен в пути. Мой код нижеОшибка Windows-10 CreateFile2 (ERROR_NOT_SUPPORTED_IN_APPCONTAINER)
CREATEFILE2_EXTENDED_PARAMETERS ms_param = {0};
ms_param.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
ms_param.dwFileAttributes = FILE_ATTRIBUTE_READONLY;
ms_param.dwFileFlags = FILE_FLAG_NO_BUFFERING;
ms_param.dwSecurityQosFlags = SECURITY_DELEGATION;
ms_param.lpSecurityAttributes = NULL;
ms_param.hTemplateFile = NULL;
g_hfile = CreateFile2(filename, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, OPEN_EXISTING, &ms_param);
if (g_hfile == INVALID_HANDLE_VALUE)
{
return GetLastError();
}
Я уже смотрел на эту тему: CreateFile2 error in WinRT project (ERROR_NOT_SUPPORTED_IN_APPCONTAINER), сообщая подобный вопрос. Решение, предложенное там, не работает для меня.
На этой странице MSDN: CreateFile2Если указанный файл или устройство не существует, функция терпит неудачу и код последней ошибки устанавливается в ERROR_FILE_NOT_FOUND (2) .Но я получаю ERROR_NOT_SUPPORTED_IN_APPCONTAINER ошибку
Вы указали 'OPEN_EXISTING' как расположение создания. Почему вас удивляет, что вызов завершается неудачно, если файл не существует? – IInspectable
Я не понимаю, в чем проблема. – user34660
Привет @IInspectable & user34660, Спасибо за ответ. На этой странице msdn: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx, если указано OPEN_EXISTING и если файл не найден, ошибка это ERROR_FILE_NOT_FOUND. Мое приложение обрабатывает ошибку ERROR_FILE_NOT_FOUND для этого api, но приложение не ожидает увидеть ошибку ERROR_NOT_SUPPORTED_IN_APPCONTAINER. Пожалуйста, дайте мне знать, если я что-то упустил. –