FILE_DIRECTORY_INFORMATION 構造体 (ntifs.h)

FILE_DIRECTORY_INFORMATION構造は、ディレクトリ内のファイルの詳細情報を照会するために使用されます。

構文

typedef struct _FILE_DIRECTORY_INFORMATION {
  ULONG         NextEntryOffset;
  ULONG         FileIndex;
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime;
  LARGE_INTEGER EndOfFile;
  LARGE_INTEGER AllocationSize;
  ULONG         FileAttributes;
  ULONG         FileNameLength;
  WCHAR         FileName[1];
} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;

メンバー

NextEntryOffset

バッファーに複数のエントリが存在する場合は、次 のFILE_DIRECTORY_INFORMATION エントリのバイト オフセット。 このメンバーの後に他のエントリがない場合、このメンバーは 0 になります。

FileIndex

親ディレクトリ内のファイルのバイト オフセット。 このメンバーは、NTFS などのファイル システムでは未定義であり、親ディレクトリ内のファイルの位置は固定されず、並べ替え順序を維持するためにいつでも変更できます。

CreationTime

ファイルが作成された日時。

LastAccessTime

ファイルが最後にアクセスされた時刻。

LastWriteTime

最後に情報がファイルに書き込まれた時刻。

ChangeTime

ファイルが最後に変更された時刻。

EndOfFile

ファイルの先頭からのバイト オフセットとしての新しいファイルの最後の絶対位置。 EndOfFile は、ファイルの末尾へのバイト オフセットを指定します。 この値は 0 から始まるため、実際にはファイル内の最初のフリー バイトを参照します。 つまり、 EndOfFile は、ファイル内の最後の有効なバイトの直後のバイトへのオフセットです。

AllocationSize

ファイル割り当てサイズ (バイト単位)。 通常、この値は、基になる物理デバイスのセクターまたはクラスター サイズの倍数です。

FileAttributes

ファイル属性。次の任意の有効な組み合わせを指定できます。

  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_TEMPORARY

FileNameLength

ファイル名文字列の長さを指定します。

FileName[1]

ファイル名文字列の最初の文字を指定します。 その後、メモリ内で文字列の残りの部分が続きます。

注釈

この情報は、次のいずれかの方法で照会できます。

  • ZwQueryDirectoryFile を呼び出し、FileDirectoryInformationClass の値として FileDirectoryInformation を渡し、呼び出し元によって割り当てられたFILE_DIRECTORY_INFORMATION構造化バッファーを FileInformation の値として渡します。
  • メジャー関数コード IRP_MJ_DIRECTORY_CONTROLとマイナー関数コード IRP_MN_QUERY_DIRECTORYを含む IRP を作成します。

この情報を照会するために特定のアクセス権は必要ありません。

すべての日付と時刻は、システム時刻の絶対形式です。 システムの絶対時間は、1601 年の開始以降の 100 ナノ秒間隔の数です。

この構造体は、LONGLONG (8 バイト) 境界に配置する必要があります。 バッファーにこれらの構造体が 2 つ以上含まれている場合、各エントリの NextEntryOffset 値 (最後の を除く) は 8 バイトの境界になります。

要件

要件
Header ntifs.h (Ntifs.h、Fltkernel.h を含む)

こちらもご覧ください

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile