次の方法で共有


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_DATAMaxPagesPerWrite メンバーの値 PAGE_SIZE乗算されます。 Mdl によって記述された現在のバッファーのデータがセカンダリ バッファーにコピーされ、処理されます。 フィルターがセカンダリ バッファー内のダンプ データの処理を完了すると、Mdl によって指 MDL がセカンダリ バッファーのアドレスで更新されます。 MDL のセカンダリ バッファー セットの開始アドレスは、ページアラインされている必要があります。

必要条件

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

関連項目

Dump_Read

FILTER_EXTENSION

FILTER_INITIALIZATION_DATA