次の方法で共有


CcSetFileSizesEx 関数 (ntifs.h)

CcSetFileSizesEx ルーチンは、サイズが変更されたキャッシュ ファイルのキャッシュ マップとセクション オブジェクトを更新します。

構文

NTSTATUS CcSetFileSizesEx(
  PFILE_OBJECT   FileObject,
  PCC_FILE_SIZES FileSizes
);

パラメーター

FileObject

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

FileSizes

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

戻り値

CcSetFileSizesEx は、ファイル サイズが正常に変更された場合、および消去が必要な場合は消去が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、STATUS_INSUFFICIENT_RESOURCESなどの成功以外の NSTATUS コードが返され、状態例外が発生する可能性があります。

エラー時の状態例外の発生について:

  • 操作によって CcSetFileSizesEx ファイルがフラッシュまたは消去された場合、CcSetFileSizesEx はエラーが発生しません。フラッシュ操作または消去操作の適切な成功していない NTSTATUS コードを返すだけです。

  • 操作によって ccSetFileSizesEx がセクションを拡張する場合、ccSetFileSizesEx は、この拡張機能中にヒットしたエラーで発生します。

備考

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

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

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

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

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

操作によって ccSetFileSizesEx セクションが拡張され、エラーが発生した場合、ccSetFileSizesEx は、その特定のエラーの状態例外を発生させます。 たとえば、プールの割り当てエラーが発生した場合、ccSetFileSizesEx STATUS_INSUFFICIENT_RESOURCES例外が発生します。 したがって、エラーが発生したかどうかを制御するには、ドライバーは、CcSetFileSizesEx への呼び出しを try-except または try-finally ステートメント ラップする必要があります。

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

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

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

必要条件

要件 価値
ヘッダー ntifs.h

関連項目

ccInitializeCacheMap の

CcSetCacheFileSizes