Funzione FltEnumerateFilterInformation (fltkernel.h)
La routine FltEnumerateFilterInformation fornisce informazioni su tutti i driver di filtro registrati (inclusi i driver di filtro minifilter e legacy) nel sistema.
Sintassi
NTSTATUS FLTAPI FltEnumerateFilterInformation(
[in] ULONG Index,
[in] FILTER_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
Parametri
[in] Index
Indice in base zero del driver di filtro per il quale sono richieste le informazioni. Questo parametro identifica il filtro nell'elenco globale dei driver di filtro registrati. Se l'elenco contiene n driver di filtro, i valori di indice validi sono compresi tra 0 e n-1. Se il valore index supera questo intervallo, FltEnumerateFilterInformation restituisce STATUS_NO_MORE_ENTRIES.
[in] InformationClass
Tipo di informazioni richieste. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
FilterFullInformation | Il buffer a cui punta il parametro Buffer riceve una struttura FILTER_FULL_INFORMATION per il driver minifilter (i driver di filtro legacy vengono ignorati). |
FilterAggregateBasicInformation | Il buffer a cui punta il parametro Buffer riceve una struttura FILTER_AGGREGATE_BASIC_INFORMATION per il driver di filtro minifilter o legacy. Questo valore InformationClass è disponibile a partire da Microsoft Windows Server 2003 SP1 e Windows XP SP2 con rollup di Gestione filtri. Per altre informazioni sul pacchetto cumulativo di Gestione filtri per Windows XP SP2, vedere l'articolo 914882, "Il pacchetto cumulativo di Gestione filtri per Windows XP SP2", nella Microsoft Knowledge Base. |
FilterAggregateStandardInformation | Il buffer a cui punta il parametro Buffer riceve una struttura FILTER_AGGREGATE_STANDARD_INFORMATION per il driver di filtro minifilter o legacy. Questo valore InformationClass è disponibile a partire da Windows Vista. |
[out] Buffer
Puntatore a un buffer allocato dal chiamante che riceve le informazioni richieste. Il tipo delle informazioni restituite nel buffer è definito dal parametro InformationClass .
[in] BufferSize
Dimensioni, in byte, del buffer a cui punta il parametro Buffer . Il chiamante deve impostare questo parametro in base al valore InformationClass specificato.
[out] BytesReturned
Puntatore a una variabile allocata dal chiamante che riceve il numero di byte restituiti nel buffer a cui punta Buffer . Se il valore di input di BufferSize è troppo piccolo, FltEnumerateFilterInformation restituisce STATUS_BUFFER_TOO_SMALL e imposta questa variabile sul numero di byte necessari per archiviare le informazioni richieste. Questo parametro è obbligatorio e non può essere NULL.
Valore restituito
FltEnumerateFilterInformation restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:
Codice restituito | Descrizione |
---|---|
|
Buffer a cui punta il parametro Buffer non è sufficiente per archiviare le informazioni richieste. Si tratta di un codice di errore. |
|
È stato trovato un driver minifilter corrispondente, ma viene distrutto. Si tratta di un codice di errore. |
|
È stato specificato un valore non valido per il parametro InformationClass . Ad esempio, se FilterAggregateStandardInformation viene specificato nei sistemi operativi prima di Windows Vista, la routine restituirà STATUS_INVALID_PARAMETER. Si tratta di un codice di errore. |
|
Non sono presenti più voci nell'elenco globale dei driver di filtro registrati. Il valore del parametro Index è maggiore o uguale al numero di driver di filtro. Si tratta di un codice di avviso. |
Commenti
A partire da Microsoft Windows Server 2003 SP1 e Windows XP SP2 con rollup della gestione filtri, FltEnumerateFilterInformation fornisce informazioni sui driver di filtro del file system (detti anche "filtri legacy") e sui driver minifilter. Nelle versioni precedenti di Windows, FltEnumerateFilterInformation fornisce solo informazioni sui driver minifilter.
Il codice pseudoco seguente enumera le informazioni sui filtri per tutti i driver di filtro registrati.
#define InfoClass FilterAggregateStandardInformation // Assumes Windows Vista or later operating system.
int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
i++;
}
FltEnumerateFilterInformation restituisce informazioni sui driver di filtro registrati, tramite il parametro Buffer , in ordine di riduzione della distanza dal file system sottostante. Si supponga, ad esempio, che siano presenti n driver di filtro collegati sopra un file system sottostante. Le informazioni sul driver di filtro collegato più lontano dal file system vengono restituite prima (con un valore di parametro Index pari a 0). Le informazioni sul driver di filtro collegato successivo vengono restituite seconde (con un valore di parametro Index pari a 1) e così via. Infine, le informazioni sul driver di filtro più vicino al file system vengono restituite l'ultima (con un valore del parametro Index di n-1).
Per enumerare tutti i driver di filtro legacy registrati, chiamare IoEnumerateRegisteredFiltersList.
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.
Per elencare le informazioni sul volume per tutti i volumi noti a Filter Manager, chiamare FltEnumerateVolumeInformation.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (include FltKernel.h) |
Libreria | FltMgr.lib |
IRQL | <= APC_LEVEL |
Vedi anche
FILTER_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter