次の方法で共有


CcCanIWrite 関数 (ntifs.h)

CcCanIWrite ルーチンは、呼び出し元がキャッシュされたファイルに書き込むことができるかどうかを決定します。

構文

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

パラメーター

[in] FileObject

キャッシュされたファイルのファイル オブジェクトへのポインター。

[in] BytesToWrite

書き込まれるバイト数。

[in] Wait

キャッシュされたファイルに書き込めるまで呼び出し元を待機状態にできる場合は TRUE、それ以外の場合は FALSE に設定します。

[in] Retrying

この書き込み要求に対して CcCanIWrite が初めて呼び出される場合は FALSE に設定され、それ以外の場合は TRUE に設定されます。

戻り値

キャッシュ マネージャーが書き込み要求を受け入れる場合は CCCanIWrite が TRUE を返し、それ以外の場合は FALSE を返します。

注釈

CcCopyWrite または CcFastCopyWrite を呼び出す前に、CcCanIWrite を呼び出す必要があります。

CcCanIWrite が TRUE を返した場合、呼び出し元は直ちに CcCopyWrite または CcFastCopyWrite を呼び出すことができます。

CcCanIWrite が FALSE を返す場合、呼び出し元は代わりに CcDeferWrite を呼び出して書き込み要求を延期する必要があります。

一般に、次の条件に該当する場合、キャッシュ マネージャーは書き込み要求を受け入れます。

  • 書き込まれるデータの量が大きすぎます。

  • 書き込み操作を実行するのに十分なメモリがあります。

  • システム キャッシュ内のダーティ ページの数が、ダーティ ページのしきい値 (CcDirtyPageThreshold) を超えていない。

  • このファイルに対してファイルごとのダーティ ページのしきい値が存在する場合、システム キャッシュ内のこのファイルのダーティ ページ数を超えるわけではありません。

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

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe

こちらもご覧ください

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold