Partager via


structure FILE_OBJECTID_INFORMATION (ntifs.h)

La structure FILE_OBJECTID_INFORMATION est utilisée pour interroger les informations d’ID d’objet pour les fichiers d’un répertoire sur un volume NTFS.

Syntaxe

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;

Membres

FileReference

Numéro de référence de fichier de 8 octets pour le fichier. NTFS génère ce nombre et l’affecte automatiquement au fichier lors de la création du fichier.

ObjectId[16]

ID d’objet de fichier de 16 octets pour le fichier. NTFS génère ce nombre et l’affecte au fichier à la demande d’un pilote ou d’une application. Les ID d’objet de fichier sont garantis d’être uniques uniquement dans le volume où réside le fichier.

DUMMYUNIONNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeId[16]

Identificateur d’objet du volume sur lequel se trouvait le fichier lors de la création de l’identificateur d’objet, ou zéro si le volume n’avait pas d’identificateur d’objet à ce moment-là. Après les opérations de copie, les opérations de déplacement ou d’autres opérations de fichier, BirthVolumeId peut ne pas être identique à l’identificateur d’objet du volume sur lequel réside actuellement l’objet.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectId[16]

Identificateur d’objet du fichier au moment de sa création. Après les opérations de copie, les opérations de déplacement ou d’autres opérations de fichier BirthObjectId peuvent ne pas être identiques à la valeur actuelle du membre ObjectId.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainId[16]

Réservé; doit être égal à zéro.

DUMMYUNIONNAME.ExtendedInfo[48]

Données fournies par l’utilisateur. Vous pouvez l’utiliser pour contenir leBirthVolumeID , BirthObjectIDet les membres DomainID, ou définir une autre structure de données.

Remarques

Ces informations peuvent être interrogées de l’une des manières suivantes :

  • Appelez ZwQueryDirectoryFile, en passant FileObjectIdInformation comme valeur de FileInformationClass et en passant une mémoire tampon FILE_OBJECTID_INFORMATION-structurée allouée par l’appelant comme valeur de FileInformation.

  • Créez un IRP avec le code de fonction principal IRP_MJ_DIRECTORY_CONTROL et le code de fonction secondaire IRP_MN_QUERY_DIRECTORY.

Aucun droit d’accès spécial n’est requis pour rechercher ces informations.

La prise en charge des numéros de référence de fichier et des ID d’objet de fichier est spécifique au système de fichiers :

  • Les ID d’objet de fichier sont pris en charge uniquement sur les volumes NTFS. NTFS permet aux fichiers d’être ouverts par ID d’objet et par numéro de référence de fichier.
  • ReFS ne prend pas en charge les ID d’objet. ReFS utilise des ID de fichier 128 bits. Il ne peut donc pas faire la distinction entre l’ID de fichier et l’ID d’objet lors du traitement d’un ID ouvert par ID. (Les ID de fichier sont de 64 bits sur NTFS. Ils se distinguent donc facilement des ID d’objet. NTFS prend également en charge l’ouverture par ID 128 bits : si les 64 bits élevés sont zéro, les 64 bits faibles sont traités comme un ID de fichier ; sinon, la valeur 128 bits est traitée comme un ID d’objet.)

Les pilotes de filtre de système de fichiers qui utilisent des ID d’objet de fichier doivent être testés pour l’interopérabilité avec DFS, le service Replicator et le service Distributed Link Tracking, qui utilisent et manipulent tous les ID d’objet de fichier.

Cette structure doit être alignée sur une limite LONG (4 octets).

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000
d’en-tête ntifs.h (include Ntifs.h, Fltkernel.h)

Voir aussi

FILE_INTERNAL_INFORMATION

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile