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 0xC0000000
por 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, NtCreateDirectoryObject
retornam 0xC0000022
quando 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?
Respostas:
Há uma lista extensa de valores de erro na documentação dos valores NTSTATUS .
Por exemplo,
0xC0000022
significaSTATUS_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.
fonte
De acordo com algumas informações (por exemplo, /programming/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll ), 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.
fonte