Funzione FltEnumerateInstanceInformationByVolume (fltkernel.h)

La routine FltEnumerateInstanceInformationByVolume fornisce informazioni sulle istanze del driver minifilter e sui driver di filtro legacy (solo Windows Vista) collegati a un determinato volume.

Sintassi

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Parametri

[in] Volume

Puntatore opaco per il volume.

[in] Index

Indice in base zero dell'istanza del driver minifilter o del driver di filtro legacy per cui vengono richieste le informazioni.

[in] InformationClass

Tipo di informazioni da restituire per l'istanza del driver minifilter o il driver di filtro legacy. Questo parametro può avere uno dei valori seguenti.

Valore Significato
InstanceBasicInformation Il buffer a cui punta il parametro Buffer riceve una struttura INSTANCE_BASIC_INFORMATION per un'istanza di minifilter. I driver di filtro legacy vengono ignorati.
InstanceFullInformation Il buffer a cui punta il parametro Buffer riceve una struttura INSTANCE_FULL_INFORMATION per un'istanza di minifilter. I driver di filtro legacy vengono ignorati.
InstancePartialInformation Il buffer a cui punta il parametro Buffer riceve una struttura INSTANCE_PARTIAL_INFORMATION per un'istanza di minifilter. I driver di filtro legacy vengono ignorati.
InstanceAggregateStandardInformation Il buffer a cui punta il parametro Buffer riceve una struttura INSTANCE_AGGREGATE_STANDARD_INFORMATION per un'istanza del driver minifilter o un driver di filtro legacy. Questa struttura è 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, FltEnumerateInstanceInformationByVolume 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

FltEnumerateInstanceInformationByVolume 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 Buffer non è sufficientemente grande per archiviare le informazioni richieste. Si tratta di un codice di errore.
STATUS_FLT_DELETING_OBJECT
È stata trovata un'istanza di minifilter corrispondente, ma viene interrotta. Si tratta di un codice di errore. Si noti che questo valore restituito non si applica ai driver di filtro legacy perché non è possibile scaricare i driver di filtro legacy.
STATUS_INVALID_PARAMETER
È stato specificato un valore non valido per il parametro InformationClass . Ad esempio, se InstanceAggregateStandardInformation viene specificato in un sistema operativo prima di Windows Vista, la routine restituirà STATUS_INVALID_PARAMETER. Si tratta di un codice di errore.
STATUS_NO_MORE_ENTRIES
Non sono presenti altre voci nell'elenco di istanze/filtri del volume. Si tratta di un codice di avviso.

Commenti

L'uso del parametro Index è semplicemente un modo per FltEnumerateInstanceInformationByVolume di selezionare tra le istanze del driver minifilter e i driver di filtro legacy nell'elenco di istanze/filtro per il volume specificato da Volume. Poiché le istanze del driver minifilter nell'elenco di istanze/filtro possono cambiare in qualsiasi momento, non è garantito che vengano restituite lo stesso risultato due chiamate a FltEnumerateInstanceInformationByVolume con gli stessi valori index e volume .

A partire da Windows Vista, questa routine può restituire sia informazioni sul driver di filtro legacy che informazioni sull'istanza del driver minifilter quando il valore del parametro InformationClass è InstanceAggregateStandardInformation. Per i sistemi operativi precedenti, questa routine non può restituire informazioni sul filtro legacy perché la struttura INSTANCE_AGGREGATE_STANDARD_INFORMATION non è disponibile.

Per elencare le informazioni di filtro per tutti i driver minifilter registrati, chiama FltEnumerateFilterInformation.

Per ottenere informazioni sul filtro per un determinato driver minifilter, chiama FltGetFilterInformation.

Per enumerare tutte le istanze di un determinato driver minifilter, chiama FltEnumerateInstanceInformationByFilter.

Per enumerare le istanze di tutti i driver minifilter in tutti i volumi, chiamare FltEnumerateInstances.

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

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include FltKernel.h)
Libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedi anche

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION