Funzione FltAttachVolume (fltkernel.h)
FltAttachVolume crea una nuova istanza del driver minifilter e la collega al volume specificato.
Sintassi
NTSTATUS FLTAPI FltAttachVolume(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in, optional] PCUNICODE_STRING InstanceName,
[out] PFLT_INSTANCE *RetInstance
);
Parametri
[in, out] Filter
Puntatore di filtro opaco per il chiamante. Questo parametro è obbligatorio e non può essere NULL.
[in, out] Volume
Puntatore al volume opaco per il volume a cui deve essere associata l'istanza del driver minifilter. Questo parametro è obbligatorio e non può essere NULL.
[in, optional] InstanceName
Puntatore a una struttura UNICODE_STRING contenente il nome dell'istanza per la nuova istanza. Questo parametro è facoltativo e può essere NULL. Se è NULL, FltAttachVolume tenta di leggere il nome predefinito del driver minifilter dal Registro di sistema. Per altre informazioni su questo parametro, vedere la sezione Osservazioni seguenti.
[out] RetInstance
Puntatore a una variabile allocata dal chiamante che riceve un puntatore istanza opaca per l'istanza appena creata. Questo parametro è facoltativo e può essere NULL.
Valore restituito
FltAttachVolume restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:
Codice restituito | Descrizione |
---|---|
|
Il filtro o il volume specificato viene eliminato. Si tratta di un codice di errore. |
|
Il driver minifilter non ha avviato il filtro. Per altre informazioni, vedere FltStartFiltering. Si tratta di un codice di errore. |
|
Esiste già un'istanza con questo nome nel volume specificato. |
|
FltAttachVolume ha rilevato un errore di allocazione del pool. Si tratta di un codice di errore. |
|
Un'altra istanza è già stata collegata all'altitudine specificata negli attributi dell'istanza letti dal Registro di sistema. Si tratta di un codice di errore. |
Commenti
Se il chiamante specifica un valore non NULL per InstanceName, FltAttachVolume legge qualsiasi attributo di istanza specificato dal driver minifilter archiviato nel Registro di sistema in HKLM\CurrentControlSet\Services\ServiceName\Instance\InstanceName, dove ServiceName è il nome del servizio del driver minifilter. Questo nome del servizio viene specificato nella direttiva AddService nella sezione DefaultInstall.Services del file INF del driver minifilter. Per altre informazioni sui file INF del driver di filtro, vedere Installazione di un driver di filtro file system.
Se il chiamante non specifica un valore per InstanceName, FltAttachVolume usa il nome archiviato nel Registro di sistema in HKLM\CurrentControlSet\Services\ServiceName\Instance\DefaultInstance per la parte InstanceName del percorso del Registro di sistema.
Il nome dell'istanza specificato nel parametro InstanceName deve essere univoco nel sistema.
FltAttachVolume restituisce un puntatore di istanza opaco per la nuova istanza in *RetInstance. Questo valore del puntatore identifica in modo univoco l'istanza del driver minifilter e rimane costante finché l'istanza è associata al volume.
FltAttachVolume aggiunge un riferimento di rundown al puntatore dell'istanza opaca restituito in *RetInstance. Quando questo puntatore non è più necessario, il chiamante deve rilasciarlo chiamando FltObjectDereference. Pertanto, ogni chiamata riuscita a FltAttachVolume deve essere corrispondente a una chiamata successiva a FltObjectDereference.
Per collegare un'istanza del driver minifilter a un volume a una determinata altitudine, chiamare FltAttachVolumeAtAltitude.
Per confrontare le altitudini di due istanze del driver minifilter associate allo stesso volume, chiamare FltCompareInstanceAltitudes.
Per scollegare un'istanza del driver minifilter da un volume, chiamare FltDetachVolume.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (includere Fltkernel.h) |
Libreria | FltMgr.lib |
IRQL | PASSIVE_LEVEL |