11

Я заметил, что большинство кодов ошибок Windows имеют одну из двух форм:

  • Стандартные системные коды ошибок, например, 0x05 - Доступ запрещен.
  • Коды ошибок в форме 0xC000xxxx , ссылки на которые я не могу найти.

Сначала я подумал, что последние коды ошибок были просто системными кодами ошибок, которые по какой-то причине были побитово ИЛИ с 0xC0000000 , но, похоже, это не так; они не соответствуют характеру ошибки, если отображены таким образом.

Кажется, что все ссылки на такие ошибки в Google связаны со сбоями приложений, но имена ошибок не приводятся.

Похоже, они также не зависят от приложения, поскольку некоторые из API-интерфейсов Nt* внутри ntdll.dll возвращают их, например, NtCreateDirectoryObject возвращает 0xC0000022 при вызове с неверными параметрами.

В чем разница между двумя типами кода ошибки? Microsoft официально распознает их как стандартные коды ошибок? Есть ли для них справочная страница?

2 ответа2

7

В документации по значениям NTSTATUS содержится обширный список значений ошибок.

Например, 0xC0000022 обозначает STATUS_ACCESS_DENIED , что является очень распространенным возвращаемым значением.

Несколько не связано, но есть также список кодов ошибок. Эти коды обычно отображаются при получении BSOD.

0

Согласно некоторым сведениям (например, https://stackoverflow.com/questions/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll), коды ошибок 0xC00xxxxx "нормальные" системные коды ошибок Win32 API, заключенные в коды исключений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .