Função FltEnumerateInstanceInformationByVolume (fltkernel.h)

A rotina FltEnumerateInstanceInformationByVolume fornece informações sobre instâncias de driver de minifiltro e drivers de filtro herdados (somente Windows Vista) anexados a um determinado volume.

Sintaxe

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Parâmetros

[in] Volume

Ponteiro opaco para o volume.

[in] Index

Índice baseado em zero da instância do driver de minifiltro ou do driver de filtro herdado para o qual as informações são solicitadas.

[in] InformationClass

Tipo de informação a ser retornada para a instância do driver de minifiltro ou o driver de filtro herdado. Esse parâmetro pode ter um dos valores a seguir.

Valor Significado
InstanceBasicInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura INSTANCE_BASIC_INFORMATION para uma instância de minifiltro. Os drivers de filtro herdados são ignorados.
InstanceFullInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura INSTANCE_FULL_INFORMATION para uma instância de minifiltro. Os drivers de filtro herdados são ignorados.
InstancePartialInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura INSTANCE_PARTIAL_INFORMATION para uma instância de minifiltro. Os drivers de filtro herdados são ignorados.
InstanceAggregateStandardInformation O buffer apontado pelo parâmetro Buffer recebe uma estrutura INSTANCE_AGGREGATE_STANDARD_INFORMATION para uma instância de driver de minifiltro ou driver de filtro herdado. Essa estrutura está disponível a partir do Windows Vista.

[out] Buffer

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

[in] BufferSize

Tamanho, em bytes, do buffer para o qual o parâmetro Buffer aponta. O chamador deve definir esse parâmetro de acordo com o valor de InformationClass fornecido.

[out] BytesReturned

Ponteiro para uma variável alocada pelo 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, FltEnumerateInstanceInformationByVolume retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável como o número de bytes necessários para armazenar as informações solicitadas. Esse parâmetro é necessário e não pode ser NULL.

Retornar valor

FltEnumerateInstanceInformationByVolume 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 Buffer aponta não é grande o suficiente para armazenar as informações solicitadas. Este é um código de erro.
STATUS_FLT_DELETING_OBJECT
Uma instância de minifiltro correspondente foi encontrada, mas está sendo demolida. Este é um código de erro. Observe que esse valor retornado não se aplica aos drivers de filtro herdados porque os drivers de filtro herdados não podem ser descarregados.
STATUS_INVALID_PARAMETER
Um valor inválido foi especificado para o parâmetro InformationClass . Por exemplo, se InstanceAggregateStandardInformation for especificado em um sistema operacional antes do Windows Vista, a rotina retornará STATUS_INVALID_PARAMETER. Este é um código de erro.
STATUS_NO_MORE_ENTRIES
Não há mais entradas na lista de instâncias/filtros do volume. Esse é um código de aviso.

Comentários

Usar o parâmetro Index é simplesmente uma maneira de FltEnumerateInstanceInformationByVolume selecionar entre instâncias de driver de minifiltro e drivers de filtro herdados na lista de instância/filtro para o volume especificado por Volume. Como as instâncias do driver de minifiltro na lista de instâncias/filtros podem ser alteradas a qualquer momento, duas chamadas para FltEnumerateInstanceInformationByVolume com os mesmos valores de Índice e Volume não têm garantia de retornar o mesmo resultado.

A partir do Windows Vista, essa rotina pode retornar informações do driver de filtro herdado e informações da instância do driver de minifiltro quando o valor do parâmetro InformationClass for InstanceAggregateStandardInformation. Para sistemas operacionais anteriores, essa rotina não pode retornar informações de filtro herdadas porque a estrutura INSTANCE_AGGREGATE_STANDARD_INFORMATION não está disponível.

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 instâncias de todos os drivers de minifiltro em todos os volumes, chame FltEnumerateInstances.

Para enumerar todos os volumes conhecidos pelo Gerenciador de Filtros, chame FltEnumerateVolumes.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua FltKernel.h)
Biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Confira também

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION