Função FilterFindFirst (fltuser.h)

A função FilterFindFirst retorna informações sobre um driver de filtro (instância de driver de minifiltro ou driver de filtro herdado) e é usada para começar a examinar os filtros na lista global de filtros registrados.

Sintaxe

HRESULT FilterFindFirst(
  [in]  FILTER_INFORMATION_CLASS dwInformationClass,
  [out] LPVOID                   lpBuffer,
  [in]  DWORD                    dwBufferSize,
  [out] LPDWORD                  lpBytesReturned,
  [out] LPHANDLE                 lpFilterFind
);

Parâmetros

[in] dwInformationClass

Tipo de informações de driver de filtro solicitadas. Esse parâmetro deve usar um dos valores a seguir.

Valor Significado
FilterFullInformation O buffer apontado pelo parâmetro lpBuffer recebe uma estrutura FILTER_FULL_INFORMATION para cada instância de minifiltro. Os filtros herdados são ignorados.
FilterAggregateBasicInformation O buffer apontado pelo parâmetro lpBuffer recebe uma estrutura FILTER_AGGREGATE_BASIC_INFORMATION para cada instância de minifiltro ou filtro herdado. Esse valor dwInformationClass está disponível a partir do Windows Server 2003 com SP1 e Windows XP com 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 com SP2, consulte 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 lpBuffer recebe uma estrutura FILTER_AGGREGATE_STANDARD_INFORMATION para cada instância de minifiltro ou filtro herdado. Esse valor dwInformationClass está disponível a partir do Windows Vista.

[out] lpBuffer

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

[in] dwBufferSize

Tamanho, em bytes, do buffer para o qual o parâmetro lpBuffer aponta. O chamador deve definir esse parâmetro de acordo com o dwInformationClass especificado.

[out] lpBytesReturned

Ponteiro para uma variável alocada pelo chamador que recebe o número de bytes retornados no buffer para o qual lpBuffer aponta se a chamada para FilterFindFirst for bem-sucedida. Esse parâmetro é necessário e não pode ser NULL.

[out] lpFilterFind

Ponteiro para uma variável alocada pelo chamador que recebe um identificador de pesquisa para o driver de filtro se a chamada para FilterFindFirst for bem-sucedida; caso contrário, ele receberá INVALID_HANDLE_VALUE. Esse identificador de pesquisa pode ser usado em chamadas subsequentes para FilterFindNext e FilterFindClose.

Retornar valor

FilterFindFirst retornará S_OK se tiver êxito. Caso contrário, ele retornará um valor de erro HRESULT, como um dos seguintes:

Código de retorno Descrição
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
O buffer apontado por lpBuffer não é grande o suficiente para conter as informações solicitadas. Quando esse valor é retornado, lpBytesReturned conterá o tamanho, em bytes, do buffer necessário para a estrutura dwInformationClass fornecida.
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)
Um valor inválido foi especificado para o parâmetro dwInformationClass . Por exemplo, se FilterAggregateStandardInformation for especificado para um sistema operacional antes do Windows Vista, FilterFindFirst retornará esse valor HRESULT.
HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
Um driver de filtro não foi encontrado na lista global de filtros registrados.

Comentários

A função FilterFindFirst abre um identificador de pesquisa e retorna informações sobre o primeiro driver de filtro encontrado na lista global de filtros registrados. Depois que o identificador de pesquisa tiver sido estabelecido, chame a função FilterFindNext para pesquisar outros filtros na lista global. Quando o identificador de pesquisa não for mais necessário, feche-o chamando FilterFindClose.

A partir do Microsoft Windows Server 2003 com SP1 e Windows XP com Service Pack 1 (SP1) com rollup do gerenciador de filtros, FilterFindFirst e FilterFindNext podem fornecer informações de driver de filtro herdado e informações de instância do driver de minifiltro. Em versões anteriores do Windows, FilterFindFirst e FilterFindNext só podem fornecer informações sobre minifiltros (consulte a descrição do parâmetro dwInformationClass acima).

FilterFindFirst e FilterFindNext retornam informações sobre drivers de filtro para diminuir a distância do sistema de arquivos base. As informações sobre o filtro mais distante do sistema de arquivos base são retornadas primeiro. As informações sobre o segundo filtro mais distante são retornadas em segundo lugar. As informações sobre o filtro mais próximo do sistema de arquivos base são retornadas por último.

Se o dwBufferSize de entrada for muito pequeno, lpFilterFind receberá INVALID_HANDLE_VALUE e lpBytesReturned receberá o número de bytes necessários para armazenar as informações solicitadas.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltuser.h (inclua FltUser.h)
Biblioteca FltLib.lib
DLL FltLib.dll

Confira também

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FilterFindClose

FilterFindNext