Condividi tramite


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
STATUS_BUFFER_TOO_SMALL
Buffer a cui punta il parametro Buffer non è sufficiente per archiviare le informazioni richieste. Si tratta di un codice di errore.
STATUS_FLT_DELETING_OBJECT
È stato trovato un driver minifilter corrispondente, ma viene distrutto. Si tratta di un codice di errore.
STATUS_INVALID_PARAMETER
È 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.
STATUS_NO_MORE_ENTRIES
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).

Nota Poiché i driver di filtro possono registrare in qualsiasi momento, è possibile che due chiamate a FltEnumerateFilterInformation con lo stesso indice non restituiscono lo stesso risultato.
 
Per enumerare tutti i driver minifilter registrati, chiamare FltEnumerateFilters.

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

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList