CcCopyWrite 関数 (ntifs.h)

CcCopyWrite ルーチンは、ユーザー バッファーからキャッシュされたファイルにデータをコピーします。

構文

BOOLEAN CcCopyWrite(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] ULONG          Length,
  [in] BOOLEAN        Wait,
  [in] PVOID          Buffer
);

パラメーター

[in] FileObject

データの書き込み先となるキャッシュされたファイルのファイル オブジェクトへのポインター。

[in] FileOffset

キャッシュされたファイル内の開始バイト オフセットを指定する変数へのポインター。

[in] Length

書き込むデータの長さ (バイト単位)。

[in] Wait

すべてのデータがコピーされるまで呼び出し元を待機状態にできる場合は TRUE 、それ以外の場合は FALSE に設定します。

[in] Buffer

データのコピー元となるバッファーへのポインター。

戻り値

CcCopyWrite ルーチンは、データが正常にコピーされた場合は TRUE、それ以外の場合は FALSE を返します。

注釈

WaitTRUE の場合、CcCopyWrite はコピー要求を完了し、TRUE を返す保証があります。 キャッシュされたファイルの必要なページが既にメモリに存在する場合、データはすぐにコピーされ、ブロックは行われません。 必要なページが常駐していない場合、呼び出し元は、必要なすべてのページが常駐し、データをコピーできるようになるまで待機状態になります。

WaitFALSE の場合、CcCopyWrite はブロックを拒否し、キャッシュされたファイルの必要なページがまだメモリに存在しない場合、またはファイル オブジェクトに FO_WRITE_THROUGH フラグが設定されている場合は FALSE を返します。

エラーが発生した場合、 CcCopyWrite は特定のエラーの状態例外を発生させます。 たとえば、プール割り当てエラーが発生した場合、 CcCopyWrite はSTATUS_INSUFFICIENT_RESOURCES例外を発生させます。I/O エラーが発生した場合、 CcCopyWrite は I/O エラーの状態例外を発生させます。 そのため、エラーが発生したかどうかを制御するには、ドライバーは、CcCopyWrite の呼び出しを try-except ステートメントまたは try-finally ステートメントでラップする必要があります。

ファイルをキャッシュするには、 CcInitializeCacheMap を使用します。

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h、FltKernel.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

CcInitializeCacheMap