FltAttachVolume, fonction (fltkernel.h)
FltAttachVolume crée une instance de pilote minifilter et l’attache au volume donné.
Syntaxe
NTSTATUS FLTAPI FltAttachVolume(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in, optional] PCUNICODE_STRING InstanceName,
[out] PFLT_INSTANCE *RetInstance
);
Paramètres
[in, out] Filter
Pointeur de filtre opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.
[in, out] Volume
Pointeur de volume opaque pour le volume auquel l’instance de pilote minifilter doit être attachée. Ce paramètre est obligatoire et ne peut pas être NULL.
[in, optional] InstanceName
Pointeur vers une structure UNICODE_STRING contenant le nom de l’instance pour la nouvelle instance. Ce paramètre est facultatif et peut être NULL. S’il s’agit NULL, FltAttachVolume tente de lire le nom d’instance par défaut du pilote minifilter à partir du Registre. (Pour plus d’informations sur ce paramètre, consultez la section Remarques suivante.)
[out] RetInstance
Pointeur vers une variable allouée par l’appelant qui reçoit un pointeur d’instance opaque pour l’instance nouvellement créée. Ce paramètre est facultatif et peut être NULL.
Valeur de retour
FltAttachVolume retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :
Remarques
Si l’appelant spécifie une valeurNULL non pour Nom_instance, FltAttachVolume lit tous les attributs d’instance spécifiés par le pilote minifilter stockés dans le Registre sous HKLM\CurrentControlSet\Services\ServiceName\Instances\InstanceName, où ServiceName est le nom du service du pilote minifilter. Ce nom de service est spécifié dans la directive AddService dans la section DefaultInstall.Services du fichier INF du pilote minifilter. (Pour plus d’informations sur les fichiers INF du pilote de filtre, consultez Installation d’un pilote de filtre de système de fichiers.)
Si l’appelant ne spécifie pas de valeur pour nom_instance, FltAttachVolume utilise le nom stocké dans le registre sous HKLM\CurrentControlSet\Services\ServiceName\Instances\DefaultInstance pour la partie Nom_instance du chemin d’accès au Registre.
Le nom d’instance spécifié dans le paramètre InstanceName doit être unique dans le système.
FltAttachVolume retourne un pointeur d’instance opaque pour la nouvelle instance dans *RetInstance. Cette valeur de pointeur identifie de manière unique l’instance du pilote minifilter et reste constante tant que l’instance est attachée au volume.
FltAttachVolume ajoute une référence d’exécution au pointeur d’instance opaque retourné dans *RetInstance. Lorsque ce pointeur n’est plus nécessaire, l’appelant doit le libérer en appelant FltObjectDereference. Ainsi, chaque appel réussi à FltAttachVolume doit être mis en correspondance par un appel ultérieur à FltObjectDereference.
Pour attacher une instance de pilote minifilter à un volume à une altitude donnée, appelez FltAttachVolumeAtAltitude.
Pour comparer les altitudes de deux instances de pilote minifilter attachées au même volume, appelez FltCompareInstanceAltitudes.
Pour détacher une instance de pilote minifilter d’un volume, appelez FltDetachVolume.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | FltMgr.lib |
IRQL | PASSIVE_LEVEL |