오류 복구에 참여
오류 복구에 참여하려면 PSHED 플러그 인이 AttemptRecovery 콜백 함수를 구현해야 합니다.
다음 코드 예제에서는 이 콜백 함수를 구현하는 방법을 보여줍니다.
//
// The PSHED plug-in's AttemptRecovery callback function
//
NTSTATUS
AttemptRecovery(
IN OUT PVOID PluginContext,
IN ULONG BufferLength,
IN PWHEA_ERROR_RECORD ErrorRecord
)
{
// Check if the error condition was not corrected by the
// operating system or by the PSHED.
if (ErrorRecord->Header.Severity != WheaErrSevCorrected)
{
// Attempt to correct the error condition.
...
// If not successful, return failure status
if (...)
{
return STATUS_UNSUCCESSFUL;
}
}
// Perform any additional operations that are required
// to fully recover from the error condition.
...
// If successful, return success status
if (...)
{
return STATUS_SUCCESS;
}
// Failed to fully recover from the error condition
else
{
return STATUS_UNSUCCESSFUL;
}
}
오류 복구에 참여하는 PSHED 플러그 인은 운영 체제에 등록할 때PshedFAErrorRecovery 플래그를 지정해야 합니다.