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