次の方法で共有


CcMdlWriteComplete 関数 (ntifs.h)

CcMdlWriteComplete ルーチンは、キャッシュされたファイルの ccPrepareMdlWrite によって作成されたメモリ記述子リスト (MDL) 解放します。

構文

void CcMdlWriteComplete(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] PMDL           MdlChain
);

パラメーター

[in] FileObject

ccPrepareMdlWriteに渡されたファイル オブジェクト ポインター。

[in] FileOffset

CcPrepareMdlWriteに渡された FileOffset 値。

[in] MdlChain

CcPrepareMdlWriteによって返される MDL チェーンのアドレス。

戻り値

何一つ

備考

ファイル システム CcMdlWriteComplete を呼び出して、キャッシュされたファイルの ccPrepareMdlWrite によって作成されたメモリ記述子リスト (MDL) を解放し、指定したバイト範囲を書き込み用にマークします。 ロックダウンされたすべての物理ページのロックが解除されます。 マップされたすべてのページはマップ解除されます。

FileObject パラメーターが指すファイル オブジェクトにFO_WRITE_THROUGH フラグが設定されている場合、ファイル データはすぐにディスクにフラッシュされます。 このフラッシュ操作によってファイル システムが再入力され、CcMdlWriteComplete がフラッシュ操作に失敗した場合に例外が発生する可能性があります。 この場合、MDL は解放されておらず、呼び出し元は操作を再試行できます。

IRP_MN_COMPLETE操作 CcMdlWriteComplete が正常に呼び出された後、呼び出し元は IRP の MdlAddress フィールドを NULLに設定する必要があります。

CcMdlWriteCompleteを使用する前に、ファイル システム開発者は FASTFAT サンプルでこのルーチンを使用する方法を検討することを強くお勧めします。

ccPrepareMdlWrite を する各呼び出しの後に、ccMdlWriteComplete または CcMdlWriteAbortする呼び出しが続く必要があります。

必要条件

要件 価値
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

関連項目

ccMdlWriteAbort を する

ccPrepareMdlWrite の