Mengapa banyak kode kesalahan Windows dimulai dengan 0xC000xxxx? Apakah ada referensi untuk mereka?

11

Saya perhatikan bahwa sebagian besar kode kesalahan Windows datang dalam satu dari dua bentuk:

  • Kode kesalahan sistem standar , misalnya 0x05 adalah Akses Ditolak.
  • Kode kesalahan dalam formulir 0xC000xxxx, yang saya tidak dapat menemukan referensi untuk.

Saya pertama kali mempertimbangkan bahwa kode kesalahan yang terakhir hanya kode kesalahan sistem yang telah bitwise ATAU dengan 0xC0000000beberapa alasan, tetapi ini tampaknya tidak menjadi kasus; mereka tidak cocok dengan sifat kesalahan jika dipetakan dengan cara itu.

Semua referensi untuk kesalahan tersebut di Google tampaknya terkait dengan crash aplikasi, tetapi tidak ada nama kesalahan yang diberikan.

Mereka tampaknya juga tidak spesifik untuk aplikasi, karena beberapa Nt*API di dalam ntdll.dll mengembalikannya, misalnya NtCreateDirectoryObjectmengembalikan 0xC0000022ketika dipanggil dengan parameter buruk.

Apa perbedaan antara kedua jenis kode kesalahan? Apakah Microsoft secara resmi mengenalinya sebagai kode kesalahan standar? Apakah ada halaman referensi untuk mereka?

Polinomial
sumber

Jawaban:

7

Ada daftar luas nilai kesalahan dalam dokumentasi nilai NTSTATUS .

Misalnya, 0xC0000022singkatan STATUS_ACCESS_DENIED, yang merupakan nilai pengembalian yang sangat umum.

Agak tidak terkait, tetapi ada juga daftar kode Bug Check . Kode-kode ini biasanya ditampilkan ketika menerima BSOD.

Der Hochstapler
sumber
Luar biasa! Tautan itu pasti ada di bookmark saya.
Polinomial