PSHED_PI_ATTEMPT_ERROR_RECOVERY 콜백 함수(ntddk.h)
PSHED 플러그 인의 AttemptRecovery 콜백 함수가 복구 가능한 하드웨어 오류로부터 복구를 시도합니다.
구문
PSHED_PI_ATTEMPT_ERROR_RECOVERY PshedPiAttemptErrorRecovery;
NTSTATUS PshedPiAttemptErrorRecovery(
[in, out, optional] PVOID PluginContext,
[in] ULONG BufferLength,
[in] PWHEA_ERROR_RECORD ErrorRecord
)
{...}
매개 변수
[in, out, optional] PluginContext
PSHED 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조의 컨텍스트 멤버에 지정된 컨텍스트 영역에 대한 포인터입니다.
[in] BufferLength
ErrorRecord 매개 변수가 가리키는 오류 레코드의 크기(바이트)입니다.
[in] ErrorRecord
복구 가능한 하드웨어 오류에 대한 오류 레코드를 설명하는 WHEA_ERROR_RECORD 구조체에 대한 포인터입니다.
반환 값
PSHED 플러그 인의 AttemptRecovery 콜백 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_SUCCESS | 하드웨어 오류에서 복구하려는 시도가 성공했습니다. |
STATUS_UNSUCCESSFUL | 하드웨어 오류에서 복구하려는 시도가 실패했습니다. |
설명
오류 복구에 참여하는 PSHED 플러그 인은 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 Callbacks.AttemptRecovery 멤버가 해당 AttemptRecovery 콜백 함수를 가리키도록 설정합니다. 또한 PSHED 플러그 인은 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 FunctionalAreaMask 멤버에서 PshedFAErrorRecovery 플래그를 설정해야 합니다.
Windows 커널은 모든 하드웨어 오류 데이터를 오류 레코드에 넣은 후 오류를 처리하는 동안 복구 가능한 하드웨어 오류에서 복구하려고 시도합니다. 그런 다음 Windows 커널은 PSHED를 호출하여 필요한 복구 작업을 수행할 수 있는 기회를 제공합니다. PSHED 플러그 인이 오류 복구에 참여하도록 등록된 경우 PSHED 플러그 인의 AttemptRecovery 콜백 함수를 호출하여 오류를 수정하거나 오류 조건에서 완전히 복구하는 데 필요한 추가 작업을 수행할 수 있습니다.
Windows 커널 또는 PSHED가 하드웨어 오류에서 성공적으로 복구되면 다음과 같이 PSHED 플러그 인의 AttemptRecovery 콜백 함수를 호출하기 전에 오류를 설명하는 WHEA_ERROR_RECORD 구조를 업데이트합니다.
Header.Severity 멤버가 WheaErrSevRecoverable에서 WheaErrSevCorrected로 변경됩니다.
Header.Flags.Recovered 비트가 설정됩니다.
PSHED 플러그 인이 하드웨어 오류에서 성공적으로 복구되면 PSHED 플러그 인의 AttemptRecovery 콜백 함수가 반환된 후 PSHED 플러그 인을 대신하여 WHEA_ERROR_RECORD 구조가 업데이트됩니다. PSHED 플러그 인의 AttemptRecovery 콜백 함수는 오류 레코드를 수정하면 안 됩니다.
PSHED는 IRQL <= HIGH_LEVEL PSHED 플러그 인의 AttemptRecovery 콜백 함수를 호출합니다. 이 콜백 함수가 호출되는 정확한 IRQL은 발생한 특정 유형의 하드웨어 오류에 따라 달라집니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | ntddk.h(Ntddk.h 포함) |
IRQL | IRQL >= DISPATCH_LEVEL |