estrutura FILE_FS_ATTRIBUTE_INFORMATION (ntifs.h)

A estrutura FILE_FS_ATTRIBUTE_INFORMATION é usada para consultar informações de atributo para um sistema de arquivos.

Sintaxe

typedef struct _FILE_FS_ATTRIBUTE_INFORMATION {
  ULONG FileSystemAttributes;
  LONG  MaximumComponentNameLength;
  ULONG FileSystemNameLength;
  WCHAR FileSystemName[1];
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;

Membros

FileSystemAttributes

Máscara de bits de sinalizadores especificando atributos do sistema de arquivos especificado, como uma combinação compatível dos sinalizadores a seguir.

Valor Significado
FILE_CASE_SENSITIVE_SEARCH (0x00000001) O sistema de arquivos dá suporte a nomes de arquivo que diferenciam maiúsculas de minúsculas.
FILE_CASE_PRESERVED_NAMES (0x00000002) O sistema de arquivos preserva o caso de nomes de arquivo quando coloca um nome no disco.
FILE_UNICODE_ON_DISK (0x00000004) O sistema de arquivos dá suporte a Unicode em nomes de arquivo.
FILE_PERSISTENT_ACLS (0x00000008) O sistema de arquivos preserva e impõe ACLs (listas de controle de acesso).
FILE_FILE_COMPRESSION (0x00000010) O sistema de arquivos dá suporte à compactação baseada em arquivo. Esse sinalizador é incompatível com o sinalizador FILE_VOLUME_IS_COMPRESSED . Esse sinalizador não afeta a forma como os dados são transferidos pela rede.
FILE_VOLUME_QUOTAS (0x00000020) O sistema de arquivos dá suporte a cotas por usuário.
FILE_SUPPORTS_SPARSE_FILES (0x00000040) O sistema de arquivos dá suporte a arquivos esparsos.
FILE_SUPPORTS_REPARSE_POINTS (0x00000080) O sistema de arquivos dá suporte a pontos de nova análise.
FILE_SUPPORTS_REMOTE_STORAGE (0x00000100) O sistema de arquivos dá suporte ao armazenamento remoto.
FILE_RETURNS_CLEANUP_RESULT_INFO (0x00000200) Em uma operação de limpeza bem-sucedida, o sistema de arquivos retorna informações que descrevem ações adicionais executadas durante a limpeza, como a exclusão do arquivo. Os filtros do sistema de arquivos podem examinar essas informações em seu retorno de chamada pós-limpeza.
FILE_SUPPORTS_POSIX_UNLINK_RENAME (0x00000400) O sistema de arquivos dá suporte a operações de exclusão e renomeação no estilo POSIX.
FILE_VOLUME_IS_COMPRESSED (0x00008000) O volume especificado é um volume compactado. Esse sinalizador é incompatível com o sinalizador FILE_FILE_COMPRESSION . Isso não afeta como os dados são transferidos pela rede.
FILE_SUPPORTS_OBJECT_IDS (0x00010000) O sistema de arquivos dá suporte a identificadores de objeto.
FILE_SUPPORTS_ENCRYPTION (0x00020000) O sistema de arquivos dá suporte à criptografia.
FILE_NAMED_STREAMS (0x00040000) O sistema de arquivos dá suporte a fluxos de dados nomeados para um arquivo.
FILE_READ_ONLY_VOLUME (0x00080000) O volume especificado é somente leitura.
FILE_SEQUENTIAL_WRITE_ONCE (0x00100000) O volume especificado pode ser gravado apenas uma vez. A gravação deve ser executada em ordem sequencial.
FILE_SUPPORTS_TRANSACTIONS (0x00200000) O sistema de arquivos dá suporte ao processamento de transações.
FILE_SUPPORTS_HARD_LINKS (0x00400000) O sistema de arquivos dá suporte a links diretos para outros dispositivos e partições.
FILE_SUPPORTS_EXTENDED_ATTRIBUTES (0x00800000) O sistema de arquivos dá suporte a EAs (atributos estendidos).
FILE_SUPPORTS_OPEN_BY_FILE_ID (0x01000000) O sistema de arquivos dá suporte a abrir por ID de arquivo.
FILE_SUPPORTS_USN_JOURNAL (0x02000000) O sistema de arquivos dá suporte a diários usn (número de sequência de atualização).
FILE_SUPPORTS_INTEGRITY_STREAMS (0x04000000) O sistema de arquivos dá suporte a fluxos de integridade.
FILE_SUPPORTS_BLOCK_REFCOUNTING (0x08000000) O sistema de arquivos dá suporte à clonagem de blocos, ou seja, ao compartilhamento de clusters lógicos entre arquivos no mesmo volume. O sistema de arquivos realoca em gravações em clusters compartilhados.
FILE_SUPPORTS_SPARSE_VDL (0x10000000) O sistema de arquivos controla se cada cluster de um arquivo contém dados válidos (de gravações de arquivo explícitas ou zeros automáticos) ou dados inválidos (ainda não foi gravado ou zerado). Os sistemas de arquivos que usam VDL (comprimento de dados válido) esparso não armazenam um comprimento de dados válido e não exigem que os dados válidos sejam contíguos em um arquivo.
FILE_DAX_VOLUME (0x20000000) O volume especificado é um volume DEX (acesso direto).
FILE_SUPPORTS_GHOSTING (0x40000000) O sistema de arquivos dá suporte ao ghosting.

MaximumComponentNameLength

Comprimento máximo do componente de nome de arquivo, em bytes, compatível com o sistema de arquivos especificado. Um componente de nome de arquivo é aquela parte de um nome de arquivo entre caracteres separadores de caminho (como barras invertidas).

FileSystemNameLength

Comprimento, em bytes, do nome do sistema de arquivos. O valor desse campo deve ser maior que zero.

FileSystemName[1]

Campo Unicode de comprimento variável que contém o nome do sistema de arquivos. Esse campo não é encerrado em nulo e deve ser tratado como uma sequência de bytes FileSystemNameLength .

Comentários

Essas informações podem ser consultadas de qualquer uma das seguintes maneiras:

  • Chame FltQueryVolumeInformation ou ZwQueryVolumeInformationFile, passando FileFsAttributeInformation como o valor de FileInformationClass e passando um buffer alocado pelo chamador FILE_FS_ATTRIBUTE_INFORMATION estruturado como o valor de FileInformation.

    • Observação: no CSVFS, FileFsAttributeInformation retorna FILE_FS_ATTRIBUTE_INFORMATION para o sistema de arquivos CSVFS. Se você quiser consultar FileFsAttributeInformation para que o sistema de arquivos CSVFS esteja em camadas, use FSCTL_CSV_QUERY_DOWN_LEVEL_FILE_SYSTEM_CHARACTERISTICS.
  • Crie um IRP com o código de função principal IRP_MJ_QUERY_VOLUME_INFORMATION.

Nenhum direito de acesso específico é necessário para consultar essas informações. Portanto, essas informações estão disponíveis desde que o volume seja acessado por meio de um identificador aberto para o próprio volume ou para um arquivo ou diretório no volume.

O tamanho do buffer passado no parâmetro FileInformation para FltQueryVolumeInformation ou ZwQueryVolumeInformationFile deve ser pelo menos sizeof(FILE_FS_ATTRIBUTE_INFORMATION). Como não é possível assumir um tamanho máximo de nome do sistema de arquivos (praticamente, o limite é de 2^31 pontos de caractere), uma segunda chamada para uma dessas rotinas será necessária depois que FileSystemNameLength for conhecido.

Essa estrutura deve ser alinhada em um limite LONG (4 bytes).

Requisitos

Requisito Valor
Cabeçalho ntifs.h (inclua Ntifs.h, Fltkernel.h)

Confira também

ACL

FltQueryVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

ZwQueryVolumeInformationFile