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 del parámetro FilterListSize 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 parámetro FilterList . 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 es NULL 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 obligatorio y no puede ser 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.

Comentarios

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 la 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 de ellos. 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 Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

Consulte también

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference