Partilhar via


Função FltEnumerateFilterInformation (fltkernel.h)

A rotina FltEnumerateFilterInformation fornece informações sobre todos os drivers de filtro registrados (incluindo minifiltro e drivers de filtro herdados) no sistema.

Sintaxe

NTSTATUS FLTAPI FltEnumerateFilterInformation(
  [in]  ULONG                    Index,
  [in]  FILTER_INFORMATION_CLASS InformationClass,
  [out] PVOID                    Buffer,
  [in]  ULONG                    BufferSize,
  [out] PULONG                   BytesReturned
);

Parâmetros

[in] Index

Índice baseado em zero do driver de filtro para o qual as informações são solicitadas. Esse parâmetro identifica o filtro na lista global de drivers de filtro registrados. Se a lista contiver n drivers de filtro, os valores de índice válidos variam de 0 a n-1. Se o valor index exceder esse intervalo, FltEnumerateFilterInformation retornará STATUS_NO_MORE_ENTRIES.

[in] InformationClass

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

Valor Significado
FilterFullInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura FILTER_FULL_INFORMATION para o driver de minifiltro (drivers de filtro herdados são ignorados).
FilterAggregateBasicInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura FILTER_AGGREGATE_BASIC_INFORMATION para o minifiltro ou o driver de filtro herdado. Esse valor InformationClass está disponível a partir do Microsoft Windows Server 2003 SP1 e Windows XP SP2 com rollup do gerenciador de filtros. Para obter mais informações sobre o pacote cumulativo cumulativo de atualizações do gerenciador de filtros para Windows XP SP2, confira o artigo 914882, "O pacote cumulativo de atualizações do gerenciador de filtros para Windows XP SP2", na Base de Dados de Conhecimento Microsoft.
FilterAggregateStandardInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura FILTER_AGGREGATE_STANDARD_INFORMATION para o minifiltro ou o driver de filtro herdado. Esse valor InformationClass 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 .

[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.

[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, FltEnumerateFilterInformation 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

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

Código de retorno Descrição
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.
STATUS_FLT_DELETING_OBJECT
Um motorista de minifiltro 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 FilterAggregateStandardInformation for especificado em sistemas operacionais anteriores ao 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 drivers de filtro registrados. (O valor do parâmetro Index é maior ou igual ao número de drivers de filtro.) Este é um código de aviso.

Comentários

Começando com o Microsoft Windows Server 2003 SP1 e o Windows XP SP2 com rollup do gerenciador de filtros, FltEnumerateFilterInformation fornece informações sobre drivers de filtro do sistema de arquivos (também chamados de "filtros herdados"), bem como drivers de minifiltro. Em versões anteriores do Windows, FltEnumerateFilterInformation fornece apenas informações sobre drivers de minifiltro.

O pseudocódigo a seguir enumera informações de filtro para todos os drivers de filtro registrados.

#define InfoClass FilterAggregateStandardInformation   // Assumes Windows Vista or later operating system.

int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
 Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
 i++;
}

FltEnumerateFilterInformation retorna informações sobre drivers de filtro registrados, por meio do parâmetro Buffer , em ordem de diminuir a distância do sistema de arquivos subjacente. Por exemplo, suponha que haja n drivers de filtro anexados acima de um sistema de arquivos subjacente. As informações sobre o driver de filtro anexado mais distante do sistema de arquivos são retornadas primeiro (com um valor de parâmetro Index igual a 0). As informações sobre o driver de filtro anexado mais próximo são retornadas em segundo lugar (com um valor de parâmetro Index igual a 1) e assim por diante. Por fim, as informações sobre o driver de filtro mais próximo do sistema de arquivos são retornadas por último (com um valor de parâmetro Index de n-1).

Nota Como os drivers de filtro podem se registrar a qualquer momento, é possível que duas chamadas para FltEnumerateFilterInformation com o mesmo Índice não retornem o mesmo resultado.
 
Para enumerar todos os drivers de minifiltro registrados, chame FltEnumerateFilters.

Para enumerar todos os drivers de filtro herdados registrados, chame IoEnumerateRegisteredFiltersList.

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 listar informações de volume para todos os volumes conhecidos pelo Gerenciador de Filtros, chame FltEnumerateVolumeInformation.

Requisitos

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

Confira também

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList