Compartir a través de


Función FltEnumerateInstances (fltkernel.h)

El FltEnumerateInstances rutina enumera las instancias del controlador de minifiltro para un volumen o controlador de minifiltro determinado.

Sintaxis

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

Puntero opaco para el volumen para el que el autor de la llamada quiere enumerar las instancias del controlador de minifiltro. Si null, se enumeran las instancias de todos los volúmenes. Debe sernull no si de filtro es NULL.

[in, optional] Filter

Puntero de filtro opaco para el controlador de minifiltro cuyas instancias se van a enumerar. Si null, se enumeran las instancias de todos los controladores de minifiltro. Debe serNULL si volumen es NULL.

[out] InstanceList

Puntero a un búfer asignado por el autor de la llamada que recibe una matriz de punteros de instancia opacos.

[in] InstanceListSize

Número de punteros de instancia opacos a los que puede contener el búfer que InstanceList apunta.

[out] NumberInstancesReturned

Puntero a una variable asignada por el autor de la llamada que recibe el número de punteros de instancia opacos devueltos en la matriz a la que InstanceList apunta. Si InstanceListSize es demasiado pequeño, FltEnumerateInstances devuelve STATUS_BUFFER_TOO_SMALL y establece NumberInstancesReturned para apuntar al número de instancias coincidentes encontradas.

Valor devuelto

FltEnumerateInstances devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_BUFFER_TOO_SMALL
El búfer al que apunta el parámetro instanceList no es lo suficientemente grande como para almacenar la información solicitada. Se trata de un código de error.
STATUS_INVALID_PARAMETER
de volumen y filtro no se pueden null. Se trata de un código de error.

Observaciones

Dado que las instancias del controlador de minifiltro de la lista de instancias pueden cambiar en cualquier momento, no se garantiza que dos llamadas a FltEnumerateInstance s con la misma Volume y valores filter no se garantiza que devuelvan el mismo resultado.

FltEnumerateInstances agrega una referencia de rundown a cada uno de los punteros de instancia opacos devueltos en la matriz a la que apunta el parámetro InstanceList . Cuando estos punteros ya no son necesarios, el autor de la llamada debe liberarlos llamando a FltObjectDereference en cada uno. Por lo tanto, cada llamada correcta a fltEnumerateInstances debe coincidir con una llamada posterior a FltObjectDereference para cada puntero de instancia devuelto.

Para enumerar todos los controladores de minifiltro registrados, llame a FltEnumerateFilters.

Para enumerar todos los volúmenes que se conocen en el Administrador de filtros, llame a FltEnumerateVolumes.

Para enumerar la información de filtro de todos los controladores de minifiltro registrados, llame a FltEnumerateFilterInformation.

Para obtener información de filtro para un controlador de minifiltro determinado, llame a FltGetFilterInformation.

Para enumerar todas las instancias de un controlador de minifiltro determinado, llame a FltEnumerateInstanceInformationByFilter.

Para enumerar todas las instancias del controlador de minifiltro en un volumen determinado, llame a FltEnumerateInstanceInformationByVolume.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya Fltkernel.h)
biblioteca de FltMgr.lib
irQL <= APC_LEVEL

Consulte también

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

fltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference