Compartir a través de


Función FltEnumerateVolumes (fltkernel.h)

El FltEnumerateVolumes rutina enumera todos los volúmenes del sistema.

Sintaxis

NTSTATUS FLTAPI FltEnumerateVolumes(
  [in]  PFLT_FILTER Filter,
  [out] PFLT_VOLUME *VolumeList,
  [in]  ULONG       VolumeListSize,
  [out] PULONG      NumberVolumesReturned
);

Parámetros

[in] Filter

Puntero de filtro opaco para el autor de la llamada. Este parámetro es necesario y no se puede null.

[out] VolumeList

Puntero a un búfer asignado por el autor de la llamada que recibe una matriz de punteros de volumen opaco. Este parámetro es opcional y puede ser NULL si VolumeListSize es cero. Si VolumeListSize es cero en la entrada y volumeList es NULL, NumberVolumesReturned recibe el número de volúmenes encontrados.

[in] VolumeListSize

Número de punteros de filtro opacos que el búfer que VolumeList apunta a puede contener. Este parámetro es opcional y puede ser cero. Si VolumeListSize es cero en la entrada y volumeList es NULL, NumberVolumesReturned recibe el número de volúmenes encontrados.

[out] NumberVolumesReturned

Puntero a una variable asignada por el autor de la llamada que recibe el número de punteros de volumen opaco devueltos en la matriz a la que VolumeList apunta. Si el VolumeListSize de es demasiado pequeño y VolumeList no esNULL en la entrada, FltEnumerateVolumes devuelve STATUS_BUFFER_TOO_SMALL y establece NumberVolumesReturned apuntar al número de volúmenes encontrados. Este parámetro es necesario y no se puede null.

Valor devuelto

FltEnumerateVolumes 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 volumeList parámetro no es lo suficientemente grande como para almacenar la información solicitada. Se trata de un código de error.

Observaciones

Dado que el contenido de la lista de volúmenes del administrador de filtros puede cambiar en cualquier momento, no se garantiza que dos llamadas a FltEnumerateVolumes devuelvan el mismo resultado.

FltEnumerateVolumes agrega una referencia de rundown a cada uno de los punteros de volumen opaco devueltos en la matriz a la que apunta VolumeList . 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 FltEnumerateVolumes debe coincidir con una llamada posterior a FltObjectDereference para cada puntero de volumen devuelto.

Para convertir uno o varios punteros de volumen opacos devueltos por el parámetro VolumeList en información de volumen, llame a FltGetVolumeInformation.

Para enumerar la información del volumen de todos los volúmenes conocidos para el administrador de filtros, llame a FltEnumerateVolumeInformation.

Para enumerar todos los controladores de minifiltro registrados, llame a FltEnumerateFilters.

Para enumerar todas las instancias del controlador de minifiltro, llame a FltEnumerateInstances.

Para enumerar todas las instancias del controlador de minifiltro en un volumen determinado, llame a FltEnumerateInstanceInformationByVolume.

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

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

fltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference