Função FltGetVolumeInformation (fltkernel.h)

A rotina FltGetVolumeInformation fornece informações sobre um determinado volume.

Sintaxe

NTSTATUS FLTAPI FltGetVolumeInformation(
  [in]  PFLT_VOLUME                     Volume,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

Parâmetros

[in] Volume

Ponteiro opaco para o volume. Esse parâmetro é necessário e não pode ser NULL.

[in] InformationClass

Tipo de informação solicitada. Esse parâmetro é necessário e deve ser um dos valores a seguir.

Valor Significado
FilterVolumeBasicInformation O parâmetro Buffer recebe uma estrutura FILTER_VOLUME_BASIC_INFORMATION para o volume.
FilterVolumeStandardInformation O parâmetro Buffer recebe uma estrutura FILTER_VOLUME_STANDARD_INFORMATION para o volume. Essa estrutura está disponível a partir do Windows Vista.

[out] Buffer

Ponteiro para um buffer alocado pelo chamador que recebe as informações solicitadas. O tipo das informações retornadas no buffer é definido pelo parâmetro InformationClass . Esse parâmetro é necessário e não pode ser NULL.

[in] BufferSize

Tamanho, em bytes, do buffer para o qual o parâmetro Buffer aponta. O chamador deve definir esse parâmetro de acordo com o valor de InformationClass fornecido. Este parâmetro é necessário.

[out] BytesReturned

Ponteiro para uma variável alocada pelo chamador que recebe o número de bytes retornados no buffer para o qual o Buffer aponta. Se o valor de entrada de BufferSize for muito pequeno, FltGetVolumeInformation retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável como o número de bytes necessários para armazenar as informações solicitadas. Esse parâmetro é necessário e não pode ser NULL.

Retornar valor

FltGetVolumeInformation retorna STATUS_SUCCESS ou um código de status NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um valor inválido foi especificado para o parâmetro InformationClass . Por exemplo, se FilterVolumeStandardInformation for especificado em um sistema operacional antes do Windows Vista, a rotina retornará STATUS_INVALID_PARAMETER. Este é um código de erro.
STATUS_BUFFER_TOO_SMALL
O buffer para o qual o parâmetro Buffer aponta não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.

Comentários

Dado um ponteiro de volume opaco, como o retornado pela rotina FltEnumerateVolumes , a rotina FltGetVolumeInformation fornece informações sobre o volume apontado pelo ponteiro de volume opaco, passado pelo parâmetro Volume . Observe que o chamador deve eventualmente liberar o ponteiro de volume opaco chamando a rotina FltObjectDereference .

A rotina FltGetVolumeInformation retorna informações para um único volume. No entanto, dada uma lista de ponteiros de volume opacos, a rotina pode ser usada iterativamente para criar uma lista de estruturas de informações de volume correspondentes. Nessa lista, é possível que duas ou mais estruturas contenham nomes de volume idênticos. Para obter mais informações, consulte Noções básicas sobre enumerações de volume com nomes de volume duplicados.

Para listar informações de volume para todos os volumes conhecidos pelo gerenciador de filtros, chame FltEnumerateVolumeInformation.

A lista a seguir contém informações relacionadas, que podem ser de uso:

  • Para enumerar todos os drivers de minifiltro registrados no sistema, chame a rotina FltEnumerateFilters .
  • Para obter informações sobre instâncias de driver de minifiltro anexadas a um determinado volume, chame a rotina FltEnumerateInstanceInformationByVolume .
  • Para enumerar instâncias de driver de minifiltro para um determinado driver de minifiltro ou volume, chame a rotina FltEnumerateInstances .
  • Para enumerar todos os volumes no sistema, chame a rotina FltEnumerateVolumes .
  • Para obter um ponteiro opaco para o volume representado por um determinado VDO (objeto de dispositivo de volume), chame a rotina FltGetVolumeFromDeviceObject .
  • Para obter um ponteiro opaco para o volume no qual um determinado fluxo de arquivos reside, chame a rotina FltGetVolumeFromFileObject .
  • Para obter um ponteiro opaco para o volume ao qual uma determinada instância de driver de minifiltro está anexada, chame a rotina FltGetVolumeFromInstance .
  • Para obter um ponteiro opaco para o volume cujo nome corresponde a um determinado nome de volume, chame a rotina FltGetVolumeFromName .

Requisitos

Requisito Valor
Cliente mínimo com suporte Essa rotina está disponível a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua FltKernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Confira também

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FLT_RELATED_OBJECTS

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeFromDeviceObject

FltGetVolumeFromFileObject

FltGetVolumeFromInstance

FltGetVolumeFromName