Condividi tramite


Funzione FltEnumerateInstances (fltkernel.h)

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

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 minifiltro. Se NULL, vengono enumerate le istanze per tutti i volumi. Deve essere non NULL se Filter è NULL.

[in, optional] Filter

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

[out] InstanceList

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

[in] InstanceListSize

Numero di puntatori a istanze opache che il buffer che InstanceList punti da mantenere.

[out] NumberInstancesReturned

Puntatore a una variabile allocata dal chiamante che riceve il numero di puntatori a istanze opache restituite nella matrice a cui InstanceList punta. Se InstanceListSize è troppo piccolo, FltEnumerateInstances restituisce STATUS_BUFFER_TOO_SMALL e imposta NumberInstancesReturned in modo che punti 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
Il buffer a cui punta il parametro InstanceList non è sufficiente per archiviare le informazioni richieste. Si tratta di un codice di errore.
STATUS_INVALID_PARAMETER
volume e filtro non possono essere entrambi NULL. Si tratta di un codice di errore.

Osservazioni

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

FltEnumerateInstances aggiunge un riferimento di rundown a ognuno dei puntatori di istanza opachi 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 confrontata con una chiamata successiva a FltObjectDereference per ogni puntatore di istanza restituito.

Per enumerare tutti i driver minifiltri registrati, chiamare FltEnumerateFilters.

Per enumerare tutti i volumi noti a Gestione filtri, chiamare FltEnumerateVolumes.

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

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

Per enumerare tutte le istanze di un determinato driver minifiltro, chiamare FltEnumerateInstanceInformationByFilter.

Per enumerare tutte le istanze del driver minifiltro in un determinato volume, chiamare FltEnumerateInstanceInformationByVolume.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione fltkernel.h (include Fltkernel.h)
libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedere anche

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference