FILE_DIRECTORY_INFORMATION struttura (ntifs.h)

La struttura FILE_DIRECTORY_INFORMATION viene usata per eseguire query dettagliate sulle informazioni per i file in una directory.

Sintassi

typedef struct _FILE_DIRECTORY_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;
  WCHAR         FileName[1];
} FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION;

Members

NextEntryOffset

Offset di byte della voce FILE_DIRECTORY_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_ARCHIVE
  • FILE_ATTRIBUTE_COMPRESSED
  • FILE_ATTRIBUTE_DIRECTORY
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_NORMAL
  • FILE_ATTRIBUTE_READONLY
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_TEMPORARY

FileNameLength

Specifica la lunghezza della stringa del nome file.

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 FileDirectoryInformation come valore di FileInformationClass e passando un buffer allocato dal chiamante FILE_DIRECTORY_INFORMATION strutturato come valore di FileInformation.
  • Creare un'IRP con codice di funzione principale IRP_MJ_DIRECTORY_CONTROL e codice di funzione secondario IRP_MN_QUERY_DIRECTORY.

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

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
Intestazione ntifs.h (include Ntifs.h, Fltkernel.h)

Vedi anche

FsRtlNotifyFullChangeDirectory

IRP_MJ_DIRECTORY_CONTROL

ZwQueryDirectoryFile