Partilhar via


Função FltEnumerateInstances (fltkernel.h)

O FltEnumerateInstances rotina enumera instâncias de driver de minifiltro para um determinado driver de minifiltro ou volume.

Sintaxe

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

Parâmetros

[in, optional] Volume

Ponteiro opaco para o volume para o qual o chamador deseja enumerar instâncias de driver de minifiltro. Se NULL, as instâncias de todos os volumes serão enumeradas. Deve serNULL não se de Filtro estiver NULL.

[in, optional] Filter

Ponteiro de filtro opaco para o driver de minifiltro cujas instâncias devem ser enumeradas. Se NULL, as instâncias de todos os drivers de minifiltro serão enumeradas. Deve serNULL não se volume for NULL.

[out] InstanceList

Ponteiro para um buffer alocado por chamador que recebe uma matriz de ponteiros opacos de instância.

[in] InstanceListSize

Número de ponteiros de instância opacos que o buffer que InstanceList aponta pode conter.

[out] NumberInstancesReturned

Ponteiro para uma variável alocada por chamador que recebe o número de ponteiros de instância opacos retornados na matriz à qual InstanceList aponta. Se InstanceListSize for muito pequeno, FltEnumerateInstances retornará STATUS_BUFFER_TOO_SMALL e definirá NumberInstancesReturned para apontar para o número de instâncias correspondentes encontradas.

Valor de retorno

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

Código de retorno Descrição
STATUS_BUFFER_TOO_SMALL
O buffer ao qual o parâmetro InstanceList não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.
STATUS_INVALID_PARAMETER
de Volume e de Filtro de não podem ser NULL. Este é um código de erro.

Observações

Como as instâncias de driver de minifiltro na lista de instâncias podem ser alteradas a qualquer momento, duas chamadas para FltEnumerateInstances com os mesmos valores de Volume e Filtro não têm garantia de retornar o mesmo resultado.

FltEnumerateInstances adiciona uma referência de rundown a cada um dos ponteiros opacos de instância retornados na matriz à qual o parâmetro InstanceList 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 FltEnumerateInstances deve ser correspondida por uma chamada subsequente para FltObjectDereference para cada ponteiro de instância retornado.

Para enumerar todos os drivers de minifiltro registrados, chame FltEnumerateFilters.

Para enumerar todos os volumes que são conhecidos pelo Gerenciador de Filtros, chame FltEnumerateVolumes.

Para listar informações de filtro para todos os drivers de minifiltro registrados, chame FltEnumerateFilterInformation.

Para obter informações de filtro para um determinado driver de minifiltro, chame FltGetFilterInformation .

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.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho fltkernel.h (inclua Fltkernel.h)
biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Consulte também

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference