FILE_OBJECTID_INFORMATION Struktur (ntifs.h)
Die FILE_OBJECTID_INFORMATION Struktur wird verwendet, um Objekt-ID-Informationen für die Dateien in einem Verzeichnis auf einem NTFS-Volume abzufragen.
Syntax
typedef struct _FILE_OBJECTID_INFORMATION {
LONGLONG FileReference;
UCHAR ObjectId[16];
union {
struct {
UCHAR BirthVolumeId[16];
UCHAR BirthObjectId[16];
UCHAR DomainId[16];
} DUMMYSTRUCTNAME;
UCHAR ExtendedInfo[48];
} DUMMYUNIONNAME;
} FILE_OBJECTID_INFORMATION, *PFILE_OBJECTID_INFORMATION;
Angehörige
FileReference
Die 8-Byte-Dateireferenznummer für die Datei. NTFS generiert diese Nummer und weist sie der Datei automatisch zu, wenn die Datei erstellt wird.
ObjectId[16]
Die 16-Byte-Dateiobjekt-ID für die Datei. NTFS generiert diese Nummer und weist sie der Datei auf Anforderung eines Treibers oder einer Anwendung zu. Dateiobjekt-IDs sind garantiert nur innerhalb des Volumes eindeutig, auf dem sich die Datei befindet.
DUMMYUNIONNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeId[16]
Der Objektbezeichner des Volumes, auf dem sich die Datei befindet, als der Objektbezeichner erstellt wurde, oder null, wenn das Volume zu diesem Zeitpunkt keinen Objektbezeichner hatte. Nach Kopiervorgängen, Verschiebungsvorgängen oder anderen Dateivorgängen ist BirthVolumeId- möglicherweise nicht mit dem Objektbezeichner des Volumes identisch, auf dem sich das Objekt derzeit befindet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectId[16]
Der Objektbezeichner der Datei zum Zeitpunkt der Erstellung. Nach Kopiervorgängen, Verschiebungsvorgängen oder anderen Dateivorgängen BirthObjectId- ist möglicherweise nicht identisch mit dem aktuellen Wert des ObjectId Members.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]
Reserviert; muss null sein.
DUMMYUNIONNAME.ExtendedInfo[48]
Vom Benutzer bereitgestellte Daten. Sie können es verwenden, um die BirthVolumeID-, BirthObjectID-und DomainID--Member zu enthalten, oder Sie können eine andere Datenstruktur definieren.
Bemerkungen
Diese Informationen können auf eine der folgenden Arten abgefragt werden:
Rufen Sie ZwQueryDirectoryFileauf, und übergeben Sie FileObjectIdInformation als Wert von FileInformationClass und übergeben Sie einen zugeordneten Aufrufer, FILE_OBJECTID_INFORMATION-strukturierten Puffer als Wert von FileInformation.
Erstellen Sie ein IRP mit Hauptfunktionscode IRP_MJ_DIRECTORY_CONTROL und Hilfsfunktionscode IRP_MN_QUERY_DIRECTORY.
Es sind keine speziellen Zugriffsrechte erforderlich, um diese Informationen abzufragen.
Unterstützung für Dateireferenznummern und Dateiobjekt-IDs ist dateisystemspezifisch:
- Dateiobjekt-IDs werden nur auf NTFS-Volumes unterstützt. NTFS ermöglicht das Öffnen von Dateien durch Die Objekt-ID und die Dateireferenznummer.
- ReFS unterstützt keine Objekt-IDs. ReFS verwendet 128-Bit-Datei-IDs, sodass beim Verarbeiten einer geöffneten ID nicht sauber zwischen Datei-ID und Objekt-ID unterschieden werden kann. (Datei-IDs sind 64-Bit auf NTFS, daher lassen sich leicht von Objekt-IDs unterscheiden. NTFS unterstützt auch gleichzeitig das Öffnen mit einer 128-Bit-ID: Wenn die hohen 64-Bit-Versionen null sind, werden die niedrigen 64-Bit-Versionen als Datei-ID behandelt; andernfalls wird der 128-Bit-Wert als Objekt-ID behandelt.)
Dateisystemfiltertreiber, die Dateiobjekt-IDs verwenden, sollten für die Interoperabilität mit DFS, dem Replikationsdienst und dem Distributed Link Tracking-Dienst getestet werden, die alle Dateiobjekt-IDs verwenden und bearbeiten.
Diese Struktur muss an einer LONG-Grenze (4 Byte) ausgerichtet werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 |
Header- | ntifs.h (einschließlich Ntifs.h, Fltkernel.h) |