다음을 통해 공유


오류 복구에 참여

오류 복구에 참여하려면 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 플래그를 지정해야 합니다.