Função GetVolumeInformationByHandleW (fileapi.h)

Recupera informações sobre o sistema de arquivos e o volume associados ao arquivo especificado.

Para recuperar o estado de compactação atual de um arquivo ou diretório, use FSCTL_GET_COMPRESSION.

Sintaxe

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
);

Parâmetros

[in] hFile

Um manipulador para o arquivo.

[out, optional] lpVolumeNameBuffer

Um ponteiro para um buffer que recebe o nome de um volume especificado. O tamanho máximo do buffer é MAX_PATH+1.

[in] nVolumeNameSize

O comprimento de um buffer de nome de volume, em WCHARs. O tamanho máximo do buffer é MAX_PATH+1.

Esse parâmetro será ignorado se o buffer de nome do volume não for fornecido.

[out, optional] lpVolumeSerialNumber

Um ponteiro para uma variável que recebe o número de série do volume.

Esse parâmetro poderá ser NULL se o número de série não for necessário.

Essa função retorna o número de série do volume que o sistema operacional atribui quando um disco rígido é formatado. Para obter programaticamente o número de série do disco rígido que o fabricante atribui, use a propriedade SerialNumberWin32_PhysicalMedia da Instrumentação de Gerenciamento do Windows (WMI).

[out, optional] lpMaximumComponentLength

Um ponteiro para uma variável que recebe o comprimento máximo, em WCHARs, de um componente de nome de arquivo compatível com um sistema de arquivos especificado.

Um componente de nome de arquivo é a parte de um nome de arquivo entre barras invertidas.

O valor armazenado na variável para a qual *lpMaximumComponentLength aponta é usado para indicar que um sistema de arquivos especificado dá suporte a nomes longos. Por exemplo, para um sistema de arquivos FAT que dá suporte a nomes longos, a função armazena o valor 255, em vez do indicador 8.3 anterior. Nomes longos também podem ter suporte em sistemas que usam o sistema de arquivos NTFS.

[out, optional] lpFileSystemFlags

Um ponteiro para uma variável que recebe sinalizadores associados ao sistema de arquivos especificado.

Esse parâmetro pode ser um ou mais dos sinalizadores a seguir. No entanto, FILE_FILE_COMPRESSION e FILE_VOL_IS_COMPRESSED são mutuamente exclusivos.

Valor Significado
FILE_CASE_SENSITIVE_SEARCH
0x00000001
O volume especificado dá suporte a nomes de arquivo que diferenciam maiúsculas de minúsculas.
FILE_CASE_PRESERVED_NAMES
0x00000002
O volume especificado dá suporte a maiúsculas e minúsculas preservadas de nomes de arquivo quando coloca um nome no disco.
FILE_UNICODE_ON_DISK
0x00000004
O volume especificado dá suporte a Unicode em nomes de arquivo conforme eles aparecem no disco.
FILE_PERSISTENT_ACLS
0x00000008
O volume especificado preserva e impõe acl (listas de controle de acesso). Por exemplo, o sistema de arquivos NTFS preserva e impõe ACLs, e o sistema de arquivos FAT não.
FILE_FILE_COMPRESSION
0x00000010
O volume especificado dá suporte à compactação baseada em arquivo.
FILE_VOLUME_QUOTAS
0x00000020
O volume especificado dá suporte a cotas de disco.
FILE_SUPPORTS_SPARSE_FILES
0x00000040
O volume especificado dá suporte a arquivos esparsos.
FILE_SUPPORTS_REPARSE_POINTS
0x00000080
O volume especificado dá suporte a pontos de nova análise.
FILE_VOLUME_IS_COMPRESSED
0x00008000
O volume especificado é um volume compactado, por exemplo, um volume DoubleSpace.
FILE_SUPPORTS_OBJECT_IDS
0x00010000
O volume especificado dá suporte a identificadores de objeto.
FILE_SUPPORTS_ENCRYPTION
0x00020000
O volume especificado dá suporte ao EFS (Sistema de Arquivos Criptografado). Para obter mais informações, consulte Criptografia de Arquivo.
FILE_NAMED_STREAMS
0x00040000
O volume especificado dá suporte a fluxos nomeados.
FILE_READ_ONLY_VOLUME
0x00080000
O volume especificado é somente leitura.
FILE_SEQUENTIAL_WRITE_ONCE
0x00100000
O volume especificado dá suporte a uma única gravação sequencial.
FILE_SUPPORTS_TRANSACTIONS
0x00200000
O volume especificado dá suporte a transações. Para obter mais informações, consulte Sobre KTM.
FILE_SUPPORTS_HARD_LINKS
0x00400000
O volume especificado dá suporte a links rígidos. Para obter mais informações, consulte Links rígidos e junções.

Windows Vista e Windows Server 2008: Não há suporte para esse valor.

FILE_SUPPORTS_EXTENDED_ATTRIBUTES
0x00800000
O volume especificado dá suporte a atributos estendidos. Um atributo estendido é uma parte dos metadados específicos do aplicativo que um aplicativo pode associar a um arquivo e não faz parte dos dados do arquivo.

Windows Vista e Windows Server 2008: Não há suporte para esse valor.

FILE_SUPPORTS_OPEN_BY_FILE_ID
0x01000000
O sistema de arquivos dá suporte a open by FileID. Para obter mais informações, consulte FILE_ID_BOTH_DIR_INFO.

Windows Vista e Windows Server 2008: Não há suporte para esse valor.

FILE_SUPPORTS_USN_JOURNAL
0x02000000
O volume especificado dá suporte a diários usn (número de sequência de atualização). Para obter mais informações, consulte Alterar registros de diário.

Windows Vista e Windows Server 2008: Não há suporte para esse valor.

FILE_SUPPORTS_BLOCK_REFCOUNTING
0x08000000
O volume especificado dá suporte ao compartilhamento de clusters lógicos entre arquivos no mesmo volume. O sistema de arquivos realoca em gravações em clusters compartilhados. Indica que FSCTL_DUPLICATE_EXTENTS_TO_FILE é uma operação com suporte.

[out, optional] lpFileSystemNameBuffer

Um ponteiro para um buffer que recebe o nome do sistema de arquivos, por exemplo, o sistema de arquivos FAT ou o sistema de arquivos NTFS. O tamanho do buffer é especificado pelo parâmetro nFileSystemNameSize .

[in] nFileSystemNameSize

O comprimento do buffer de nome do sistema de arquivos, em WCHARs. O tamanho máximo do buffer é MAX_PATH+1.

Esse parâmetro será ignorado se o buffer de nome do sistema de arquivos não for fornecido.

Valor retornado

Se todas as informações solicitadas forem recuperadas, o valor retornado será diferente de zero.

Se nem todas as informações solicitadas forem recuperadas, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Não
TFO (Failover transparente) do SMB 3.0 Não
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Não
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim

O SMB não dá suporte a funções de gerenciamento de volume.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho fileapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Sobre a KTM

Criptografia de Arquivo

GetCompressedFileSize

GetFileAttributes

GetVolumeInformation

SetErrorMode

SetVolumeLabel

Funções de gerenciamento de volumes