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 值的规则的无效状态代码,但可能无法检测似乎遵循规则的无效状态代码。 例程可能会为状态参数返回 TRUE ,该 参数 不是有效的 NTSTATUS 代码值,但很少(如果有的话)为有效的 NTSTATUS 代码返回 FALSE

IoIsValidIrpStatus 检查 Status 参数值中的 SevFacilityCode 字段,以确定这些字段中的值组合是否符合已发布的准则。 如果设置了 Status 参数的 C 位,IoIsValidIrpStatus 将返回 TRUE,而不考虑 Status 中的其他字段值。

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

要求

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

另请参阅

IRP_MJ_INTERNAL_DEVICE_CONTROL