Funzione GetVolumeInformationA (fileapi.h)
Recupera informazioni sul file system e sul volume associati alla directory radice specificata.
Per specificare un handle durante il recupero di queste informazioni, usare la funzione GetVolumeInformationByHandleW .
Per recuperare lo stato di compressione corrente di un file o di una directory, usare FSCTL_GET_COMPRESSION.
Sintassi
BOOL GetVolumeInformationA(
[in, optional] LPCSTR lpRootPathName,
[out, optional] LPSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
Parametri
[in, optional] lpRootPathName
Puntatore a una stringa contenente la directory radice del volume da descrivere.
Se questo parametro è NULL, viene utilizzata la radice della directory corrente. È necessaria una barra rovesciata finale. Ad esempio, si specifica \\MyServer\MyShare come "\\MyServer\MyShare\" o l'unità C come "C:\".
[out, optional] lpVolumeNameBuffer
Puntatore a un buffer che riceve il nome di un volume specificato. Le dimensioni del buffer sono specificate dal parametro nVolumeNameSize .
[in] nVolumeNameSize
Lunghezza di un buffer dei nomi di volume, in TCHAR. La dimensione massima del buffer è MAX_PATHs+1.
Questo parametro viene ignorato se il buffer dei nomi del volume non viene fornito.
[out, optional] lpVolumeSerialNumber
Puntatore a una variabile che riceve il numero di serie del volume.
Questo parametro può essere NULL se il numero di serie non è obbligatorio.
Questa funzione restituisce il numero di serie del volume assegnato dal sistema operativo quando viene formattato un disco rigido. Per ottenere a livello di codice il numero di serie del disco rigido assegnato dal produttore, utilizzare la proprietà Strumentazione gestione Windows (WMI) Win32_PhysicalMediaserialNumber.
[out, optional] lpMaximumComponentLength
Puntatore a una variabile che riceve la lunghezza massima, in TCHAR, di un componente del nome file supportato da un file system specificato.
Un componente nome file è la parte di un nome file tra le barre rovesciata.
Il valore archiviato nella variabile a cui *lpMaximumComponentLength punta viene usato per indicare che un file system specificato supporta nomi lunghi. Ad esempio, per un file system FAT che supporta nomi lunghi, la funzione archivia il valore 255, anziché l'indicatore 8.3 precedente. I nomi lunghi possono essere supportati anche nei sistemi che usano il file system NTFS.
[out, optional] lpFileSystemFlags
Puntatore a una variabile che riceve i flag associati al file system specificato.
Questo parametro può essere uno o più dei flag seguenti. Tuttavia, FILE_FILE_COMPRESSION e FILE_VOL_IS_COMPRESSED si escludono a vicenda.
Valore | Significato |
---|---|
FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
Il volume specificato supporta nomi di file con distinzione tra maiuscole e minuscole. |
FILE_CASE_PRESERVED_NAMES 0x00000002 |
Il volume specificato supporta la combinazione di maiuscole e minuscole dei nomi di file quando inserisce un nome su disco. |
FILE_UNICODE_ON_DISK 0x00000004 |
Il volume specificato supporta Unicode nei nomi di file così come vengono visualizzati su disco. |
FILE_PERSISTENT_ACLS 0x00000008 |
Il volume specificato mantiene e applica gli elenchi di controllo di accesso (ACL). Ad esempio, il file system NTFS mantiene e applica gli ACL e il file system FAT non lo fa. |
FILE_FILE_COMPRESSION 0x00000010 |
Il volume specificato supporta la compressione basata su file. |
FILE_VOLUME_QUOTAS 0x00000020 |
Il volume specificato supporta le quote del disco. |
FILE_SUPPORTS_SPARSE_FILES 0x00000040 |
Il volume specificato supporta file di tipo sparse. |
FILE_SUPPORTS_REPARSE_POINTS 0x00000080 |
Il volume specificato supporta reparse points. Refs: ReFS supporta reparse points ma non li indicizza in modo che FindFirstVolumeMountPoint e FindNextVolumeMountPoint non funzionino come previsto. |
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 le operazioni di eliminazione e ridenominazione in stile POSIX. |
FILE_VOLUME_IS_COMPRESSED 0x00008000 |
Il volume specificato è un volume compresso, ad esempio un volume DoubleSpace. |
FILE_SUPPORTS_OBJECT_IDS 0x00010000 |
Il volume specificato supporta gli identificatori di oggetto. |
FILE_SUPPORTS_ENCRYPTION 0x00020000 |
Il volume specificato supporta il file system crittografato (EFS). Per altre informazioni, vedere Crittografia file. |
FILE_NAMED_STREAMS 0x00040000 |
Il volume specificato supporta flussi denominati. |
FILE_READ_ONLY_VOLUME 0x00080000 |
Il volume specificato è di sola lettura. |
FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 |
Il volume specificato supporta una singola scrittura sequenziale. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
Il volume specificato supporta le transazioni. Per altre informazioni, vedere Informazioni su KTM. |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
Il volume specificato supporta collegamenti reali. Per altre informazioni, vedere Collegamenti rigidi e giunzioni. Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
Il volume specificato supporta gli attributi estesi. Un attributo esteso è una parte di metadati specifici dell'applicazione che un'applicazione può associare a un file e non fa parte dei dati del file. Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
Il file system supporta l'apertura da FileID. Per altre informazioni, vedere FILE_ID_BOTH_DIR_INFO. Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
Il volume specificato supporta i journal del numero di sequenza di aggiornamento (USN). Per altre informazioni, vedere Modificare i record Journal. Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato fino a Windows Server 2008 R2 e Windows 7. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
Il file system supporta i flussi di integrità. |
FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 |
Il volume specificato supporta la condivisione di cluster logici tra file nello stesso volume. Il file system realloca nelle scritture nei cluster condivisi. Indica che FSCTL_DUPLICATE_EXTENTS_TO_FILE è un'operazione supportata. |
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). Nota: Questo flag è stato introdotto in Windows 10 versione 1607. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
Il file system supporta il ghosting. |
[out, optional] lpFileSystemNameBuffer
Puntatore a un buffer che riceve il nome del file system, ad esempio il file system FAT o il file system NTFS. Le dimensioni del buffer sono specificate dal parametro nFileSystemNameSize .
[in] nFileSystemNameSize
Lunghezza del buffer dei nomi del file system, in TCHARs. La dimensione massima del buffer è MAX_PATH+1.
Questo parametro viene ignorato se il buffer del nome del file system non viene fornito.
Valore restituito
Se tutte le informazioni richieste vengono recuperate, il valore restituito è diverso da zero.
Se non tutte le informazioni richieste vengono recuperate, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Quando un utente tenta di ottenere informazioni su un'unità floppy che non ha un disco floppy o un'unità CD-ROM che non dispone di un disco compatto, il sistema visualizza una finestra di messaggio per l'utente per inserire rispettivamente un disco floppy o un disco compatto. Per evitare che il sistema visualizzi questa finestra di messaggio, chiamare la funzione SetErrorMode con SEM_FAILCRITICALERRORS.
Il flag FILE_VOL_IS_COMPRESSED è l'unico indicatore di compressione basata sul volume. Il nome del file system non viene modificato per indicare la compressione, ad esempio, questo flag viene restituito in un volume DoubleSpace. Quando la compressione è basata su volume, un intero volume viene compresso o meno compresso.
Il flag FILE_FILE_COMPRESSION indica se un file system supporta la compressione basata su file. Quando la compressione è basata su file, i singoli file possono essere compressi o non compressi.
I flag FILE_FILE_COMPRESSION e FILE_VOL_IS_COMPRESSED si escludono a vicenda. Non è possibile restituire entrambi i bit.
Il valore massimo della lunghezza del componente archiviato in lpMaximumComponentLength è l'unico indicatore che un volume supporta file system FAT (o altri nomi di file system) più lunghi del normale. Il nome del file system non viene modificato per indicare il supporto per i nomi di file lunghi.
La funzione GetCompressedFileSize ottiene le dimensioni compresse di un file. La funzione GetFileAttributes può determinare se un singolo file è compresso.
Comportamento del collegamento simbolico
Se il percorso punta a un collegamento simbolico, la funzione restituisce informazioni sul volume per la destinazione.
A partire da Windows 8 e Windows Server 2012, questa funzione è supportata dalle tecnologie seguenti.
Tecnologia | Supportato |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
Failover trasparente SMB 3.0 (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
File system del volume condiviso del cluster (CsvFS) | Sì |
File system resiliente (ReFS) | Sì |
SMB non supporta le funzioni di gestione dei volumi.
Operazioni transazionate
Se il volume supporta le transazioni del file system, la funzione restituisce FILE_SUPPORTS_TRANSACTIONS in lpFileSystemFlags.
Nota
L'intestazione fileapi.h definisce GetVolumeInformation come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | fileapi.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |