FILE_VALID_DATA_LENGTH_INFORMATION構造体 (ntddk.h)

FILE_VALID_DATA_LENGTH_INFORMATION構造体は、ZwSetInformationFile の引数として使用されます。

構文

typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION {
  LARGE_INTEGER ValidDataLength;
} FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;

メンバー

ValidDataLength

ファイルの新しい有効なデータ長を指定します。 このパラメーターは、現在の有効なデータ長より大きく、現在のファイル サイズ以下の正の値である必要があります。

注釈

FILE_VALID_DATA_LENGTH_INFORMATION構造体は、NTFS ボリューム上のファイルの新しい有効なデータ長を設定するために使用されます。 ファイルの 有効なデータ長 は、ファイルに書き込まれたデータの長さ (バイト単位) です。 この 有効なデータ は、ファイルの先頭から、ゼロまたは初期化されていないファイル内の最後のバイトまで拡張されます。

この情報を設定するには、ファイルFILE_WRITE_DATAアクセスする必要があります。 さらに、管理者以外のユーザーとリモート ユーザーは、ファイルが存在するボリュームの SeManageVolumePrivilege (SE_MANAGE_VOLUME_PRIVILEGE) を持っている必要があります。

ファイル システム フィルター ドライバーは、次のシナリオで有効なデータ長を設定すると便利です。

  • ハードウェア チャネルを介して生クラスターをディスクに直接書き込む場合。 これにより、フィルター ドライバーは、この範囲にユーザーに返すことができる有効なデータが含まれていることをファイル システムに通知できます。
  • パフォーマンスが問題となる大きなファイルを作成する場合。 これにより、ファイルの作成時または拡張時にファイルをゼロで埋めるのにかかる時間が回避されます。
  • ファイルをリモートで拡張し、サービスメタデータ クラスター ファイル システム上のディスクに書き込む場合。
ZwSetInformationFile に渡される FileInformation バッファーのサイズは、少なくとも sizeof(FILE_VALID_DATA_LENGTH_INFORMATION) である必要があります。

この構造体は、LONGLONG (8 バイト) 境界に配置する必要があります。

要件

要件
サポートされている最小のクライアント Microsoft Windows XP 以降のバージョンの Windows オペレーティング システムで使用できます。
Header ntddk.h (Ntddk.h を含む)

こちらもご覧ください

ZwSetInformationFile