次の方法で共有


IoIsValidIrpStatus 関数 (ntddk.h)

IoIsValidIrpStatus ルーチンは、指定された NTSTATUS 状態コード値を検証します。

構文

LOGICAL IoIsValidIrpStatus(
  [in] IN NTSTATUS Status
);

パラメーター

[in] Status

検証する状態コード。

戻り値

Status パラメーターが整形式の NTSTATUS 値である場合、IoIsValidIrpStatusTRUE を返します。 それ以外の場合、ルーチンは FALSE を返します

注釈

ドライバー開発者は、 IRP_MJ_INTERNAL_DEVICE_CONTROL要求の 状態コードとして使用するカスタム NTSTATUS 値を定義できます。 ドライバーは IoIsValidIrpStatus を呼び出して、これらの要求の状態コードを検証できます。 このルーチンは、IRP の I/O 状態ブロックで初期化されていない状態または破損した状態の値を検出するのに役立ちます。

IoIsValidIrpStatus は、カスタム NTSTATUS 値を定義するための規則に明らかに違反する無効な状態コードを検出しますが、ルールに従っているように見える無効な状態コードは検出されない可能性があります。 有効な NTSTATUS コード値ではない Status パラメーターの場合、ルーチンから TRUE が返されることがありますが、有効な NTSTATUS コードに対して FALSE が返されることはほとんどありません。

IoIsValidIrpStatus、Status パラメーター値の SevFacilityおよび Code フィールドを調べて、これらのフィールドの値の組み合わせが公開されたガイドラインに準拠しているかどうかを判断します。 Status パラメーターの C ビットが設定されている場合、IoIsValidIrpStatus は Status の他のフィールド値に関係なく TRUE をします

これらのフィールドの詳細については、「 新しい NTSTATUS 値の定義」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル。

こちらもご覧ください

IRP_MJ_INTERNAL_DEVICE_CONTROL