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 vem em uma das duas formas:

  • códigos de erro do sistema padrão, por exemplo 0x05 é acesso negado.
  • Códigos de erro no formulário 0xC000xxxx , que não consigo encontrar referência para.

Primeiro, considerei que os últimos códigos de erro eram apenas códigos de erro do sistema que haviam sido ORer bit a bit com 0xC0000000 por algum motivo, mas esse não parece ser o caso; eles não correspondem à natureza da falha se mapeada dessa forma.

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

Eles não parecem ser específicos do aplicativo, pois algumas das Nt* APIs dentro do ntdll.dll as retornam, por exemplo, NtCreateDirectoryObject retorna 0xC0000022 quando chamado com parâmetros inválidos.

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

    
por Polynomial 22.04.2013 / 12:57

2 respostas

7

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

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

Algo não relacionado, mas há também uma lista de bugs Verifique os códigos . Estes códigos são geralmente exibidos ao receber um BSOD.

    
por 22.04.2013 / 13:33
0

De acordo com algumas informações (por exemplo, link ), os códigos de erro 0xC00xxxxx são os códigos de erro de sistema" normais "da API do Win32 agrupados como códigos de exceção.

    
por 22.04.2013 / 13:14

Tags