FILE_FS_ATTRIBUTE_INFORMATION struttura (ntifs.h)
La struttura FILE_FS_ATTRIBUTE_INFORMATION viene usata per eseguire query sulle informazioni sull'attributo per un file system.
Sintassi
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
ULONG FileSystemAttributes;
LONG MaximumComponentNameLength;
ULONG FileSystemNameLength;
WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
Members
FileSystemAttributes
Maschera di bit dei flag che specificano gli attributi del file system specificato, come combinazione compatibile dei flag seguenti.
Valore | Significato |
---|---|
FILE_CASE_SENSITIVE_SEARCH (0x00000001 ) | Il file system supporta nomi di file con distinzione tra maiuscole e minuscole. |
FILE_CASE_PRESERVED_NAMES (0x00000002 ) | Il file system mantiene il caso dei nomi di file quando inserisce un nome su disco. |
FILE_UNICODE_ON_DISK (0x00000004 ) | Il file system supporta Unicode nei nomi di file. |
FILE_PERSISTENT_ACLS (0x00000008 ) | Il file system mantiene e applica gli elenchi di controllo di accesso (ACL). |
FILE_FILE_COMPRESSION (0x00000010 ) | Il file system supporta la compressione basata su file. Questo flag non è compatibile con il flag di FILE_VOLUME_IS_COMPRESSED . Questo flag non influisce sul modo in cui i dati vengono trasferiti sulla rete. |
FILE_VOLUME_QUOTAS (0x00000020 ) | Il file system supporta quote per utente. |
FILE_SUPPORTS_SPARSE_FILES (0x00000040 ) | Il file system supporta i file sparse. |
FILE_SUPPORTS_REPARSE_POINTS (0x00000080 ) | Il file system supporta i punti di reparse. |
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100 ) | Il file system supporta l'archiviazione remota. |
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200 ) | In un'operazione di pulizia riuscita, il file system restituisce informazioni che descrivono azioni aggiuntive eseguite durante la pulizia, ad esempio l'eliminazione del file. I filtri del file system possono esaminare queste informazioni nel callback post-pulizia. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400 ) | Il file system supporta operazioni di eliminazione e ridenominazione in stile POSIX. |
FILE_VOLUME_IS_COMPRESSED (0x00008000 ) | Il volume specificato è un volume compresso. Questo flag non è compatibile con il flag di FILE_FILE_COMPRESSION . Ciò non influisce sul modo in cui i dati vengono trasferiti sulla rete. |
FILE_SUPPORTS_OBJECT_IDS (0x00010000 ) | Il file system supporta gli identificatori di oggetto. |
FILE_SUPPORTS_ENCRYPTION (0x00020000 ) | Il file system supporta la crittografia. |
FILE_NAMED_STREAMS (0x00040000 ) | Il file system supporta i flussi di dati denominati per un file. |
FILE_READ_ONLY_VOLUME (0x00080000 ) | Il volume specificato è di sola lettura. |
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000 ) | Il volume specificato può essere scritto in una sola volta. La scrittura deve essere eseguita in ordine sequenziale. |
FILE_SUPPORTS_TRANSACTIONS (0x00200000 ) | Il file system supporta l'elaborazione delle transazioni. |
FILE_SUPPORTS_HARD_LINKS (0x00400000 ) | Il file system supporta collegamenti diretti ad altri dispositivi e partizioni. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000 ) | Il file system supporta attributi estesi (EAs). |
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000 ) | Il file system supporta l'apertura in base all'ID file. |
FILE_SUPPORTS_USN_JOURNAL (0x02000000 ) | Il file system supporta i journal del numero di sequenza di aggiornamento (USN). |
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000 ) | Il file system supporta i flussi di integrità. |
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000 ) | Il file system supporta la clonazione in blocchi, ovvero la condivisione di cluster logici tra file nello stesso volume. Il file system realloca nelle scritture nei cluster condivisi. |
FILE_SUPPORTS_SPARSE_VDL (0x10000000 ) | Il file system tiene traccia del fatto che ogni cluster di un file contenga dati validi (da scritture esplicite o zeri automatici) o dati non validi (non è ancora stato scritto o zero). I file system che usano la lunghezza dei dati validi (VDL) non archiviano una lunghezza di dati valida e non richiedono che i dati validi siano contigui all'interno di un file. |
FILE_DAX_VOLUME (0x20000000 ) | Il volume specificato è un volume DAX (Direct Access). |
FILE_SUPPORTS_GHOSTING (0x40000000 ) | Il file system supporta il ghosting. |
MaximumComponentNameLength
Lunghezza massima del componente del nome file, in byte, supportata dal file system specificato. Un componente nome file è la parte di un nome file tra i caratteri separatori del percorso, ad esempio le barre rovesciate.
FileSystemNameLength
Lunghezza, in byte, del nome del file system. Il valore di questo campo deve essere maggiore di zero.
FileSystemName[1]
Campo Unicode a lunghezza variabile contenente il nome del file system. Questo campo non viene terminato con valori Null e deve essere gestito come sequenza di byte FileSystemNameLength .
Commenti
Queste informazioni possono essere sottoposte a query in uno dei modi seguenti:
Chiamare FltQueryVolumeInformation o ZwQueryVolumeInformationFile, passandoFileFsAttributeInformation come valore di FileInformationClass e passando un buffer allocato dal chiamante FILE_FS_ATTRIBUTE_INFORMATION strutturato come valore di FileInformation.
- Nota: in CSVFS , FileFsAttributeInformation restituisce FILE_FS_ATTRIBUTE_INFORMATION per il file system CSVFS. Se si vuole eseguire una query su FileFsAttributeInformation per il file system CSVFS, è consigliabile usare FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS.
Creare un'istanza di IRP con codice di funzione principale IRP_MJ_QUERY_VOLUME_INFORMATION.
Non sono necessari diritti di accesso specifici per eseguire query su queste informazioni. Queste informazioni sono quindi disponibili finché il volume è accessibile tramite un handle aperto al volume stesso o a un file o a una directory nel volume.
Le dimensioni del buffer passate nel parametro FileInformation a FltQueryVolumeInformation o ZwQueryVolumeInformationFile devono essere almeno sizeof(FILE_FS_ATTRIBUTE_INFORMATION)
. Poiché non è possibile assumere una lunghezza massima del nome del file system (praticamente, il limite è 2^31 punti di carattere), una seconda chiamata a una di queste routine sarà necessaria una volta che FileSystemNameLength è noto.
Questa struttura deve essere allineata a un limite LONG (4 byte).
Requisiti
Requisito | Valore |
---|---|
Intestazione | ntifs.h (include Ntifs.h, Fltkernel.h) |