次の方法で共有


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 プラグインが PSHED に自身を登録するために PshedRegisterPlugin 関数を呼び出したときに、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 構造体の Context メンバーで指定されたコンテキスト領域へのポインター。

[in] Flags

書き込み操作に影響を与えるフラグのビットごとの OR の組み合わせ。 可能なフラグは次のとおりです。

WHEA_WRITE_FLAG_DUMMY

書き込み操作はダミーの書き込み操作です。 システムの永続データ ストレージにデータを書き込む必要はありません。

[in] RecordLength

ErrorRecord パラメーターが指すエラー レコードのサイズ (バイト単位)。

[in] ErrorRecord

システムの永続データ・ストレージに書き込まれるエラー・レコードを記述する WHEA_ERROR_RECORD構造体への ポインター。

戻り値

PSHED プラグインの WriteErrorRecord コールバック関数は、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_SUCCESS エラー レコードは、システムの永続データ ストレージに正常に書き込まれた。
STATUS_UNSUCCESSFUL エラーが発生しました。

解説

エラー レコードの永続化に参加する PSHED プラグインは、プラグインが PshedRegisterPlugin 関数を呼び出して PSHED に登録するときに、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 構造体の Callbacks.WriteErrorRecordCallbacks.ReadErrorRecord、および Callbacks.ClearErrorRecord メンバーを、その WriteErrorRecordReadErrorRecordClearErrorRecord コールバック関数を指すように設定します。 また、PSHED プラグインは、WHEA_PSHED_PLUGIN_REGISTRATION_PACKET構造体の FunctionalAreaMask メンバーに PshedFAErrorRecordPersistence フラグを設定する必要があります。

Windows カーネルは PSHED を呼び出して、システムの再起動中にエラー レコードが保持されるように、致命的または回復不可能なエラー状態が存在するたびに、システムの永続データ ストレージにエラー レコードを書き込みます。 エラー レコードの永続化に参加するために PSHED プラグインが登録されている場合、PSHED は PSHED プラグインの WriteErrorRecord コールバック関数を呼び出して書き込み操作を実行します。 システムの永続データ ストレージにエラー レコードを書き込むメカニズムは、プラットフォーム固有です。

要件

要件
対象プラットフォーム デスクトップ
Header ntddk.h (Ntddk.h を含む)
IRQL IRQL >= DISPATCH_LEVEL

こちらもご覧ください

ClearErrorRecord

PshedRegisterPlugin

ReadErrorRecord

WHEA_ERROR_RECORD

WHEA_PSHED_PLUGIN_REGISTRATION_PACKET