Función FltEnumerateFilterInformation (fltkernel.h)
La rutina FltEnumerateFilterInformation proporciona información sobre todos los controladores de filtro registrados (incluidos los minifiltros y los controladores de filtro heredados) en el sistema.
Sintaxis
NTSTATUS FLTAPI FltEnumerateFilterInformation(
[in] ULONG Index,
[in] FILTER_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
Parámetros
[in] Index
Índice de base cero del controlador de filtro para el que se solicita la información. Este parámetro identifica el filtro en la lista global de controladores de filtro registrados. Si la lista contiene n controladores de filtro, los valores de índice válidos oscilan entre 0 y n-1. Si el valor index supera este intervalo, FltEnumerateFilterInformation devuelve STATUS_NO_MORE_ENTRIES.
[in] InformationClass
Tipo de información solicitada. Este parámetro puede tener uno de los valores siguientes.
Valor | Significado |
---|---|
FilterFullInformation | El búfer al que apunta el parámetro Buffer recibe una estructura de FILTER_FULL_INFORMATION para el controlador de minifiltro (se omiten los controladores de filtro heredados). |
FilterAggregateBasicInformation | El búfer al que apunta el parámetro Buffer recibe una estructura de FILTER_AGGREGATE_BASIC_INFORMATION para el minifiltro o el controlador de filtro heredado. Este valor informationClass está disponible a partir de Microsoft Windows Server 2003 SP1 y Windows XP SP2 con el paquete acumulativo del administrador de filtros. Para obtener más información sobre el paquete acumulativo del administrador de filtros para Windows XP SP2, consulte el artículo 914882, "El paquete acumulativo del administrador de filtros para Windows XP SP2", en Microsoft Knowledge Base. |
FilterAggregateStandardInformation | El búfer al que apunta el parámetro Buffer recibe una estructura de FILTER_AGGREGATE_STANDARD_INFORMATION para el minifiltro o el controlador de filtro heredado. Este valor informationClass está disponible a partir de Windows Vista. |
[out] Buffer
Puntero a un búfer asignado por el autor de la llamada que recibe la información solicitada. El tipo de la información devuelta en el búfer se define mediante el parámetro InformationClass .
[in] BufferSize
Tamaño, en bytes, del búfer al que apunta el parámetro Buffer . El autor de la llamada debe establecer este parámetro según el valor informationClass especificado.
[out] BytesReturned
Puntero a una variable asignada por el autor de la llamada que recibe el número de bytes devueltos en el búfer al que apunta el búfer . Si el valor de entrada de BufferSize es demasiado pequeño, FltEnumerateFilterInformation devuelve STATUS_BUFFER_TOO_SMALL y establece esta variable en el número de bytes necesarios para almacenar la información solicitada. Este parámetro es obligatorio y no puede ser NULL.
Valor devuelto
FltEnumerateFilterInformation devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
|
El búfer al que apunta el parámetro Buffer no es lo suficientemente grande como para almacenar la información solicitada. Se trata de un código de error. |
|
Se encontró un controlador de minifiltro coincidente, pero se está descomponiéndose. Se trata de un código de error. |
|
Se especificó un valor no válido para el parámetro InformationClass . Por ejemplo, si Se especifica FilterAggregateStandardInformation en sistemas operativos anteriores a Windows Vista, la rutina devolverá STATUS_INVALID_PARAMETER. Se trata de un código de error. |
|
No hay más entradas en la lista global de controladores de filtro registrados. (El valor del parámetro Index es mayor o igual que el número de controladores de filtro). Se trata de un código de advertencia. |
Comentarios
A partir de Microsoft Windows Server 2003 SP1 y Windows XP SP2 con el paquete acumulativo del administrador de filtros, FltEnumerateFilterInformation proporciona información sobre los controladores de filtro del sistema de archivos (también denominados "filtros heredados") así como los controladores de minifiltro. En versiones anteriores de Windows, FltEnumerateFilterInformation solo proporciona información sobre los controladores de minifiltro.
El siguiente pseudocódigo enumera la información de filtro para todos los controladores de filtro registrados.
#define InfoClass FilterAggregateStandardInformation // Assumes Windows Vista or later operating system.
int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
i++;
}
FltEnumerateFilterInformation devuelve información sobre los controladores de filtro registrados, a través del parámetro Buffer , para reducir la distancia desde el sistema de archivos subyacente. Por ejemplo, supongamos que hay n controladores de filtro asociados encima de un sistema de archivos subyacente. Primero se devuelve información sobre el controlador de filtro más alejado del sistema de archivos (con un valor de parámetro Index de 0). La información sobre el controlador de filtro adjunto más lejano se devuelve en segundo lugar (con un valor de parámetro Index de 1), etc. Por último, se devuelve información sobre el controlador de filtro más cercano al sistema de archivos (con un valor de parámetro Index de n-1).
Para enumerar todos los controladores de filtro heredados registrados, llame a IoEnumerateRegisteredFiltersList.
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.
Para enumerar la información del volumen de todos los volúmenes que se conocen en el Administrador de filtros, llame a FltEnumerateVolumeInformation.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya FltKernel.h) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
Consulte también
FILTER_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter