Função FltEnumerateInstances (fltkernel.h)

A rotina FltEnumerateInstances 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 ser não NULL se Filter for 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 ser não NULL se Volume for NULL.

[out] InstanceList

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

[in] InstanceListSize

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

[out] NumberInstancesReturned

Ponteiro para uma variável alocada pelo chamador que recebe o número de ponteiros opacos de instância retornados na matriz para a 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.

Retornar valor

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 para o qual o parâmetro InstanceList aponta não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.
STATUS_INVALID_PARAMETER
Volume e Filtro não podem ser NULL. Este é um código de erro.

Comentários

Como as instâncias do driver de minifiltro na lista de instâncias podem ser alteradas a qualquer momento, duas chamadas para FltEnumerateInstances com os mesmos valores 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 para a 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 a FltObjectDereference para cada ponteiro de instância retornado.

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

Para enumerar todos os volumes 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
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Confira também

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference