Función FltEnumerateVolumes (fltkernel.h)

La rutina FltEnumerateVolumes 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 obligatorio y no puede ser NULL.

[out] VolumeList

Puntero a un búfer asignado por el autor de la llamada que recibe una matriz de punteros de volumen opacos. 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 a los que apunta VolumeList . 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 Apunta VolumeList . Si VolumeListSize es demasiado pequeño y VolumeList no es NULL en la entrada, FltEnumerateVolumes devuelve STATUS_BUFFER_TOO_SMALL y establece NumberVolumesReturned para que apunte al número de volúmenes encontrados. Este parámetro es obligatorio y no puede ser 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 el parámetro VolumeList no es lo suficientemente grande como para almacenar la información solicitada. Se trata de un código de error.

Comentarios

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

Consulte también

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference