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\"
Questo parametro è obbligatorio e non può essere NULL.

[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
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
Un'istanza esiste già in questa altitudine nel volume specificato.
ERROR_FLT_INSTANCE_NAME_COLLISION
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

Vedi anche

FilterAttach

FilterDetach

FltAttachVolumeAtAltitude