다음을 통해 공유


IoIsValidIrpStatus 함수(ntddk.h)

IoIsValidIrpStatus 루틴은 지정된 NTSTATUS 상태 코드 값의 유효성을 검사합니다.

구문

LOGICAL IoIsValidIrpStatus(
  [in] IN NTSTATUS Status
);

매개 변수

[in] Status

유효성을 검사할 상태 코드입니다.

반환 값

Status 매개 변수가 올바른 형식의 NTSTATUS 값인 경우 IoIsValidIrpStatusTRUE를 반환합니다. 그렇지 않으면 루틴이 FALSE를 반환 합니다.

설명

드라이버 개발자는 IRP_MJ_INTERNAL_DEVICE_CONTROL 요청에 대한 상태 코드로 사용할 사용자 지정 NTSTATUS 값을 정의할 수 있습니다. 드라이버는 IoIsValidIrpStatus를 호출하여 이러한 요청에 대한 상태 코드의 유효성을 검사할 수 있습니다. 이 루틴은 IRP의 I/O 상태 블록에서 초기화되지 않거나 손상된 상태 값을 검색하는 데 유용합니다.

IoIsValidIrpStatus는 사용자 지정 NTSTATUS 값을 정의하는 규칙을 분명히 위반하는 잘못된 상태 코드를 검색하지만 규칙을 따르는 것처럼 보이는 잘못된 상태 코드를 검색하지 못할 수 있습니다. 루틴은 유효한 NTSTATUS 코드 값이 아니지만 유효한 NTSTATUS 코드에 대해 FALSE를 반환하는 경우는 거의 없는 Status 매개 변수에 대해 TRUE를 반환할 수 있습니다.

IoIsValidIrpStatusStatus 매개 변수 값의 Sev, FacilityCode 필드를 검사하여 이러한 필드의 값 조합이 게시된 지침을 준수하는지 여부를 확인합니다. Status 매개 변수의 C 비트가 설정된 경우 IoIsValidIrpStatusStatus의 다른 필드 값에 관계없이 TRUE를 반환합니다.

이러한 필드에 대한 자세한 내용은 새 NTSTATUS 값 정의를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntddk.h(Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준.

추가 정보

IRP_MJ_INTERNAL_DEVICE_CONTROL