FILE_BOTH_DIR_INFORMATION-Struktur (ntifs.h)

Die FILE_BOTH_DIR_INFORMATION-Struktur wird verwendet, um detaillierte Informationen für die Dateien in einem Verzeichnis abzufragen.

Syntax

typedef struct _FILE_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;
  CCHAR         ShortNameLength;
  WCHAR         ShortName[12];
  WCHAR         FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;

Member

NextEntryOffset

Byteoffset des nächsten FILE_BOTH_DIR_INFORMATION Eintrags, wenn mehrere Einträge in einem Puffer vorhanden sind. Dieser Member ist 0, wenn keine anderen Einträge folgen.

FileIndex

Byteoffset der Datei im übergeordneten Verzeichnis. Dieser Member ist für Dateisysteme wie NTFS nicht definiert, in denen die Position einer Datei im übergeordneten Verzeichnis nicht festgelegt ist und jederzeit geändert werden kann, um die Sortierreihenfolge beizubehalten.

CreationTime

Zeitpunkt, zu dem die Datei erstellt wurde.

LastAccessTime

Zuletzt wurde auf die Datei zugegriffen.

LastWriteTime

Zuletzt wurden Informationen in die Datei geschrieben.

ChangeTime

Das letzte Mal wurde die Datei geändert.

EndOfFile

Absolute neue End-of-File-Position als Byteoffset vom Anfang der Datei. EndOfFile gibt den Byteoffset zum Ende der Datei an. Da dieser Wert nullbasiert ist, bezieht er sich tatsächlich auf das erste freie Byte in der Datei. Mit anderen Worten, EndOfFile ist der Offset auf das Byte unmittelbar nach dem letzten gültigen Byte in der Datei.

AllocationSize

Dateizuordnungsgröße in Bytes. In der Regel ist dieser Wert ein Vielfaches der Sektor- oder Clustergröße des zugrunde liegenden physischen Geräts.

FileAttributes

Dateiattribute, die eine beliebige gültige Kombination der folgenden sein können:

  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_DEVICE
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_TEMPORARY
  • FILE_ATTRIBUTE_SPARSE_FILE
  • FILE_ATTRIBUTE_REPARSE_POINT
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_OFFLINE
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
  • FILE_ATTRIBUTE_ENCRYPTED

FileNameLength

Gibt die Länge der Dateinamenzeichenfolge in Bytes an.

EaSize

Kombinierte Länge (in Bytes) der erweiterten Attribute (EA) für die Datei.

ShortNameLength

Gibt die Länge der kurzen Dateinamenzeichenfolge in Bytes an.

ShortName[12]

Unicode-Zeichenfolge, die den kurzen Namen (8.3) für die Datei enthält.

FileName[1]

Gibt das erste Zeichen der Dateinamenzeichenfolge an. Dies wird im Arbeitsspeicher durch den Rest der Zeichenfolge gefolgt.

Hinweise

Diese Informationen können auf eine der folgenden Arten abgefragt werden:

  • Rufen Sie ZwQueryDirectoryFile auf, übergeben Sie FileBothDirectoryInformation als Wert von FileInformationClass , und übergeben Sie einen aufruferseitig zugeordneten, FILE_BOTH_DIR_INFORMATION strukturierten Puffer als Wert von FileInformation.

  • Erstellen Sie eine IRP mit Hauptfunktionscode IRP_MJ_DIRECTORY_CONTROL und Nebenfunktionscode IRP_MN_QUERY_DIRECTORY.

Zum Abfragen dieser Informationen sind keine spezifischen Zugriffsrechte erforderlich.

Alle Datums- und Uhrzeitangaben sind im absoluten Systemzeitformat. Die absolute Systemzeit ist die Anzahl der Intervalle von 100 Nanosekunden seit Jahresbeginn 1601.

Diese Struktur muss an einer LONGLONG-Grenze (8 Byte) ausgerichtet werden. Wenn ein Puffer mindestens zwei dieser Strukturen enthält, fällt der NextEntryOffset-Wert in jedem Eintrag, mit Ausnahme des letzten, auf eine 8-Byte-Grenze.

Anforderungen

Anforderung Wert
Header ntifs.h (include Ntifs.h, Fltkernel.h)

Weitere Informationen

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile