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