Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Treiber können benutzerdefinierte IO_ERR_XXX-Konstanten definieren, die beim Protokollieren von Fehlern als ErrorCode-Werte verwendet werden sollen. Zusammen geschriebene Treiberpaare können auch benutzerdefinierte STATUS_XXX-Werte für IRP_MJ_INTERNAL_DEVICE_CONTROL Anforderungen definieren.
Das folgende Diagramm zeigt die Bitfelder in einem 32-Bit-NTSTATUS-Wert.
Das im vorherigen Diagramm gezeigte Sev-Feld gibt den Schweregradcode an, der einer der folgenden systemdefinierten Werte sein muss:
STATUS_SEVERITY_SUCCESS
Gibt einen erfolgreichen NTSTATUS-Wert an, z. B. STATUS_SUCCESS, oder den Wert, der in Fehlerprotokollpaketen IO_ERR_RETRY_SUCCEEDED.
STATUS_SEVERITY_INFORMATIONAL
Gibt einen informationellen NTSTATUS-Wert an, z. B. STATUS_SERIAL_MORE_WRITES.
STATUS_SEVERITY_WARNING
Gibt einen NTSTATUS-Warnungswert an, z. B. STATUS_DEVICE_PAPER_EMPTY.
STATUS_SEVERITY_ERROR
Gibt einen NTSTATUS-Fehlerwert an, z. B. STATUS_INSUFFICIENT_RESOURCES für einen FinalStatus-Wert oder IO_ERR_CONFIGURATION_ERROR für einen ErrorCode-Wert in Fehlerprotokollpaketen.
Die meisten öffentlichen IO_ERR_XXX-Konstanten gehören zur Kategorie STATUS_SEVERITY_ERROR.
Der Facility-Code gibt die Einrichtung an, die den Fehler generiert hat. Für neue IO_ERR_XXX-Werte geben Treiber den FACILITY_IO_ERROR_CODE Wert für Facility an. Für benutzerdefinierte STATUS_XXX-Werte ist die Bedeutung verschiedener Werte für Facility treiberdefiniert.
Das C-Bit gibt an, ob der Wert kundendefiniert oder von Microsoft definiert ist. Das Bit wird für kundendefinierte Werte und für von Microsoft definierte Werte eindeutig festgelegt.
Treiber können neue IO_ERR_XXX-Werte definieren, um benutzerdefinierte Fehlermeldungen im Systemereignisprotokoll zu identifizieren. Eine Beschreibung der Definition der NTSTATUS-Werte und der von ihnen identifizierten Fehlermeldungen finden Sie unter Definieren von benutzerdefinierten Fehlertypen.
Treiberpaare können treiberspezifische STATUS_XXX-Werte definieren, um Informationen zu privat definierten IRP_MJ_INTERNAL_DEVICE_CONTROL Anforderungen vom unteren zum höheren Treiber des Paares zu kommunizieren.
Der Klassentreiber muss alle privaten STATUS_XXX-Werte einem systemdefinierten NTSTATUS-Wert zuordnen, wenn er eine IRP abschließt, wenn die IoCompletion-Routine eines vorhandenen Treibers auf höherer Ebene für diesen IRP aufgerufen wird.
Bei gekoppelten Anzeige- und Video-Miniporttreibern übernimmt der Videoporttreiber die Zuordnung zwischen öffentlichen STATUS_XXX-Werten und den win32-definierten Konstanten, die von Video-Miniporttreibern zurückgegeben werden. Weitere Informationen finden Sie unter Video-Miniporttreiber im Windows 2000-Anzeigetreibermodell.
Treiber können keine benutzerdefinierten NTSTATUS-Werte für IRPs verwenden, die im Benutzermodus empfangen werden können, da nur die systemdefinierten Werte in Win32-Fehlercodes übersetzt werden können.