次の方法で共有


CcFastCopyWrite 関数 (ntifs.h)

CcFastCopyWrite ルーチンは、メモリ内のバッファーからキャッシュされたファイルへの高速コピー書き込みを実行します。

構文

void CcFastCopyWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        FileOffset,
  [in] ULONG        Length,
  [in] PVOID        Buffer
);

パラメーター

[in] FileObject

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

[in] FileOffset

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

[in] Length

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

[in] Buffer

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

戻り値

何一つ

備考

CcFastCopyWrite は、CcCopyWriteのより高速なバージョンです。 これは、次の点で ccCopyWrite とは異なります。

  • FileOffset は ULONG であり、PLARGE_INTEGERではありません。

  • wait パラメーター はありません。 呼び出し元は、すべてのデータがコピーされるまで待機状態に入ることができる必要があります。

  • CcFastCopyWrite は、書き込み操作が成功したかどうかを示すブール値を返しません。

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

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

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

必要条件

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

関連項目

ccCopyWrite の

ccInitializeCacheMap の