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 válidos do índice variam de 0 a n-1. Se o valor índice 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 driver de filtro herdado. Esse valor InformationClass está disponível a partir do Microsoft Windows Server 2003 SP1 e do Windows XP SP2 com rollup do gerenciador de filtros. Para obter mais informações sobre o pacote cumulativo do gerenciador de filtros para Windows XP SP2, consulte o artigo 914882"O pacote cumulativo do gerenciador de filtros para o Windows XP SP2", na Base de Dados de Conhecimento da Microsoft. |
FilterAggregateStandardInformation | O buffer apontado pelo parâmetro buffer recebe uma estrutura FILTER_AGGREGATE_STANDARD_INFORMATION para o minifiltro ou driver de filtro herdado. Esse valor InformationClass 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 o Buffer aponta. Se o valor de entrada de BufferSize for muito pequeno, FltEnumerateFilterInformation 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
FltEnumerateFilterInformation retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
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. |
|
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 antes do 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 índice é maior ou igual ao número de drivers de filtro.) Este é um código de aviso. |
Observações
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 do Buffer, para 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 índice de de 0). Informações sobre o driver de filtro anexado mais próximo são retornadas em segundo lugar (com um índice valor de parâmetro de 1) e assim por diante. Por fim, as informações sobre o driver de filtro mais próximo ao sistema de arquivos são retornadas por último (com um valor de parâmetro índice 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 que são conhecidos pelo Gerenciador de Filtros, chame FltEnumerateVolumeInformation.
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_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter