Compartilhar via


Função FltEnumerateVolumeInformation (fltkernel.h)

A rotina FltEnumerateVolumeInformation fornece informações sobre volumes conhecidos pelo gerenciador de filtros.

Sintaxe

NTSTATUS FLTAPI FltEnumerateVolumeInformation(
  [in]  PFLT_FILTER                     Filter,
  [in]  ULONG                           Index,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

Parâmetros

[in] Filter

Ponteiro de filtro opaco para o driver de minifiltro. Esse ponteiro identifica exclusivamente o driver de minifiltro e permanece constante desde que o driver de minifiltro seja carregado.

[in] Index

Índice baseado em zero do volume para o qual as informações são solicitadas.

[in] InformationClass

Tipo de informação solicitada. Esse parâmetro pode ter um dos valores a seguir.

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

[out] Buffer

Ponteiro para um buffer alocado por chamador que recebe as informações solicitadas. O tipo das informações retornadas no buffer é definido pelo parâmetro InformationClass.

[in] BufferSize

Tamanho, em bytes, do buffer ao qual o Buffer parâmetro aponta. O chamador deve definir esse parâmetro de acordo com o valor informationClass fornecido.

[out] BytesReturned

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

Valor de retorno

FltEnumerateVolumeInformation retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL
O buffer ao qual o buffer de aponta não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.
STATUS_FLT_DELETING_OBJECT
Um volume correspondente foi encontrado, mas está sendo derrubado. Este é um código de erro.
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_NO_MORE_ENTRIES
Não há mais entradas na lista global de volumes. Este é um código de aviso.

Observações

Usar o parâmetro Index é simplesmente uma maneira para a rotina FltEnumerateVolumeInformation selecionar entre volumes na lista global de volumes do gerenciador de filtros. Duas chamadas para FltEnumerateVolumeInformation com o mesmo valor do parâmetro índice não necessariamente retornam o mesmo resultado porque os volumes podem ser montados ou desmontados a qualquer momento.

Se FltEnumerateVolumeInformation for usado para criar uma lista de estruturas de informações de volume, é possível que duas ou mais dessas 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 enumerar todos os drivers de minifiltro registrados, chame FltEnumerateFilters.

Para enumerar todos os volumes que são conhecidos pelo gerenciador de filtros, chame FltEnumerateVolumes.

Para listar informações de filtro para todos os drivers de minifiltro registrados, chame FltEnumerateFilterInformation.

Para obter informações de filtro para um determinado driver de minifiltro, chame FltGetFilterInformation .

Para enumerar todas as instâncias de um determinado driver de minifiltro, chame FltEnumerateInstanceInformationByFilter.

Para enumerar todas as instâncias de driver de minifiltro em um determinado volume, chame FltEnumerateInstanceInformationByVolume.

Para enumerar instâncias de todos os drivers de minifiltro em todos os volumes, chame FltEnumerateInstances.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho fltkernel.h (inclua FltKernel.h)
biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Consulte também

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation