Dlaczego wiele kodów błędów systemu Windows zaczyna się od 0xC000xxxx? Czy jest dla nich odniesienie?

11

Zauważyłem, że większość kodów błędów systemu Windows występuje w jednej z dwóch form:

  • Standardowe kody błędów systemu , np. 0x05, to odmowa dostępu.
  • Kody błędów w formularzu 0xC000xxxx, do których nie mogę znaleźć żadnego odniesienia.

Najpierw pomyślałem, że te ostatnie kody błędów były po prostu kodami błędów systemowych, które z 0xC0000000jakiegoś powodu zostały bitowo OR'owane , ale wydaje się, że tak nie jest; nie są zgodne z charakterem błędu, jeśli są odwzorowane w ten sposób.

Wszystkie odniesienia do takich błędów w Google wydają się być związane z awariami aplikacji, ale nie podano nazw błędów.

Nie wydają się też być specyficzne dla aplikacji, ponieważ niektóre Nt*API wewnątrz ntdll.dll zwracają je, np. NtCreateDirectoryObjectZwraca, 0xC0000022gdy są wywoływane ze złymi parametrami.

Jaka jest różnica między dwoma typami kodów błędów? Czy Microsoft oficjalnie rozpoznaje je jako standardowe kody błędów? Czy jest dla nich strona referencyjna?

Wielomian
źródło
spójrz na kody błędów COM msdn.microsoft.com/de-de/library/windows/desktop/…
bummi

Odpowiedzi:

7

W dokumentacji wartości NTSTATUS znajduje się obszerna lista wartości błędów .

Na przykład 0xC0000022oznacza STATUS_ACCESS_DENIED, co jest bardzo powszechną wartością zwracaną.

Nieco niepowiązane, ale jest też lista kodów błędów . Kody te są zwykle wyświetlane po otrzymaniu BSOD.

Der Hochstapler
źródło
Doskonały! Ten link zdecydowanie trafi do moich zakładek.
Wielomianowy