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 pelo chamador que recebe uma matriz de ponteiros de filtro opacos. Esse parâmetro é opcional e pode ser NULL se o valor do parâmetro FilterListSize 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 opaco para os quais o buffer que o parâmetro FilterList aponta 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 pelo chamador que recebe o número de ponteiros de filtro opaco retornados na matriz para a qual o parâmetro FilterList 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.
Retornar valor
FltEnumerateFilters retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:
Código de retorno | Descrição |
---|---|
|
O buffer para o qual o parâmetro FilterList aponta não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro. |
Comentários
Como os filtros podem ser registrados a qualquer momento, não há garantia de que duas chamadas para FltEnumerateFilters retornem o mesmo resultado.
FltEnumerateFilters adiciona uma referência de rundown a cada um dos ponteiros de filtro opaco retornados na matriz para a 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 a 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 conhecidos pelo Gerenciador de Filtros, chame FltEnumerateVolumes.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Biblioteca | FltMgr.lib |
IRQL | <= APC_LEVEL |