PSHED_PI_WRITE_ERROR_RECORD 콜백 함수(ntddk.h)

PSHED 플러그 인의 WriteErrorRecord 콜백 함수는 오류 레코드를 시스템의 영구 데이터 스토리지에 씁니다.

구문

PSHED_PI_WRITE_ERROR_RECORD PshedPiWriteErrorRecord;

NTSTATUS PshedPiWriteErrorRecord(
  [in, out, optional] PVOID PluginContext,
  [in]                ULONG Flags,
  [in]                ULONG RecordLength,
  [in]                PWHEA_ERROR_RECORD ErrorRecord
)
{...}

매개 변수

[in, out, optional] PluginContext

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

[in] Flags

쓰기 작업에 영향을 주는 플래그의 비트 단위 OR 조합입니다. 가능한 플래그는 다음과 같습니다.

WHEA_WRITE_FLAG_DUMMY

쓰기 작업은 더미 쓰기 작업입니다. 시스템의 영구 데이터 스토리지에 데이터를 쓸 수 없습니다.

[in] RecordLength

ErrorRecord 매개 변수가 가리키는 오류 레코드의 크기(바이트)입니다.

[in] ErrorRecord

시스템의 영구 데이터 스토리지에 기록되는 오류 레코드를 설명하는 WHEA_ERROR_RECORD 구조체에 대한 포인터입니다.

반환 값

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

반환 코드 설명
STATUS_SUCCESS 오류 레코드가 시스템의 영구 데이터 스토리지에 성공적으로 기록되었습니다.
STATUS_UNSUCCESSFUL 오류가 발생했습니다.

설명

오류 레코드 지속성에 참여하는 PSHED 플러그 인은 Callbacks.WriteErrorRecord를 설정합니다. 플러그 인이 PshedRegisterPlugin 함수를 호출하여 PSHED에 등록할 때 Callbacks.ReadErrorRecordCallbacks.ClearErrorRecordWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 멤버가 WriteErrorRecord, ReadErrorRecordClearErrorRecord 콜백 함수를 가리킵니다. 또한 PSHED 플러그 인은 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 구조체의 FunctionalAreaMask 멤버에서 PshedFAErrorRecordPersistence 플래그를 설정해야 합니다.

Windows 커널은 시스템을 다시 시작하는 동안 오류 레코드가 유지되도록 치명적이거나 복구할 수 없는 오류 조건이 있을 때마다 PSHED를 호출하여 시스템의 영구 데이터 스토리지에 오류 레코드를 씁니다. PSHED 플러그 인이 오류 레코드 지속성에 참여하도록 등록된 경우 PSHED는 PSHED 플러그 인의 WriteErrorRecord 콜백 함수를 호출하여 쓰기 작업을 수행합니다. 오류 레코드를 시스템의 영구 데이터 스토리지에 쓰는 데 사용되는 메커니즘은 플랫폼별로 다릅니다.

요구 사항

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

추가 정보

ClearErrorRecord

PshedRegisterPlugin

ReadErrorRecord

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET