Funzione FltEnumerateVolumes (fltkernel.h)

La routine FltEnumerateVolumes enumera tutti i volumi nel sistema.

Sintassi

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

Parametri

[in] Filter

Puntatore di filtro opaco per il chiamante. Questo parametro è obbligatorio e non può essere NULL.

[out] VolumeList

Puntatore a un buffer allocato dal chiamante che riceve una matrice di puntatori al volume opaco. Questo parametro è facoltativo e può essere NULL se VolumeListSize è zero. Se VolumeListSize è zero nell'input e VolumeList è NULL, NumberVolumesReturned riceve il numero di volumi trovati.

[in] VolumeListSize

Numero di puntatori di filtro opachi che il buffer che VolumeList punta a può contenere. Questo parametro è facoltativo e può essere zero. Se VolumeListSize è zero nell'input e VolumeList è NULL, NumberVolumesReturned riceve il numero di volumi trovati.

[out] NumberVolumesReturned

Puntatore a una variabile allocata dal chiamante che riceve il numero di puntatori al volume opaco restituiti nella matrice a cui Punta VolumeList . Se VolumeListSize è troppo piccolo e VolumeList non è NULL nell'input, FltEnumerateVolumes restituisce STATUS_BUFFER_TOO_SMALL e imposta NumberVolumesReturned in modo che punti al numero di volumi trovati. Questo parametro è obbligatorio e non può essere NULL.

Valore restituito

FltEnumerateVolumes restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:

Codice restituito Descrizione
STATUS_BUFFER_TOO_SMALL
Il buffer a cui punta il parametro VolumeList non è sufficientemente grande da archiviare le informazioni richieste. Si tratta di un codice di errore.

Commenti

Poiché il contenuto dell'elenco di volumi del gestore filtri può cambiare in qualsiasi momento, non è garantito che due chiamate a FltEnumerateVolumes restituiscano lo stesso risultato.

FltEnumerateVolumes aggiunge un riferimento rundown a ognuno dei puntatori di volume opachi restituiti nella matrice a cui Punta VolumeList . Quando questi puntatori non sono più necessari, il chiamante deve rilasciarli chiamando FltObjectDereference su ognuno di essi. Ogni chiamata riuscita a FltEnumerateVolumes deve quindi corrispondere a una chiamata successiva a FltObjectDereference per ogni puntatore al volume restituito.

Per convertire uno o più puntatori di volume opachi restituiti dal parametro VolumeList in informazioni sul volume, chiamare FltGetVolumeInformation.

Per elencare le informazioni sul volume per tutti i volumi noti al gestore filtri, chiama FltEnumerateVolumeInformation.

Per enumerare tutti i driver minifilter registrati, chiamare FltEnumerateFilters.

Per enumerare tutte le istanze del driver minifilter, chiamare FltEnumerateInstances.

Per enumerare tutte le istanze del driver minifilter in un determinato volume, chiama FltEnumerateInstanceInformationByVolume.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include FltKernel.h)
Libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedi anche

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference