Funzione GetVolumeInformationByHandleW (fileapi.h)

Recupera informazioni sul file system e sul volume associati al file specificato.

Per recuperare lo stato di compressione corrente di un file o di una directory, usare FSCTL_GET_COMPRESSION.

Sintassi

BOOL GetVolumeInformationByHandleW(
  [in]            HANDLE  hFile,
  [out, optional] LPWSTR  lpVolumeNameBuffer,
  [in]            DWORD   nVolumeNameSize,
  [out, optional] LPDWORD lpVolumeSerialNumber,
  [out, optional] LPDWORD lpMaximumComponentLength,
  [out, optional] LPDWORD lpFileSystemFlags,
  [out, optional] LPWSTR  lpFileSystemNameBuffer,
  [in]            DWORD   nFileSystemNameSize
);

Parametri

[in] hFile

Handle per il file.

[out, optional] lpVolumeNameBuffer

Puntatore a un buffer che riceve il nome di un volume specificato. La dimensione massima del buffer è MAX_PATH+1.

[in] nVolumeNameSize

Lunghezza di un buffer dei nomi di volume, in WCHARs. La dimensione massima del buffer è MAX_PATH+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 WCHARs, 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 la ripetizione dell'analisi dei punti.
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 Vista e Windows Server 2008: Questo valore non è supportato.

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 Vista e Windows Server 2008: Questo valore non è supportato.

FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
Il file system supporta l'apertura tramite FileID. Per altre informazioni, vedere FILE_ID_BOTH_DIR_INFO.

Windows Vista e Windows Server 2008: Questo valore non è supportato.

FILE_SUPPORTS_USN_JOURNAL
0x02000000
Il volume specificato supporta i journal del numero di sequenza di aggiornamento (USN). Per altre informazioni, vedere Change Journal Records.For more information, see Change Journal Records.

Windows Vista e Windows Server 2008: Questo valore non è supportato.

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
Il volume specificato supporta la condivisione di cluster logici tra file nello stesso volume. Il file system rialloca le operazioni di scrittura nei cluster condivisi. Indica che FSCTL_DUPLICATE_EXTENTS_TO_FILE è un'operazione supportata.

[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 WCHARs. La dimensione massima del buffer è MAX_PATH+1.

Questo parametro viene ignorato se il buffer dei nomi del file system non viene fornito.

Valore restituito

Se vengono recuperate tutte le informazioni richieste, il valore restituito è diverso da zero.

Se non vengono recuperate tutte le informazioni richieste, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

In 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 di scalabilità orizzontale (SO) No
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)

SMB non supporta le funzioni di gestione dei volumi.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione fileapi.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Informazioni su KTM

Crittografia file

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Funzioni di gestione dei volumi