IoIsValidIrpStatus 函式 (ntddk.h)
IoIsValidIrpStatus 例程會驗證指定的NTSTATUS狀態代碼值。
語法
LOGICAL IoIsValidIrpStatus(
[in] IN NTSTATUS Status
);
參數
[in] Status
要驗證的狀態代碼。
傳回值
如果 Status 參數是格式正確的 NTSTATUS 值,IoIsValidIrpStatus 會傳回 TRUE。 否則,例程會傳回 FALSE。
備註
驅動程式開發人員可以定義自定義NTSTATUS值,以作為 IRP_MJ_INTERNAL_DEVICE_CONTROL 要求的狀態代碼。 驅動程式可以呼叫 IoIsValidIrpStatus 來驗證這些要求的狀態代碼。 此例程適用於在 IRP 的 I/O 狀態區塊中偵測未初始化或損毀的 Status 值。
IoIsValidIrpStatus 偵測到明顯違反定義自定義NTSTATUS值之規則的無效狀態代碼,但可能不會偵測出看似遵循規則的無效狀態代碼。 例程可能會針對不是有效 NTSTATUS 程式代碼值的 Status 參數傳回 TRUE,但很少會針對有效的 NTSTATUS 程式代碼傳回 FALSE。
IoIsValidIrpStatus 會檢查 Status 參數值中的 Sev、Facility 和 Code 字段,以判斷這些欄位中的值組合是否符合已發佈的指導方針。 如果設定 Status 參數的 C 位,則不論 Status 中的其他域值為何,IoIsValidIrpStatus 都會傳回 TRUE。
如需這些欄位的詳細資訊,請參閱 定義新的NTSTATUS值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級。 |