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 状态块 中未初始化或损坏 状态 值。

IoIsValidIrpStatus 会检测明显违反定义自定义 NTSTATUS 值的规则的无效状态代码,但可能不会检测到似乎遵循规则的无效状态代码。 例程可能会为不是有效 NTSTATUS 代码值的 Status 参数返回 TRUE,但很少返回有效 NTSTATUS 代码 FALSE

IoIsValidIrpStatus 检查 Sev设施,以及 状态 参数值中的 Code 字段,以确定这些字段中的值的组合是否符合已发布的准则。 如果设置了 Status 参数的 C 位,则 IoIsValidIrpStatus 返回 TRUE,而不管 Status中的其他字段值如何。

有关这些字段的详细信息,请参阅 定义新的 NTSTATUS 值

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h、 Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别。

另请参阅

IRP_MJ_INTERNAL_DEVICE_CONTROL