Función FltEnumerateInstances (fltkernel.h)
La rutina FltEnumerateInstances enumera las instancias del controlador de minifiltro para un determinado controlador o volumen de minifiltro.
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 es NULL, se enumeran las instancias de todos los volúmenes. Debe ser distinto de NULL si Filter es NULL.
[in, optional] Filter
Puntero de filtro opaco para el controlador de minifiltro cuyas instancias se van a enumerar. Si es NULL, se enumeran las instancias de todos los controladores de minifiltro. Debe ser distinto de NULL si Volume 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 apunta InstanceList .
[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 Apunta InstanceList . Si InstanceListSize es demasiado pequeño, FltEnumerateInstances devuelve STATUS_BUFFER_TOO_SMALL y establece NumberInstancesReturned para que apunte 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 |
---|---|
|
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. |
|
El volumen y el filtro no pueden ser NULL. Se trata de un código de error. |
Comentarios
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 FltEnumerateInstances con los mismos valores volume y Filter 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 de ellos. Por lo tanto, cada llamada correcta a FltEnumerateInstances debe coincidir con una llamada posterior a FltObjectDereference para cada puntero de instancia devuelta.
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 | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
Consulte también
FltEnumerateInstanceInformationByFilter