Condividi tramite


FILE_ID_ALL_EXTD_DIR_INFORMATION struttura (ntifs.h)

La struttura FILE_ID_ALL_EXTD_DIR_INFORMATION viene usata per eseguire query sul numero di riferimento del file a 64 bit e a 128 bit per i file in una directory.

Sintassi

typedef struct _FILE_ID_ALL_EXTD_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;
  ULONG         ReparsePointTag;
  LARGE_INTEGER FileId;
  FILE_ID_128   FileId128;
  WCHAR         FileName[1];
} FILE_ID_ALL_EXTD_DIR_INFORMATION, *PFILE_ID_ALL_EXTD_DIR_INFORMATION;

Members

NextEntryOffset

Offset di byte della voce FILE_ID_64_EXTD_BOTH_DIR_INFORMATION successiva, se in un buffer sono presenti più voci. Questo membro è zero se nessun'altra voce segue questa.

FileIndex

Offset di byte del file all'interno della directory padre. Questo membro non è definito per i file system, ad esempio NTFS, in cui la posizione di un file all'interno della directory padre non è fissa e può essere modificata in qualsiasi momento per mantenere l'ordine di ordinamento.

CreationTime

Ora della creazione del file.

LastAccessTime

Ultima volta che il file è stato eseguito l'accesso.

LastWriteTime

L'ultima volta che le informazioni sono state scritte nel file.

ChangeTime

Ultima volta che il file è stato modificato.

EndOfFile

Nuova posizione end-of-file assoluta come offset di byte dall'inizio del file. EndOfFile specifica l'offset di byte alla fine del file. Poiché questo valore è basato su zero, si riferisce effettivamente al primo byte libero nel file. In altre parole, EndOfFile è l'offset al byte immediatamente dopo l'ultimo byte valido nel file.

AllocationSize

Dimensioni dell'allocazione dei file, in byte. In genere, questo valore è un multiplo delle dimensioni del settore o del cluster del dispositivo fisico sottostante.

FileAttributes

Attributi di file, che possono essere una combinazione valida dei seguenti:

  • 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

Specifica la lunghezza della stringa del nome file.

EaSize

Lunghezza combinata, in byte, degli attributi estesi (EA) per il file.

ReparsePointTag

Valore tag per il punto di correzione.

FileId

Numero di riferimento del file a 64 bit per il file. Questo numero viene generato e assegnato al file dal file system.

FileId128

Numero di riferimento del file a 128 bit per il file. Questo numero viene generato e assegnato al file dal file system.

FileName[1]

Specifica il primo carattere della stringa del nome file. Questa operazione viene seguita in memoria dal resto della stringa.

Commenti

Queste informazioni possono essere sottoposte a query in uno dei modi seguenti:

  • Chiamare ZwQueryDirectoryFile, passando FileIdAllExtdDirectoryInformation come valore di FileInformationClass e passando un buffer allocato dal chiamante FILE_ID_ALL_EXTD_DIR_INFORMATION strutturato come valore di FileInformation.

  • Creare un'interfaccia IRP con codice di funzione principale IRP_MJ_DIRECTORY_CONTROL e codice di funzione secondaria IRP_MN_QUERY_DIRECTORY.

Non sono necessari diritti di accesso specifici per eseguire query su queste informazioni.

I numeri di riferimento dei file, chiamati anche ID file, sono garantiti essere univoci solo all'interno di un file system statico. Non è garantito che siano univoci nel tempo, perché i file system sono liberi di riutilizzarli. Né sono garantiti di rimanere costanti. Ad esempio, il file system FAT genera il numero di riferimento del file per un file dall'offset di byte del record di voce della directory del file (DIRENT) sul disco. La deframmentazione può modificare questo offset di byte. Pertanto, un numero di riferimento al file FAT può cambiare nel tempo.

Tutte le date e le ore sono in formato di sistema assoluto. Il tempo di sistema assoluto è il numero di intervalli di 100 nanosecondi dall'inizio dell'anno 1601.

Questa struttura deve essere allineata a un limite LONGLONG (8 byte). Se un buffer contiene due o più strutture, il valore NextEntryOffset in ogni voce, ad eccezione dell'ultimo, cade su un limite di 8 byte.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 versione 23H2
Intestazione ntifs.h

Vedi anche

FILE_INFORMATION_CLASS

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile