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 0xC0000000
beberapa 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 NtCreateDirectoryObject
mengembalikan 0xC0000022
ketika 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?
Jawaban:
Ada daftar luas nilai kesalahan dalam dokumentasi nilai NTSTATUS .
Misalnya,
0xC0000022
singkatanSTATUS_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.
sumber
Menurut beberapa info (mis. Https://stackoverflow.com/questions/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll ), kode kesalahan 0xC00xxxxx adalah kode kesalahan sistem "normal" dari Win32 API yang dibungkus sebagai kode pengecualian.
sumber