Funzione FilterAttachAtAltitude (fltuser.h)
La funzione FilterAttachAtAltitude è una funzione di supporto di debug che collega una nuova istanza di minifilter a un volume a un'altitudine specificata, eseguendo l'override di tutte le impostazioni nel file DIF (Setup Information) del minifilter.
Sintassi
HRESULT FilterAttachAtAltitude(
[in] LPCWSTR lpFilterName,
[in] LPCWSTR lpVolumeName,
[in] LPCWSTR lpAltitude,
[in, optional] LPCWSTR lpInstanceName,
[in, optional] DWORD dwCreatedInstanceNameLength,
[out, optional] LPWSTR lpCreatedInstanceName
);
Parametri
[in] lpFilterName
Puntatore a una stringa di caratteri wide-carattere con terminazione null contenente il nome del minifilter per cui verrà creata un'istanza. Questo parametro è obbligatorio e non può essere NULL.
[in] lpVolumeName
Puntatore a una stringa di caratteri wide-carattere con terminazione null contenente il nome del volume a cui deve essere associata l'istanza appena creata.
La stringa di input lpVolumeName può essere una delle seguenti. La barra rovesciata finale (\) è facoltativa.
- Lettera di unità, ad esempio "D:\"
- Percorso di un punto di montaggio del volume, ad esempio "c:\mnt\edrive\"
- Identificatore di volume univoco (denominato anche nome GUID del volume), ad esempio "\?? \Volume{7603f260-142a-11d4-ac67-806d6172696f}\"
- Nome del dispositivo nonpersistent (chiamato anche nome di destinazione o nome di dispositivo NT), ad esempio "\Device\HarddiskVolume1\"
[in] lpAltitude
Puntatore a una stringa di caratteri wide-character con terminazione null contenente un valore numerico che specifica la posizione di destinazione che l'istanza del minifilter deve occupare nello stack per il volume. Maggiore è il numero, maggiore è la posizione relativa nello stack. Una stringa di altitudine è costituita da una o più cifre nell'intervallo compreso tra 0 e 9 e può includere un singolo punto decimale. Il punto decimale è facoltativo. Ad esempio, "100.123456" è una stringa di altitudine valida. Questo parametro è obbligatorio e non può essere NULL.
[in, optional] lpInstanceName
Puntatore a una stringa di caratteri wide-character con terminazione null contenente il nome dell'istanza per la nuova istanza. Questo parametro è facoltativo e può essere NULL. Se questo parametro è NULL, la nuova istanza riceve il nome predefinito dell'istanza del minifilter come descritto nella sezione Osservazioni per FltAttachVolume.
[in, optional] dwCreatedInstanceNameLength
Lunghezza, in byte, del buffer a cui punta lpCreatedInstanceName . Questo parametro è facoltativo e può essere zero.
[out, optional] lpCreatedInstanceName
Puntatore a una variabile allocata dal chiamante che riceve il nome dell'istanza per la nuova istanza se l'istanza è collegata correttamente al volume. Questo parametro è facoltativo e può essere NULL. Se non è NULL, il buffer deve essere abbastanza grande per contenere INSTANCE_NAME_MAX_CHARS caratteri e un terminatore NULL.
Valore restituito
FilterAttachAtAltitude restituisce S_OK se riuscito. In caso contrario, restituisce un valore di errore, ad esempio uno dei seguenti.
Codice restituito | Descrizione |
---|---|
|
Un'istanza esiste già in questa altitudine nel volume specificato. |
|
Esiste già un'istanza con questo nome nel volume specificato. |
Commenti
Un'applicazione deve usare solo FilterAttachAtAltitude per il debug. Non deve chiamare questa funzione in una versione retail dell'applicazione.
FilterAttachAtAltitude è l'equivalente Win32 di FltAttachVolumeAtAltitude.
Il termine "altitudine" fa riferimento alla posizione occupata da un'istanza (o deve occupare) nello stack di istanze minifilter per un volume. Maggiore è l'altitudine, più lontano l'istanza è dal file system di base nello stack. È possibile collegare un'unica istanza a una determinata altitudine in un determinato volume.
L'altitudine è specificata da una stringa di altitudine, che è una matrice di caratteri wide contenente una o più cifre decimali nell'intervallo compreso tra 0 e 9 e può includere un singolo punto decimale. Il punto decimale è facoltativo. Ad esempio, "100.123456" e "03333" sono stringhe di altitudine valide.
La stringa "03333" rappresenta un'altitudine superiore a "100.123456". I valori iniziali e finali vengono ignorati. In altre parole, un'istanza la cui altitudine è "03333" è più lontana dal file system di base rispetto a un'istanza la cui altitudine è "100.123456". Tuttavia, questo confronto è significativo solo se entrambe le istanze sono associate allo stesso volume.
Il nome dell'istanza restituito in lpCreatedInstanceName è univoco nel sistema.
Per scollegare un'istanza di minifilter da un volume, chiamare FilterDetach.
Requisiti
Piattaforma di destinazione | Universale |
Intestazione | fltuser.h (include Fltuser.h) |
Libreria | FltLib.lib |
DLL | FltLib.dll |