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 を返します。
注釈
Wait が TRUE の場合、CcCopyWrite はコピー要求を完了し、TRUE を返す保証があります。 キャッシュされたファイルの必要なページが既にメモリに存在する場合、データはすぐにコピーされ、ブロックは行われません。 必要なページが常駐していない場合、呼び出し元は、必要なすべてのページが常駐し、データをコピーできるようになるまで待機状態になります。
Wait が FALSE の場合、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 |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示