PSHED_PI_FINALIZE_ERROR_RECORD 콜백 함수(ntddk.h)

PSHED 플러그 인의 FinalizeErrorRecord 콜백 함수는 오류 조건을 보다 완벽하게 설명하는 추가 오류 레코드 섹션을 오류 레코드에 추가합니다.

구문

PSHED_PI_FINALIZE_ERROR_RECORD PshedPiFinalizeErrorRecord;

NTSTATUS PshedPiFinalizeErrorRecord(
  [in, out, optional] PVOID PluginContext,
  [in]                PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in]                ULONG BufferLength,
  [in, out]           PWHEA_ERROR_RECORD ErrorRecord
)
{...}

매개 변수

[in, out, optional] PluginContext

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

[in] ErrorSource

하드웨어 오류를 보고한 오류 원본을 설명하는 WHEA_ERROR_SOURCE_DESCRIPTOR 구조체에 대한 포인터입니다.

[in] BufferLength

ErrorRecord 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.

[in, out] ErrorRecord

추가 오류 레코드 섹션으로 업데이트되는 오류 레코드를 설명하는 WHEA_ERROR_RECORD 구조체에 대한 포인터입니다.

반환 값

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

반환 코드 설명
STATUS_SUCCESS 오류 레코드가 추가 오류 레코드 섹션으로 업데이트되었습니다.
STATUS_BUFFER_TOO_SMALL BufferLength 매개 변수에서 지정한 ErrorRecord 매개 변수가 가리키는 버퍼의 크기가 너무 작아서 보조 오류 레코드 섹션으로 업데이트되는 경우 오류 레코드를 포함할 수 없습니다.
STATUS_NOT_SUPPORTED PSHED 플러그 인은 지정된 오류 원본을 지원하지 않습니다.
STATUS_UNSUCCESSFUL 오류가 발생했습니다.

설명

오류 정보 검색에 참여하는 PSHED 플러그 인은 Callbacks.RetrieveErrorInfo를 설정합니다. 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 콜백.FinalizeErrorRecordWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 Callbacks.ClearErrorStatus 멤버가 해당 RetrieveErrorInfo, FinalizeErrorRecordClearErrorStatus 콜백 함수를 가리킵니다. 또한 PSHED 플러그 인은 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 FunctionalAreaMask 멤버에서 PshedFAErrorInfoRetrieval 플래그를 설정해야 합니다.

Windows 커널은 PSHED를 호출하여 보조 오류 레코드 섹션을 오류 레코드에 추가할 수 있도록 합니다. PSHED 플러그 인이 오류 정보 검색에 참여하도록 등록된 경우 PSHED 플러그 인은 PSHED 플러그 인의 FinalizeErrorRecord 콜백 함수를 호출하여 PSHED 플러그 인이 오류 조건을 보다 완벽하게 설명하는 오류 레코드 섹션을 오류 레코드에 추가할 수 있도록 합니다.

PSHED 플러그 인은 오류 레코드가 끝날 때까지 보조 오류 레코드 섹션을 추가하지 않도록 해야 합니다. 특정 오류 레코드를 포함하기 위해 Windows 커널이 버퍼에 할당하는 메모리 양은 하드웨어 오류를 보고한 오류 원본을 설명하는 WHEA_ERROR_SOURCE_DESCRIPTOR 구조체의 MaxRawDataLengthMaxSectionsPerRecord 멤버에서 계산됩니다. PSHED 플러그 인에 오류 레코드에 추가하는 추가 오류 레코드 섹션을 포함하기 위해 추가 버퍼 공간이 필요한 경우 오류 원본 검색에 참여하고 추가 오류 레코드 섹션을 고려하기 위해 각 오류 원본에 대한 WHEA_ERROR_SOURCE_DESCRIPTOR 구조의 MaxSectionsPerRecord 멤버의 값을 늘려야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ntddk.h(Ntddk.h 포함)
IRQL IRQL >= DISPATCH_LEVEL

추가 정보

ClearErrorStatus

PshedRegisterPlugin

RetrieveErrorInfo

WHEA_ERROR_RECORD

WHEA_ERROR_SOURCE_DESCRIPTOR

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET