Função FltEnumerateInstanceInformationByDeviceObject (fltkernel.h)

A rotina FltEnumerateInstanceInformationByDeviceObject fornece informações sobre instâncias de driver de minifiltro e drivers de filtro herdados anexados ao volume relacionado a um objeto de dispositivo especificado.

Sintaxe

NTSTATUS FLTAPI FltEnumerateInstanceInformationByDeviceObject(
  [in]  PDEVICE_OBJECT             DeviceObject,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Parâmetros

[in] DeviceObject

O objeto do dispositivo para o objeto de arquivo ou volume relacionado.

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

[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, FltEnumerateInstanceInformationByDeviceObject 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

FltEnumerateInstanceInformationByDeviceObject 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.
STATUS_FLT_DELETING_OBJECT
Uma instância de minifiltro correspondente foi encontrada, mas está sendo interrompida. Observe que esse valor retornado não se aplica a 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 .
STATUS_NO_MORE_ENTRIES
Não há mais entradas na lista de instâncias/filtros do volume.
STATUS_FLT_VOLUME_NOT_FOUND
Nenhum volume relacionado foi encontrado para DeviceObject.
STATUS_FLT_INTERNAL_ERROR
DeviceObject não é um objeto de dispositivo de volume válido.

-ou-

O volume relacionado a DeviceObject foi registrado, mas não tem nenhuma instância de filtro anexada.

Comentários

Usar o parâmetro Index é simplesmente uma maneira de FltEnumerateInstanceInformationByDeviceObject selecionar entre instâncias de driver de minifiltro e drivers de filtro herdados na lista de instância/filtro para o volume relacionado a DeviceObject. Como as instâncias de driver de minifiltro na lista de instância/filtro podem ser alteradas a qualquer momento, não há garantia de que duas chamadas para FltEnumerateInstanceInformationByDeviceObject com os mesmos valores Index e DeviceObject retornem o mesmo resultado.

Essa rotina retornará informações de driver de filtro herdado e informações de instância de driver de minifiltro quando o valor do parâmetro InformationClass for InstanceAggregateStandardInformation.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Confira também

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstanceInformationByVolumeName