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 du 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 fichier sont garantis pour ê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 le fichier se trouvait 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, 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és au; doit être égal à zéro.

DUMMYUNIONNAME.ExtendedInfo[48]

Données fournies par l’utilisateur. Vous pouvez l’utiliser pour contenir les membres BirthVolumeID, BirthObjectID et DomainID , ou vous pouvez définir une structure de données différente.

Remarques

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

  • Appelez ZwQueryDirectoryFile, en transmettant 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 interroger 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 fichier sont pris en charge uniquement sur les volumes NTFS. NTFS permet d’ouvrir des fichiers par ID d’objet ainsi que 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 est donc impossible de faire une distinction nette 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 sont donc facilement distingués 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 des ID d’objet de fichier.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
En-tête ntifs.h (include Ntifs.h, Fltkernel.h)

Voir aussi

FILE_INTERNAL_INFORMATION

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile