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