PSHED_PI_FINALIZE_ERROR_RECORD回呼函式 (ntddk.h)
PSHED 外掛程式的 FinalizeErrorRecord callback 函式會將補充錯誤記錄區段新增至錯誤記錄,以更完整描述錯誤狀況。
語法
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 註冊本身時,在 ContextWHEA_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、Callbacks.FinalizeErrorRecord,以及 Callbacks.ClearErrorStatusWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的 成員指向 其 RetrieveErrorInfo、FinalizeErrorRecord和 ClearErrorStatus 回呼函式時,外掛程式呼叫 PshedRegisterPlugin 函式來向 PSHED 註冊自己。 PSHED 外掛程式也必須在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的 FunctionalAreaMask 成員中設定 PshedFAErrorInfoRetrieval 旗標。
Windows 核心會呼叫 PSHED,以便將補充錯誤記錄區段新增至錯誤記錄。 如果 PSHED 外掛程式已註冊以參與錯誤資訊擷取,PSHED 會呼叫 PSHED 外掛程式的 FinalizeErrorRecord 回呼函式,讓 PSHED 外掛程式可以將任何其他錯誤記錄區段新增至更完整描述錯誤狀況的錯誤記錄。
PSHED 外掛程式必須確保它不會在錯誤記錄結尾之外新增補充錯誤記錄區段。 Windows 核心配置給緩衝區以包含特定錯誤記錄的記憶體數量,是從 MaxRawDataLength 和 MaxSectionsPerRecord 描述報告硬體錯誤來源之 WHEA_ERROR_SOURCE_DESCRIPTOR 結構的成員計算。 如果 PSHED 外掛程式需要額外的緩衝區空間來包含新增至錯誤記錄的增補錯誤記錄區段,則必須參與錯誤來源探索,並增加 MaxSectionsPerRecord 每個錯誤來源之 WHEA_ERROR_SOURCE_DESCRIPTOR 結構成員的值,以適當考慮任何補充錯誤記錄區段。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | ntddk.h (包括 Ntddk.h) |
IRQL | IRQL >= DISPATCH_LEVEL |