FILE_ID_ALL_EXTD_DIR_INFORMATION-Struktur (ntifs.h)
Die FILE_ID_ALL_EXTD_DIR_INFORMATION-Struktur wird verwendet, um 64-Bit- und 128-Bit-Dateireferenznummerninformationen für die Dateien in einem Verzeichnis abzufragen.
Syntax
typedef struct _FILE_ID_ALL_EXTD_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;
FILE_ID_128 FileId128;
WCHAR FileName[1];
} FILE_ID_ALL_EXTD_DIR_INFORMATION, *PFILE_ID_ALL_EXTD_DIR_INFORMATION;
Member
NextEntryOffset
Byteoffset des nächsten FILE_ID_64_EXTD_BOTH_DIR_INFORMATION Eintrags, wenn mehrere Einträge in einem Puffer vorhanden sind. Dieser Member ist 0(0), wenn keine weiteren Einträge auf diesen Folgen folgen.
FileIndex
Byteoffset der Datei im übergeordneten Verzeichnis. Dieser Member ist für Dateisysteme wie NTFS nicht definiert, bei 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
Der letzte Zugriff auf die Datei.
LastWriteTime
Das letzte Mal 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 bis 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 Byte. In der Regel entspricht dieser Wert einem Vielfachen der Sektor- oder Clustergröße des zugrunde liegenden physischen Geräts.
FileAttributes
Dateiattribute, bei denen es sich um eine beliebige gültige Kombination der folgenden Elemente sein kann:
- 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
Gibt die Länge der Dateinamenzeichenfolge an.
EaSize
Kombinierte Länge der erweiterten Attribute (EA) in Bytes für die Datei.
ReparsePointTag
Tagwert für den Analysepunkt.
FileId
Die 64-Bit-Dateireferenznummer für die Datei. Diese Nummer wird generiert und der Datei vom Dateisystem zugewiesen.
FileId128
Die 128-Bit-Dateireferenznummer für die Datei. Diese Nummer wird generiert und der Datei vom Dateisystem zugewiesen.
FileName[1]
Gibt das erste Zeichen der Dateinamenzeichenfolge an. Darauf folgt im Arbeitsspeicher der rest der Zeichenfolge.
Hinweise
Diese Informationen können auf eine der folgenden Arten abgefragt werden:
Rufen Sie ZwQueryDirectoryFile auf, übergeben Sie FileIdAllExtdDirectoryInformation als Wert von FileInformationClass , und übergeben Sie einen aufruferseitig zugeordneten , FILE_ID_ALL_EXTD_DIR_INFORMATION strukturierten Puffer als Wert von FileInformation.
Erstellen Sie ein IRP mit Hauptfunktionscode IRP_MJ_DIRECTORY_CONTROL und Nebenfunktionscode IRP_MN_QUERY_DIRECTORY.
Zum Abfragen dieser Informationen sind keine spezifischen Zugriffsrechte erforderlich.
Dateiverweisnummern, auch Datei-IDs genannt, sind garantiert nur innerhalb eines statischen Dateisystems eindeutig. Es ist nicht garantiert, dass sie im Laufe der Zeit eindeutig sind, da Dateisysteme sie frei wiederverwenden können. Es ist auch nicht garantiert, dass sie konstant bleiben. Beispielsweise generiert das FAT-Dateisystem die Dateireferenznummer für eine Datei aus dem Byteoffset des Verzeichniseintragsdatensatzes (DIRENT) der Datei auf dem Datenträger. Die Defragmentierung kann diesen Byteoffset ändern. Daher kann sich eine FAT-Dateireferenznummer im Laufe der Zeit ändern.
Alle Datums- und Uhrzeitangaben liegen im absoluten Systemzeitformat vor. Die absolute Systemzeit ist die Anzahl der Intervalle von 100 Nanosekunden seit Beginn des Jahres 1601.
Diese Struktur muss an einer LONGLONG-Grenze (8 Byte) ausgerichtet werden. Wenn ein Puffer zwei oder mehr dieser Strukturen enthält, fällt der NextEntryOffset-Wert in jedem Eintrag mit Ausnahme des letzten auf eine 8-Byte-Grenze.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 11, Version 23H2 |
Kopfzeile | ntifs.h |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für