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 |
---|---|
|
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. |
|
Um motorista de minifiltro correspondente foi encontrado, mas está sendo derrubado. Este é um código de erro. |
|
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. |
|
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).
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
FltEnumerateInstanceInformationByFilter