Aracılığıyla paylaş


Yeni NTSTATUS Değerlerini Tanımlama

Sürücüler, hata günlüğü oluştururken ErrorCode değerleri olarak kullanılacak özel IO_ERR_XXX sabitlerini tanımlayabilir. Birlikte yazılan sürücü çiftleri, IRP_MJ_INTERNAL_DEVICE_CONTROL istekleri için özel STATUS_XXX değerleri de tanımlayabilir.

Aşağıdaki diyagramda 32 bit NTSTATUS değerindeki bit alanları gösterilmektedir.

bir ntstatus değerindeki bit alanlarını gösteren diyagram.

Önceki diyagramda gösterilen Sev alanı, şiddet kodunu belirtir ve bu, aşağıdaki sistem tanımlı değerlerden biri olmalıdır:

DURUM_ŞİDDET_BAŞARILI
Başarılı bir NTSTATUS değeri olarak STATUS_SUCCESS veya hata günlüğü paketlerinde IO_ERR_RETRY_SUCCEEDED değerini belirtir.

STATUS_SEVERITY_INFORMATIONAL
STATUS_SERIAL_MORE_WRITES gibi bilgilendirici bir NTSTATUS değerini gösterir.

DURUM_CİDDİYET_UYARI
"NTSTATUS" değeri örneğin, STATUS_DEVICE_PAPER_EMPTY gibi bir uyarıyı gösterir.

DURUM_CİDDİYET_HATASI
FinalStatus değeri için STATUS_INSUFFICIENT_RESOURCES veya hata günlüğü paketlerindeki ErrorCode değeri için IO_ERR_CONFIGURATION_ERROR gibi bir NTSTATUS hata değerini belirtir.

Çoğu genel IO_ERR_XXX sabitleri STATUS_SEVERITY_ERROR kategorisine aittir.

Tesisi kodu, hatayı oluşturan tesisi belirtir. Yeni IO_ERR_XXX değerleri için sürücüler, Tesisiçin FACILITY_IO_ERROR_CODE değerini belirtir. Özel STATUS_XXX değerleri için, Birim'in farklı değerlerinin anlamı sürücü tarafından tanımlanır.

C bit değerin müşteri tanımlı mı yoksa Microsoft tanımlı mı olduğunu belirtir. Bit, müşteri tanımlı değerler için ayarlanır ve Microsoft tanımlı değerler için temizdir.

Sürücüler, sistem olay günlüğündeki özel hata iletilerini tanımlamak için yeni IO_ERR_XXX değerleri tanımlayabilir. NTSTATUS değerlerinin ve tanımladıkları hata iletilerinin nasıl tanımlanacağına ilişkin bir açıklama için bkz. Özel Hata Türlerini Tanımlama.

Sürücü çiftleri, özel olarak tanımlanmış IRP_MJ_INTERNAL_DEVICE_CONTROL istekleriyle ilgili bilgileri alttan çiftin daha yüksek sürücüsüne iletmek için sürücüye özgü STATUS_XXX değerleri tanımlayabilir.

Üst düzey bir sürücünün IoCompletionyordamının bu IRP için çağrılma olasılığı varsa, sınıf sürücüsü, bir IRP'yi tamamladığında herhangi bir özelSTATUS_XXX değerini sistem tarafından tanımlanmış bir NTSTATUS değeri ile eşlemelidir.

Eşleştirilmiş görüntü ve video miniport sürücüleri için, video bağlantı noktası sürücüsü genel STATUS_XXX değerleri ile video miniport sürücüleri tarafından döndürülen Win32 tanımlı sabitler arasındaki eşlemeyi yapar. Daha fazla bilgi için bkz. Windows 2000 Görüntü Sürücüsü Modeli Video MiniPort Sürücüleri.

Yalnızca sistem tanımlı değerler Win32 hata kodlarına çevrilebildiğinden, sürücüler kullanıcı modunda alınabilen IRP'ler için özel NTSTATUS değerlerini kullanamaz.