IoRaiseInformationalHardError 함수(ntddk.h)
IoRaiseInformationalHardError 루틴은 사용자에게 대화 상자를 보내 사용자 I/O 요청이 실패한 이유를 나타내는 디바이스 I/O 오류에 대해 경고합니다.
통사론
BOOLEAN IoRaiseInformationalHardError(
[in] NTSTATUS ErrorStatus,
[in, optional] PUNICODE_STRING String,
[in, optional] PKTHREAD Thread
);
매개 변수
[in] ErrorStatus
오류 상태 코드(IO_ERR_XXX)입니다.
[in, optional] String
오류에 대한 추가 정보를 제공하는 유니코드 문자열에 대한 포인터입니다. 일부 NT 상태 코드에는 파일 또는 디렉터리 이름과 같은 문자열 매개 변수가 필요합니다. 지정된 ErrorStatus 값에 문자열 매개 변수가 필요하지 않은 경우 String NULL 설정합니다.
[in, optional] Thread
ErrorStatus 매개 변수에서 지정한 오류로 인해 IRP가 실패한 스레드에 대한 포인터입니다.
반환 값
IoRaiseInformationalHardError 대화 상자가 성공적으로 큐에 대기된 경우 TRUE 반환합니다. 이 루틴은 스레드대해 대화 상자를 사용하지 않도록 설정하거나, 풀 할당이 실패하거나, 너무 많은 대화 상자가 이미 큐에 대기 중이거나, 동일한 대화 상자가 이미 사용자 응답(예: RETURN 키를 누를 때까지 대기)을 보류 중인 경우 FALSE 반환합니다.
발언
IoRaiseInformationalHardError 시스템 정의 NT 오류 값을 매개 변수로 사용합니다. 드라이버 작성기는 이벤트 로그 API를 사용하여 드라이버 정의 이벤트 문자열을 사용자에게 전달할 수 있습니다.
IoRaiseInformationalHardError 다음과 같이 작동합니다.
- 호출자가 제공한 ErrorStatus 값이 Ntstatus.h 헤더 파일에 정의되지 않은 경우 대화 상자에는 String 매개 변수 값에 관계없이 항상 "알 수 없는 하드 오류" 텍스트가 표시됩니다.
- 호출자가 제공한 ErrorStatus 값이 Ntstatus.h 헤더 파일에 정의된 경우 대화 상자에는 String 매개 변수 값에 관계없이 해당 MessageText 문자열의 텍스트가 Ntstatus.h에 표시됩니다.
- Thread 매개 변수가 애플리케이션의 컨텍스트에서 실행 중인 스레드를 지정하는 경우 대화 상자에 표시되는 텍스트는 "ApplicationName.exe - 시스템 오류"입니다.
- Thread 매개 변수가 NULL이거나 임의의 시스템 컨텍스트에서 실행 중인 스레드를 지정하는 경우 대화 상자에 표시되는 텍스트는 "시스템 프로세스 - 시스템 오류"입니다. 또한 ErrorStatus 값이 Ntstatus.h에 정의된 경우 해당 MessageText 문자열이 이벤트 로그에 기록됩니다.
Windows Vista부터 세션 0의 스레드에서 루틴이 호출되는 경우(즉, 시스템 스레드에서) 루틴이 성공하고 TRUE 반환할 때 대화 상자가 나타나지 않습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm) |