Freigeben über


IoIsValidIrpStatus-Funktion (ntddk.h)

Die IoIsValidIrpStatus Routine überprüft den angegebenen NTSTATUS-Statuscodewert.

Syntax

LOGICAL IoIsValidIrpStatus(
  [in] IN NTSTATUS Status
);

Parameter

[in] Status

Der zu überprüfende Statuscode.

Rückgabewert

IoIsValidIrpStatus gibtTRUE zurück, wenn der parameter Status ein wohlgeformten NTSTATUS-Wert ist. Andernfalls gibt die Routine FALSE-zurück.

Bemerkungen

Treiberentwickler können benutzerdefinierte NTSTATUS-Werte für die Verwendung als Statuscodes für IRP_MJ_INTERNAL_DEVICE_CONTROL Anforderungen definieren. Treiber können IoIsValidIrpStatus- aufrufen, um die Statuscodes für diese Anforderungen zu überprüfen. Diese Routine ist nützlich, um einen nicht initialisierten oder beschädigten Status Wert im E/A-Statusblock eines IRP zu erkennen.

IoIsValidIrpStatus erkennt ungültige Statuscodes, die offensichtlich gegen die Regeln zum Definieren benutzerdefinierter NTSTATUS-Werte verstoßen, aber möglicherweise keine ungültigen Statuscodes erkennen, die den Regeln entsprechen. Die Routine gibt möglicherweise TRUE- für einen Status Parameter zurück, der kein gültiger NTSTATUS-Codewert ist, aber selten, wenn jemals, FALSE- für einen gültigen NTSTATUS-Code zurückgibt.

IoIsValidIrpStatus untersucht die Felder Sev, Facilityund Code felder im Status Parameterwert, um zu bestimmen, ob die Kombination von Werten in diesen Feldern den veröffentlichten Richtlinien entspricht. Wenn das C Bit des Status Parameter festgelegt ist, gibt IoIsValidIrpStatusTRUE unabhängig von den anderen Feldwerten in Statuszurück.

Weitere Informationen zu diesen Feldern finden Sie unter Definieren neuer NTSTATUS-Werte.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.
Zielplattform- Universal
Header- ntddk.h (enthalten Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Jede Ebene.

Siehe auch

IRP_MJ_INTERNAL_DEVICE_CONTROL