structure FILE_ID_BOTH_DIR_INFORMATION (ntifs.h)
La structure FILE_ID_BOTH_DIR_INFORMATION est utilisée pour interroger les informations de référence de fichier pour les fichiers d’un répertoire.
Syntaxe
typedef struct _FILE_ID_BOTH_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;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFORMATION, *PFILE_ID_BOTH_DIR_INFORMATION;
Membres
NextEntryOffset
Décalage d’octet de l’entrée FILE_ID_BOTH_DIR_INFORMATION suivante, si plusieurs entrées sont présentes dans une mémoire tampon. Ce membre est égal à zéro si aucune autre entrée ne suit celle-ci.
FileIndex
Décalage d’octet du fichier dans le répertoire parent. Ce membre n’est pas défini pour les systèmes de fichiers, tels que NTFS, dans lesquels la position d’un fichier dans le répertoire parent n’est pas fixe et peut être modifiée à tout moment pour maintenir l’ordre de tri.
CreationTime
Heure de création du fichier.
LastAccessTime
Dernière fois que le fichier a été consulté.
LastWriteTime
La dernière fois que les informations ont été écrites dans le fichier.
ChangeTime
Dernière modification du fichier.
EndOfFile
Nouvelle position de fin de fichier absolue en tant que décalage d’octet par rapport au début du fichier. EndOfFile spécifie le décalage d’octet à la fin du fichier. Étant donné que cette valeur est de base zéro, elle fait en fait référence au premier octet libre dans le fichier. En d’autres termes, EndOfFile est le décalage vers l’octet immédiatement après le dernier octet valide dans le fichier.
AllocationSize
Taille de l’allocation de fichiers, en octets. En règle générale, cette valeur est un multiple de la taille du secteur ou du cluster de l’appareil physique sous-jacent.
FileAttributes
Attributs de fichier, qui peuvent être n’importe quelle combinaison valide des éléments suivants :
- 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
Spécifie la longueur, en octets, de la chaîne de nom de fichier.
EaSize
Longueur combinée, en octets, des attributs étendus (EA) du fichier.
ShortNameLength
Spécifie la longueur de la chaîne de nom de fichier court.
ShortName[12]
Chaîne Unicode contenant le nom court (8.3) du fichier.
FileId
Numéro de référence du fichier de 8 octets pour le fichier. Ce nombre est généré et affecté au fichier par le système de fichiers. (Notez que fileId n’est pas identique à l'« ID d’objet de fichier » de 16 octets ajouté à NTFS pour Microsoft Windows 2000.)
FileName[1]
Spécifie le premier caractère de la chaîne de nom de fichier. Ceci est suivi en mémoire par le reste de la chaîne.
Remarques
Ces informations peuvent être interrogées de l’une des manières suivantes :
Appelez ZwQueryDirectoryFile, en passant FileIdBothDirectoryInformation comme valeur de FileInformationClass et en passant une mémoire tampon FILE_ID_BOTH_DIR_INFORMATION structurée par l’appelant comme valeur de FileInformation.
Create 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écifique n’est requis pour interroger ces informations.
Les numéros de référence de fichier, également appelés ID de fichier, sont garantis pour être uniques uniquement au sein d’un système de fichiers statique. Il n’est pas garanti qu’ils soient uniques au fil du temps, car les systèmes de fichiers sont libres de les réutiliser. Ils ne sont pas non plus assurés de rester constants. Par exemple, le système de fichiers FAT génère le numéro de référence d’un fichier à partir du décalage d’octet de l’enregistrement d’entrée de répertoire (DIRENT) du fichier sur le disque. La défragmentation peut modifier ce décalage d’octet. Ainsi, un numéro de référence de fichier FAT peut changer au fil du temps.
Toutes les dates et heures sont au format d’heure système absolu. Le temps système absolu est le nombre d’intervalles de 100 nanosecondes depuis le début de l’année 1601.
Cette structure doit être alignée sur une limite LONGLONG (8 octets). Si une mémoire tampon contient au moins deux de ces structures, la valeur NextEntryOffset de chaque entrée, à l’exception de la dernière, se situe sur une limite de 8 octets.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntifs.h (include Ntifs.h, Fltkernel.h) |