FILE_BOTH_DIR_INFORMATION struttura (ntifs.h)
La struttura FILE_BOTH_DIR_INFORMATION viene usata per eseguire query dettagliate sui file in una directory.
Sintassi
typedef struct _FILE_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];
WCHAR FileName[1];
} FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION;
Members
NextEntryOffset
Offset di byte della voce FILE_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_DEVICE
- FILE_ATTRIBUTE_NORMAL
- FILE_ATTRIBUTE_TEMPORARY
- FILE_ATTRIBUTE_SPARSE_FILE
- FILE_ATTRIBUTE_REPARSE_POINT
- FILE_ATTRIBUTE_COMPRESSED
- FILE_ATTRIBUTE_OFFLINE
- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
- FILE_ATTRIBUTE_ENCRYPTED
FileNameLength
Specifica la lunghezza, in byte, della stringa nome file.
EaSize
Lunghezza combinata, in byte, degli attributi estesi (EA) per il file.
ShortNameLength
Specifica la lunghezza, in byte, della stringa nome file breve.
ShortName[12]
Stringa Unicode contenente il nome breve (8.3) per il 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 FileBothDirectoryInformation come valore di FileInformationClass e passando un buffer allocato dal chiamante FILE_BOTH_DIR_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) |