Por que muitos códigos de erro do Windows começam com 0xC000xxxx? Existe uma referência para eles?

11

Percebi que a maioria dos códigos de erro do Windows existe em uma de duas formas:

  • Os códigos de erro padrão do sistema , por exemplo, 0x05 são Acesso negado.
  • Códigos de erro no formulário 0xC000xxxx, para os quais não encontro nenhuma referência.

Eu primeiro considerei que os últimos códigos de erro eram apenas códigos de erro do sistema que foram OR bit a bit 0xC0000000por algum motivo, mas esse não parece ser o caso; eles não correspondem à natureza da falha se mapeados dessa maneira.

Todas as referências a esses erros no Google parecem estar relacionadas a falhas no aplicativo, mas nenhum nome de erro é fornecido.

Eles também não parecem específicos de aplicativos, pois algumas das Nt*APIs do ntdll.dll as retornam, por exemplo, NtCreateDirectoryObjectretornam 0xC0000022quando chamadas com parâmetros inválidos .

Qual é a diferença entre os dois tipos de código de erro? A Microsoft os reconhece oficialmente como códigos de erro padrão? Existe uma página de referência para eles?

Polinomial
fonte
ter um olhar para códigos de erro COM msdn.microsoft.com/de-de/library/windows/desktop/...
Bummi

Respostas:

7

Há uma lista extensa de valores de erro na documentação dos valores NTSTATUS .

Por exemplo, 0xC0000022significa STATUS_ACCESS_DENIED, que é um valor de retorno muito comum.

Um pouco não relacionado, mas há também uma lista de códigos de verificação de erros . Esses códigos geralmente são exibidos ao receber um BSOD.

Der Hochstapler
fonte
Excelente! Esse link definitivamente está nos meus favoritos.
polinomial