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 |
---|---|
|
Il buffer a cui punta il parametro InstanceList non è sufficiente per archiviare le informazioni richieste. Si tratta di un codice di errore. |
|
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
FltEnumerateInstanceInformationByFilter