次の方法で共有


CcSetFileSizes 関数 (ntifs.h)

CcSetFileSizes ルーチンは、サイズが変更されたキャッシュ ファイルのキャッシュ マップとセクション オブジェクトを更新します。 代わりに CcSetFileSizesEx を使用してください。NTSTATUS リターン コードと、エラー処理に関するより優れたガイダンスが提供されるためです。

構文

void CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

パラメーター

[in] FileObject

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

[in] FileSizes

新しいファイル サイズ情報を含む CC_FILE_SIZES 構造体へのポインター。

戻り値

なし

解説

キャッシュされたファイルに対して次のいずれかの変更が行われるたびに、ファイル システムは CcSetFileSizesEx または CcSetFileSizes を呼び出してキャッシュ マネージャーのデータ構造を更新する必要があります。

  • 割り当てサイズが大きくなります。

  • 有効なデータ長が減少します。

  • 有効なデータ長は、キャッシュされていない I/O 操作によって増加します。

  • ファイル サイズが増減します。

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

ファイル システムは、キャッシュ マップが有効であり、この呼び出しの間は有効なままであることを確認する必要があります。

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

キャッシュされたファイルのサイズを取得するには、 FileObject をCcGetFileSizePointer に渡します。

要件

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

こちらもご覧ください

CcInitializeCacheMap

CcSetFileSizesEx