Menentukan Nilai NTSTATUS Baru

Driver dapat menentukan konstanta IO_ERR_XXXX kustom untuk digunakan sebagai nilai ErrorCode saat mencatat kesalahan. Pasangan driver yang ditulis bersama-sama juga dapat menentukan nilai STATUS_XXX kustom untuk permintaan IRP_MJ_INTERNAL_DEVICE_CONTROL .

Diagram berikut menunjukkan bidang bit dalam nilai NTSTATUS 32-bit.

diagram yang mengilustrasikan bidang bit dalam nilai ntstatus.

Bidang Sev yang diperlihatkan dalam diagram sebelumnya menunjukkan kode tingkat keparahan, yang harus menjadi salah satu nilai yang ditentukan sistem berikut:

STATUS_SEVERITY_SUCCESS
Menunjukkan nilai NTSTATUS yang berhasil, seperti STATUS_SUCCESS, atau nilai IO_ERR_RETRY_SUCCEEDED dalam paket log kesalahan.

STATUS_SEVERITY_INFORMATIONAL
Menunjukkan nilai NTSTATUS informasi, seperti STATUS_SERIAL_MORE_WRITES.

STATUS_SEVERITY_WARNING
Menunjukkan nilai NTSTATUS peringatan, seperti STATUS_DEVICE_PAPER_EMPTY.

STATUS_SEVERITY_ERROR
Menunjukkan nilai NTSTATUS kesalahan, seperti STATUS_INSUFFICIENT_RESOURCES untuk nilai FinalStatus atau IO_ERR_CONFIGURATION_ERROR untuk nilai ErrorCode dalam paket log kesalahan.

Sebagian besar konstanta IO_ERR_XXX publik termasuk dalam kategori STATUS_SEVERITY_ERROR.

Kode Fasilitas menentukan fasilitas yang menghasilkan kesalahan. Untuk nilai IO_ERR_XXX baru , driver menentukan nilai FACILITY_IO_ERROR_CODE untuk Fasilitas. Untuk nilai STATUS_XXXX kustom, arti dari nilai yang berbeda untuk Fasilitas ditentukan driver.

Bit C menentukan apakah nilai ditentukan pelanggan atau ditentukan Microsoft. Bit diatur untuk nilai yang ditentukan pelanggan dan jelas untuk nilai yang ditentukan Microsoft.

Driver dapat menentukan nilai IO_ERR_XXX baru untuk mengidentifikasi pesan kesalahan kustom di log peristiwa sistem. Untuk deskripsi tentang cara menentukan nilai NTSTATUS dan pesan kesalahan yang mereka identifikasi, lihat Menentukan Jenis Kesalahan Kustom.

Pasangan driver dapat menentukan nilai STATUS_XXX khusus driver untuk mengomunikasikan informasi tentang permintaan IRP_MJ_INTERNAL_DEVICE_CONTROL yang ditentukan secara privat dari driver yang lebih rendah ke driver yang lebih tinggi dari pasangan tersebut.

Driver kelas harus memetakan nilai STATUS_XXX privat ke nilai NTSTATUS yang ditentukan sistem ketika menyelesaikan IRP jika rutinitas IoCompletion driver tingkat lebih tinggi yang ada mungkin dipanggil untuk IRP tersebut.

Untuk driver tampilan berpasangan dan miniport video, driver port video melakukan pemetaan antara nilai STATUS_XXX publik dan konstanta yang ditentukan Win32 yang dikembalikan oleh driver miniport video. Untuk informasi selengkapnya, lihat Driver Miniport Video di Model Driver Tampilan Windows 2000.

Driver tidak dapat menggunakan nilai NTSTATUS kustom untuk IRP yang dapat diterima dalam mode pengguna, karena hanya nilai yang ditentukan sistem yang dapat diterjemahkan ke dalam kode kesalahan Win32.