Funzione FltEnumerateInstances (fltkernel.h)

La routine FltEnumerateInstances enumera le istanze del driver minifilter per un determinato driver minifilter o volume.

Sintassi

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

Parametri

[in, optional] Volume

Puntatore opaco per il volume per il quale il chiamante vuole enumerare le istanze del driver minifilter. Se NULL, le istanze per tutti i volumi vengono enumerate. Deve essere diverso da NULL se Filter è NULL.

[in, optional] Filter

Puntatore di filtro opaco per il driver minifilter le cui istanze devono essere enumerate. Se NULL, le istanze per tutti i driver minifilter vengono enumerate. Deve essere diverso da NULL se volume è NULL.

[out] InstanceList

Puntatore a un buffer allocato dal chiamante che riceve una matrice di puntatori di istanze opache.

[in] InstanceListSize

Numero di puntatori di istanza opachi che il buffer che InstanceList punta a può contenere.

[out] NumberInstancesReturned

Puntatore a una variabile allocata dal chiamante che riceve il numero di puntatori dell'istanza opaca restituiti nella matrice a cui si punta InstanceList . Se InstanceListSize è troppo piccolo, FltEnumerateInstances restituisce STATUS_BUFFER_TOO_SMALL e imposta NumberInstancesReturned per puntare al numero di istanze corrispondenti trovate.

Valore restituito

FltEnumerateInstances restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_BUFFER_TOO_SMALL
Buffer a cui punta il parametro InstanceList non è sufficiente per archiviare le informazioni richieste. Si tratta di un codice di errore.
STATUS_INVALID_PARAMETER
Il volume e il filtro non possono essere NULL. Si tratta di un codice di errore.

Commenti

Poiché le istanze del driver minifilter nell'elenco di istanze possono cambiare in qualsiasi momento, due chiamate a FltEnumerateInstances con gli stessi valori volume e filtro non sono garantiti per restituire lo stesso risultato.

FltEnumerateInstances aggiunge un riferimento a rundown a ognuno dei puntatori dell'istanza opaca restituiti nella matrice a cui punta il parametro InstanceList . Quando questi puntatori non sono più necessari, il chiamante deve rilasciarli chiamando FltObjectDereference su ognuno di essi. Pertanto ogni chiamata riuscita a FltEnumerateInstances deve essere corrispondente a una chiamata successiva a FltObjectDereference per ogni puntatore dell'istanza restituita.

Per enumerare tutti i driver minifilter registrati, chiamare FltEnumerateFilters.

Per enumerare tutti i volumi noti a Filter Manager, chiamare FltEnumerateVolumes.

Per elencare le informazioni sui filtri per tutti i driver minifilter registrati, chiamare FltEnumerateFilterInformation.

Per ottenere informazioni sul filtro per un determinato driver minifilter, chiamare FltGetFilterInformation.

Per enumerare tutte le istanze di un determinato driver minifilter, chiamare FltEnumerateInstanceInstanceInformationByFilter.

Per enumerare tutte le istanze del driver minifilter in un determinato volume, chiamare FltEnumerateInstanceInstanceInformationByVolume.

Requisiti

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

Vedi anche

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference