IoIsValidIrpStatus 関数 (ntddk.h)
IoIsValidIrpStatus ルーチンは、指定された NTSTATUS 状態コード値を検証します。
構文
LOGICAL IoIsValidIrpStatus(
[in] IN NTSTATUS Status
);
パラメーター
[in] Status
検証する状態コード。
戻り値
Status パラメーターが整形式の NTSTATUS 値である場合、IoIsValidIrpStatus は TRUE を返します。 それ以外の場合、ルーチンは FALSE を返します。
注釈
ドライバー開発者は、 IRP_MJ_INTERNAL_DEVICE_CONTROL要求の 状態コードとして使用するカスタム NTSTATUS 値を定義できます。 ドライバーは IoIsValidIrpStatus を呼び出して、これらの要求の状態コードを検証できます。 このルーチンは、IRP の I/O 状態ブロックで初期化されていない状態または破損した状態の値を検出するのに役立ちます。
IoIsValidIrpStatus は、カスタム NTSTATUS 値を定義するための規則に明らかに違反する無効な状態コードを検出しますが、ルールに従っているように見える無効な状態コードは検出されない可能性があります。 有効な NTSTATUS コード値ではない Status パラメーターの場合、ルーチンから TRUE が返されることがありますが、有効な NTSTATUS コードに対して FALSE が返されることはほとんどありません。
IoIsValidIrpStatus は、Status パラメーター値の Sev、Facility、および Code フィールドを調べて、これらのフィールドの値の組み合わせが公開されたガイドラインに準拠しているかどうかを判断します。 Status パラメーターの C ビットが設定されている場合、IoIsValidIrpStatus は Status の他のフィールド値に関係なく TRUE を返します。
これらのフィールドの詳細については、「 新しい NTSTATUS 値の定義」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル。 |