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 以降で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | ntdddump.h (Ntdddump.h を含む) |