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-except またはtry-finally ステートメントで CcFastCopyWrite の呼び出しをラップする必要があります。
ファイルをキャッシュするには、 CcInitializeCacheMap を使用します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |