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