Fonction FilterAttach (fltuser.h)

La fonction FilterAttach attache un nouveau minifiltre instance au volume donné.

Syntaxe

HRESULT FilterAttach(
  [in]            LPCWSTR lpFilterName,
  [in]            LPCWSTR lpVolumeName,
  [in, optional]  LPCWSTR lpInstanceName,
  [in, optional]  DWORD   dwCreatedInstanceNameLength,
  [out, optional] LPWSTR  lpCreatedInstanceName
);

Paramètres

[in] lpFilterName

Pointeur vers une chaîne de caractères larges terminée par null contenant le nom du minifiltre pour lequel une instance doit être créée. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] lpVolumeName

Pointeur vers une chaîne de caractères larges terminée par null contenant le nom du volume auquel le instance nouvellement créé doit être attaché.

La chaîne d’entrée lpVolumeName peut être l’une des suivantes. La barre oblique inverse de fin (\) est facultative.

  • Lettre de lecteur, telle que « D :\ »
  • Chemin d’accès à un point de montage de volume, tel que « c :\mnt\edrive »
  • Identificateur de volume unique (également appelé nom GUID de volume), tel que « \ ? » \Volume{7603f260-142a-11d4-ac67-806d6172696f}\
  • Nom d’appareil non persistant (également appelé nom de cible ou nom d’appareil NT), tel que « \Device\HarddiskVolume1 »
Le paramètre lpVolumeName est obligatoire et ne peut pas avoir la valeur NULL.

[in, optional] lpInstanceName

Pointeur vers une chaîne de caractères larges terminée par null contenant le nom instance de la nouvelle instance. Ce paramètre est facultatif et peut être NULL. Si ce paramètre a la valeur NULL, le nouveau instance reçoit le nom de instance par défaut du minifiltre, comme décrit dans la section Remarques pour FltAttachVolume.

[in, optional] dwCreatedInstanceNameLength

Longueur, en octets, de la mémoire tampon vers laquelle lpCreatedInstanceName pointe. Ce paramètre est facultatif et peut être égal à zéro.

[out, optional] lpCreatedInstanceName

Pointeur vers une variable allouée par l’appelant qui reçoit le nom instance pour la nouvelle instance si le instance est correctement attaché au volume. Ce paramètre est facultatif et peut être NULL. S’il n’est pas NULL, la mémoire tampon doit être suffisamment grande pour contenir INSTANCE_NAME_MAX_CHARS caractères plus une terminaison NULL.

Valeur retournée

FilterAttach retourne S_OK en cas de réussite. Sinon, il retourne une valeur d’erreur telle que l’une des valeurs suivantes.

Code de retour Description
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
Un instance existe déjà à cette altitude sur le volume spécifié.
ERROR_FLT_INSTANCE_NAME_COLLISION
Un instance existe déjà avec ce nom sur le volume spécifié.
ERROR_FILE_NOT_FOUND
Si lpInstanceName n’a pas la valeur NULL, lpInstanceName ne correspond pas à un filtre inscrit instance nom dans le Registre.

Remarques

FilterAttach est l’équivalent Win32 de FltAttachVolume.

Le nom instance spécifié dans lpInstanceName doit être unique dans le système.

Pour attacher un minifiltre instance à un volume à une altitude donnée, appelez FilterAttachAtAltitude.

Pour détacher un minifiltre instance d’un volume, appelez FilterDetach.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltuser.h (inclure Fltuser.h)
Bibliothèque FltLib.lib
DLL FltLib.dll

Voir aussi

FilterAttachAtAltitude

FilterDetach

FltAttachVolume