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;

Member

FileReference

Die 8-Byte-Dateireferenznummer für die Datei. NTFS generiert diese Nummer und weist sie automatisch der Datei 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 befand, als der Objektbezeichner erstellt wurde, oder null, wenn das Volume zu diesem Zeitpunkt keinen Objektbezeichner hatte. Nach Kopiervorgängen, Verschiebevorgä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 ist BirthObjectId möglicherweise nicht mit dem aktuellen Wert des ObjectId-Elements identisch.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]

Reserviert; muss null sein.

DUMMYUNIONNAME.ExtendedInfo[48]

Vom Benutzer bereitgestellte Daten. Sie können es verwenden, um die Member BirthVolumeID, BirthObjectID und DomainID zu enthalten, oder Sie können eine andere Datenstruktur definieren.

Hinweise

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

  • Rufen Sie ZwQueryDirectoryFile auf, und übergeben Sie FileObjectIdInformation als Wert von FileInformationClass , und übergeben Sie einen vom Aufrufer zugeordneten , FILE_OBJECTID_INFORMATION strukturierten Puffer als Wert von FileInformation.

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

Es sind keine speziellen Zugriffsrechte erforderlich, um diese Informationen abzufragen.

Die Unterstützung für Dateiverweisnummern und Dateiobjekt-IDs ist dateisystemspezifisch:

  • Dateiobjekt-IDs werden nur auf NTFS-Volumes unterstützt. NTFS ermöglicht das Öffnen von Dateien sowohl nach Objekt-ID als auch nach Dateiverweisnummer.
  • ReFS unterstützt keine Objekt-IDs. ReFS verwendet 128-Bit-Datei-IDs, sodass beim Verarbeiten von open by ID nicht sauber zwischen Datei-ID und Objekt-ID unterschieden werden kann. (Datei-IDs sind 64-Bits unter NTFS, können daher leicht von Objekt-IDs unterschieden werden. NTFS unterstützt auch gleichzeitig das Öffnen mit einer 128-Bit-ID: Wenn die hohen 64-Bits null sind, werden die niedrigen 64-Bits als Datei-ID behandelt; Andernfalls wird der 128-Bit-Wert als Objekt-ID behandelt.)

Dateisystemfiltertreiber, die Dateiobjekt-IDs verwenden, sollten auf Interoperabilität mit DFS, dem Replicator-Dienst 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
Unterstützte Mindestversion (Client) Windows 2000
Kopfzeile ntifs.h (include Ntifs.h, Fltkernel.h)

Weitere Informationen

FILE_INTERNAL_INFORMATION

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile