Compartir a través de


Función FltEnumerateFilters (fltkernel.h)

La rutina FltEnumerateFilters enumera todos los controladores de minifiltro registrados en el sistema.

Sintaxis

NTSTATUS FLTAPI FltEnumerateFilters(
  [out] PFLT_FILTER *FilterList,
  [in]  ULONG       FilterListSize,
  [out] PULONG      NumberFiltersReturned
);

Parámetros

[out] FilterList

Puntero a un búfer asignado por el autor de la llamada que recibe una matriz de punteros de filtro opaco. Este parámetro es opcional y puede ser null si el valor de filterListSize parámetro es cero. Si FilterListSize es cero en la entrada y filterList es NULL, el parámetro NumberFiltersReturned recibe el número de controladores de minifiltro encontrados.

[in] FilterListSize

Número de punteros de filtro opacos a los que apunta el búfer que el parámetro FilterList puede contener. Este parámetro es opcional y puede ser cero. Si FilterListSize es cero en la entrada y filterList es NULL, el parámetro NumberFiltersReturned recibe el número de controladores de minifiltro encontrados.

[out] NumberFiltersReturned

Puntero a una variable asignada por el autor de la llamada que recibe el número de punteros de filtro opaco devueltos en la matriz a la que apunta el parámetro FilterList . Si el valor del parámetro FilterListSize es demasiado pequeño y FilterList no esNULL en la entrada, FltEnumerateFilters devuelve STATUS_BUFFER_TOO_SMALL y establece NumberFiltersReturned para que apunte al número de controladores de minifiltro encontrados. Este parámetro es necesario y no se puede null.

Valor devuelto

FltEnumerateFilters devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:

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

Observaciones

Dado que los filtros se pueden registrar en cualquier momento, no se garantiza que dos llamadas a FltEnumerateFilters devuelvan el mismo resultado.

FltEnumerateFilters agrega una referencia de rundown a cada uno de los punteros de filtro opaco devueltos en la matriz a los que apunta el parámetro FilterList . 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 fltEnumerateFilters debe coincidir con una llamada posterior a FltObjectDereference para cada puntero de filtro devuelto.

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

Para enumerar instancias de todos los controladores de minifiltro en todos los volúmenes, llame a FltEnumerateInstances.

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

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

fltEnumerateInstances

fltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference