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 プラグインが PSHED に登録するために PshedRegisterPlugin 関数を呼び出したときに、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET構造体の Context メンバーで指定されたコンテキスト領域へのポインター。
[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 プラグインは、PshedRegisterPlugin 関数を呼び出して PSHED に登録するときに、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 構造体の Callbacks.RetrieveErrorInfo、Callbacks.FinalizeErrorRecord、Callbacks.ClearErrorStatus メンバーを設定し、その RetrieveErrorInfo、FinalizeErrorRecord、ClearErrorStatus コールバック関数を指します。 PSHED プラグインは、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET構造体の FunctionalAreaMask メンバーに PshedFAErrorInfoRetrieval フラグを設定する必要もあります。
Windows カーネルは PSHED を呼び出して、補助エラー レコード セクションをエラー レコードに追加できるようにします。 PSHED プラグインがエラー情報の取得に参加するように登録されている場合、PSHED は PSHED プラグインの FinalizeErrorRecord コールバック関数を呼び出して、PSHED プラグインがエラー状態をより詳しく説明するエラー レコード セクションをエラー レコードに追加できるようにします。
PSHED プラグインは、エラー レコードの末尾を超えて補助エラー レコード セクションが追加されないようにする必要があります。 Windows カーネルが特定のエラー レコードを格納するためにバッファーに割り当てるメモリの量は、ハードウェア エラーを報告したエラー ソースを記述するWHEA_ERROR_SOURCE_DESCRIPTOR構造体の MaxRawDataLength および MaxSectionsPerRecord メンバーから計算されます。 エラー レコードに追加する補助エラー レコード セクションを含めるために PSHED プラグインに追加のバッファー領域が必要な場合は、エラー ソースの検出に参加し、補足エラー レコード セクションを考慮するために、各エラー ソースのWHEA_ERROR_SOURCE_DESCRIPTOR構造の MaxSectionsPerRecord メンバーの値を増やす必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | ntddk.h (Ntddk.h を含む) |
IRQL | IRQL >= DISPATCH_LEVEL |