FILE_ID_64_EXTD_BOTH_DIR_INFORMATION 構造体 (ntifs.h)

FILE_ID_64_EXTD_BOTH_DIR_INFORMATION構造は、ディレクトリ内のファイルの 64 ビット ファイル参照番号情報を照会するために使用されます。

構文

typedef struct _FILE_ID_64_EXTD_BOTH_DIR_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;
  ULONG         EaSize;
  ULONG         ReparsePointTag;
  LARGE_INTEGER FileId;
  CCHAR         ShortNameLength;
  WCHAR         ShortName[12];
  WCHAR         FileName[1];
} FILE_ID_64_EXTD_BOTH_DIR_INFORMATION, *PFILE_ID_64_EXTD_BOTH_DIR_INFORMATION;

メンバー

NextEntryOffset

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

FileIndex

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

CreationTime

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

LastAccessTime

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

LastWriteTime

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

ChangeTime

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

EndOfFile

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

AllocationSize

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

FileAttributes

ファイル属性。次の任意の有効な組み合わせにすることができます。

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

FileNameLength

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

EaSize

ファイルの拡張属性 (EA) の合計長さ (バイト単位)。

ReparsePointTag

再解析ポイントのタグ値。

FileId

ファイルの 64 ビット ファイル参照番号。 この番号は、ファイル システムによって生成され、ファイルに割り当てられます。

ShortNameLength

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

ShortName[12]

ファイルの短い (8.3) 名を含む Unicode 文字列。

FileName[1]

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

注釈

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

  • ZwQueryDirectoryFile を呼び出し、FileId64ExtdBothDirectoryInformationを FileInformationClass の値として渡し、呼び出し元によって割り当てられたFILE_ID_64_EXTD_BOTH_DIR_INFORMATION構造化バッファーを FileInformation の値として渡します。

  • 主要な関数コード IRP_MJ_DIRECTORY_CONTROLとマイナー関数コード IRP_MN_QUERY_DIRECTORY を含む IRP を作成します。

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

ファイル参照番号 (ファイル ID とも呼ばれます) は、静的ファイル システム内でのみ一意であることが保証されます。 ファイル システムは自由に再利用できるため、時間の経過と同時に一意であるとは限りません。 また、一定の状態を保つ保証もありません。 たとえば、FAT ファイル システムは、ディスク上のファイルのディレクトリ エントリ レコード (DIRENT) のバイト オフセットからファイルのファイル参照番号を生成します。 デフラグによって、このバイト オフセットが変更される可能性があります。 したがって、FAT ファイル参照番号は時間の経過と同時に変化する可能性があります。

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

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

要件

要件
サポートされている最小のクライアント Windows 11バージョン 23H2
Header ntifs.h

こちらもご覧ください

FILE_INFORMATION_CLASS

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile