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 参数值中的 Sev、Facility 和 Code 字段,以确定这些字段中的值组合是否符合已发布的准则。 如果设置了 Status 参数的 C 位,IoIsValidIrpStatus 将返回 TRUE,而不考虑 Status 中的其他字段值。
有关这些字段的详细信息,请参阅 定义新的 NTSTATUS 值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8开始可用。 |
目标平台 | 通用 |
标头 | ntddk.h (包括 Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别。 |