Compartilhar via


Função FltEnumerateFilters (fltkernel.h)

A rotina FltEnumerateFilters enumera todos os drivers de minifiltro registrados no sistema.

Sintaxe

NTSTATUS FLTAPI FltEnumerateFilters(
  [out] PFLT_FILTER *FilterList,
  [in]  ULONG       FilterListSize,
  [out] PULONG      NumberFiltersReturned
);

Parâmetros

[out] FilterList

Ponteiro para um buffer alocado por chamador que recebe uma matriz de ponteiros de filtro opacos. Esse parâmetro é opcional e pode ser NULL se o valor de FilterListSize parâmetro for zero. Se FilterListSize for zero na entrada e FilterList for NULL, o parâmetro NumberFiltersReturned receberá o número de drivers de minifiltro encontrados.

[in] FilterListSize

Número de ponteiros de filtro opacos aos quais o buffer que o FilterList pontos de parâmetro pode conter. Esse parâmetro é opcional e pode ser zero. Se FilterListSize for zero na entrada e FilterList for NULL, o parâmetro NumberFiltersReturned receberá o número de drivers de minifiltro encontrados.

[out] NumberFiltersReturned

Ponteiro para uma variável alocada por chamador que recebe o número de ponteiros de filtro opacos retornados na matriz à qual o FilterList parâmetro aponta. Se o valor do parâmetro FilterListSize for muito pequeno e FilterList não for NULL na entrada, FltEnumerateFilters retornará STATUS_BUFFER_TOO_SMALL e definirá NumberFiltersReturned para apontar para o número de drivers de minifiltro encontrados. Esse parâmetro é necessário e não pode ser NULL.

Valor de retorno

FltEnumerateFilters retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL
O buffer para o qual o parâmetro FilterList não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.

Observações

Como os filtros podem ser registrados a qualquer momento, duas chamadas para FltEnumerateFilters não têm garantia de retornar o mesmo resultado.

FltEnumerateFilters adiciona uma referência de rundown a cada um dos ponteiros de filtro opacos retornados na matriz à qual o parâmetro FilterList aponta. Quando esses ponteiros não forem mais necessários, o chamador deverá liberá-los chamando FltObjectDereference em cada um deles. Portanto, cada chamada bem-sucedida para FltEnumerateFilters deve ser correspondida por uma chamada subsequente para FltObjectDereference para cada ponteiro de filtro retornado.

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

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

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

Requisitos

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

Consulte também

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference