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 | 任何级别。 |