DUMP_WRITE コールバック関数 (ntdddump.h)

Dump_Write コールバック ルーチンは、ダンプ ポート ドライバーへの書き込みの前に呼び出されます。 フィルター ドライバーは、現時点でダンプ データにアクセスできます。

構文

DUMP_WRITE DumpWrite;

NTSTATUS DumpWrite(
  [in]      PFILTER_EXTENSION FilterExtension,
  [in, out] PLARGE_INTEGER DiskByteOffset,
  [in, out] PMDL Mdl
)
{...}

パラメーター

[in] FilterExtension

FILTER_EXTENSION 構造体へのポインター。

[in, out] DiskByteOffset

クラッシュ ダンプまたは休止状態の宛先パーティションに対する相対値 (バイト単位)。 フィルター ドライバーでは、このフィールドを変更しないでください。

[in, out] Mdl

データ バッファーを記述する MDL 構造体へのポインター。 MDL が変更された場合、書き込み操作のサイズは変更できません。

戻り値

ルーチンが成功した場合は、STATUS_SUCCESSを返す必要があります。 それ以外の場合は、Ntstatus.hで定義されているエラー状態値のいずれかを返す必要があります。

備考

フィルター ドライバーは、書き込む必要があるデータを読み取ることができます。 ただし、フィルター ドライバーはバッファーに書き込めません。これにより、クラッシュ ダンプ プロセスで使用されているコードまたはデータの内容が変更される可能性があります。 また、フィルター ドライバーでは、データのサイズを変更できません。

ダンプ書き込みのデータを安全に変更するには、フィルター ドライバーがセカンダリ バッファーを割り当てる必要があります。 バッファーのサイズは、FILTER_INITIALIZATION_DATA の MaxPagesPerWrite メンバーの値 PAGE_SIZE乗算されます。 Mdl によって記述された現在のバッファーのデータがセカンダリ バッファーにコピーされ、処理されます。 フィルターがセカンダリ バッファー内のダンプ データの処理を完了すると、Mdl によって指 MDL がセカンダリ バッファーのアドレスで更新されます。 MDL のセカンダリ バッファー セットの開始アドレスは、ページアラインされている必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista および Windows Server 2008 以降で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー ntdddump.h (Ntdddump.h を含む)

関連項目

Dump_Read

FILTER_EXTENSION

FILTER_INITIALIZATION_DATA