PSHED_PI_INJECT_ERROR 콜백 함수(ntddk.h)

PSHED 플러그 인의 InjectError 콜백 함수는 하드웨어 플랫폼에 오류를 삽입합니다.

구문

PSHED_PI_INJECT_ERROR PshedPiInjectError;

NTSTATUS PshedPiInjectError(
  [in, out, optional] PVOID PluginContext,
  [in]                ULONGLONG ErrorType,
  [in]                ULONGLONG Parameter1,
  [in]                ULONGLONG Parameter2,
  [in]                ULONGLONG Parameter3,
  [in]                ULONGLONG Parameter4
)
{...}

매개 변수

[in, out, optional] PluginContext

PSHED 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조의 컨텍스트 멤버에 지정된 컨텍스트 영역에 대한 포인터입니다.

[in] ErrorType

하드웨어 플랫폼에 삽입할 오류 유형입니다. 가능한 값은 다음과 같습니다.

INJECT_ERRTYPE_PROCESSOR_CORRECTABLE

수정 가능한 프로세서 오류입니다.

INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLENONFATAL

수정할 수 없는 심각하지 않은 프로세서 오류입니다.

INJECT_ERRTYPE_PROCESSOR_UNCORRECTABLEFATAL

수정할 수 없는 심각한 프로세서 오류입니다.

INJECT_ERRTYPE_MEMORY_CORRECTABLE

수정 가능한 메모리 오류입니다.

INJECT_ERRTYPE_MEMORY_UNCORRECTABLENONFATAL

수정할 수 없는 심각하지 않은 메모리 오류입니다.

INJECT_ERRTYPE_MEMORY_UNCORRECTABLEFATAL

수정할 수 없는 심각한 메모리 오류입니다.

INJECT_ERRTYPE_PCIEXPRESS_CORRECTABLE

수정 가능한 PCI Express 오류입니다.

INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLENONFATAL

수정할 수 없는 심각하지 않은 PCI Express 오류입니다.

INJECT_ERRTYPE_PCIEXPRESS_UNCORRECTABLEFATAL

수정할 수 없는 심각한 PCI Express 오류입니다.

INJECT_ERRTYPE_PLATFORM_CORRECTABLE

수정 가능한 플랫폼 오류입니다.

INJECT_ERRTYPE_PLATFORM_UNCORRECTABLENONFATAL

수정할 수 없는 심각하지 않은 플랫폼 오류입니다.

INJECT_ERRTYPE_PLATFORM_UNCORRECTABLEFATAL

수정할 수 없는 치명적인 플랫폼 오류입니다.

[in] Parameter1

오류를 삽입하는 WHEA 관리 애플리케이션에서 전달하는 추가 데이터를 포함하는 제네릭 매개 변수입니다.

[in] Parameter2

오류를 삽입하는 WHEA 관리 애플리케이션에서 전달하는 추가 데이터를 포함하는 제네릭 매개 변수입니다.

[in] Parameter3

오류를 삽입하는 WHEA 관리 애플리케이션에서 전달하는 추가 데이터를 포함하는 제네릭 매개 변수입니다.

[in] Parameter4

오류를 삽입하는 WHEA 관리 애플리케이션에서 전달하는 추가 데이터를 포함하는 제네릭 매개 변수입니다.

반환 값

PSHED 플러그 인의 InjectError 콜백 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS 오류가 하드웨어 플랫폼에 성공적으로 삽입되었습니다.
STATUS_UNSUCCESSFUL 오류가 발생했습니다. 치명적이거나 복구할 수 없는 삽입된 오류의 경우 운영 체제에서 오류 조건에 대한 응답으로 버그 검사 생성하기 전에 이 콜백 함수가 반환되지 않을 수 있습니다.

설명

오류 주입에 참여하는 PSHED 플러그 인은 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 Callbacks.GetInjectionCapabilitiesCallbacks.InjectError 멤버가 GetInjectionCapabilitiesInjectError 콜백 함수를 가리키도록 설정합니다. 또한 PSHED 플러그 인은 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 FunctionalAreaMask 멤버에서 PshedFAErrorInjection 플래그를 설정해야 합니다.

WHEA 관리 애플리케이션이 하드웨어 오류를 삽입하도록 요청하면 Windows 커널이 PSHED를 호출하여 하드웨어 플랫폼에 오류를 삽입합니다. PSHED 플러그 인이 오류 주입에 참여하도록 등록된 경우 PSHED는 PSHED 플러그 인의 InjectError 콜백 함수를 호출하여 오류 주입 작업을 수행합니다.

오류를 삽입하는 WHEA 관리 애플리케이션은 Parameter1~Parameter4 매개 변수를 사용하여 PSHED 플러그 인의 InjectError 콜백 함수에 추가 오류 관련 데이터를 전달할 수 있습니다. 예를 들어 Itanium 기반 시스템에서 일부 오류 주입 작업에는 함께 제공되는 주소가 필요합니다. 이 경우 WHEA 관리 애플리케이션은 이러한 매개 변수 중 하나를 사용하여 PSHED 플러그 인의 InjectError 콜백 함수에 주소를 전달할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Server 2008, Windows Vista SP1 이상 버전의 Windows에서 지원됩니다.
대상 플랫폼 데스크톱
머리글 ntddk.h(Ntddk.h 포함)
IRQL IRQL = DISPATCH_LEVEL

추가 정보

GetInjectionCapabilities

PshedRegisterPlugin

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET