Partager via


PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK fonction de rappel (fltkernel.h)

Un pilote minifilter peut inscrire une routine de type PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK en tant que routine InstanceQueryTeardownCallback du pilote minifilter.

Syntaxe

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;

NTSTATUS PfltInstanceQueryTeardownCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}

Paramètres

[in] FltObjects

Pointeur vers une structure FLT_RELATED_OBJECTS qui contient des pointeurs opaques pour les objets liés à l’opération en cours.

[in] Flags

Masque de bits des indicateurs qui décrivent la raison pour laquelle la routine de rappel de suppression de requête instance donnée a été appelée. Aucun indicateur n’est actuellement défini.

Valeur retournée

Cette routine de rappel retourne STATUS_SUCCESS ou une valeur NTSTATUS telle que l’une des valeurs suivantes :

Code de retour Description
STATUS_FLT_DO_NOT_DETACH
Le renvoi de cette valeur status empêche le détachement de la instance du pilote minifilter. Il s’agit d’un code d’erreur.

Remarques

Lorsqu’un pilote minifilter s’inscrit lui-même en appelant FltRegisterFilter à partir de sa routine DriverEntry , il peut inscrire une routine de type PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK en tant que routine InstanceQueryTeardownCallback du pilote minifilter.

Pour inscrire la routine InstanceQueryTeardownCallback , le pilote minifilter stocke l’adresse d’une routine de type PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK dans le membre InstanceQueryTeardownCallback de la structure FLT_REGISTRATION que le pilote minifilter transmet en tant que paramètre Registration de FltRegisterFilter.

Le gestionnaire de filtres appelle cette routine pour permettre au pilote minifilter de répondre à une demande de détachement manuelle. Une telle demande est reçue lorsqu’une application en mode utilisateur appelle FilterDetach ou qu’un composant en mode noyau appelle FltDetachVolume.

Cette routine n’est pas appelée pour les demandes de détachement automatiques ou obligatoires, par exemple lorsque le pilote minifilter est déchargé ou qu’un volume est démonté.

Si cette routine retourne un code NTSTATUS d’erreur ou d’avertissement, tel que STATUS_FLT_DO_NOT_DETACH, le instance du pilote minifilter n’est pas détaché du volume. Sinon, le instance est détaché.

Si un pilote minifilter ne définit pas de routine InstanceQueryTeardownCallback , ses instances ne peuvent pas être détachées manuellement en appelant FilterDetach ou FltDetachVolume.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête fltkernel.h (inclure Fltkernel.h)
IRQL PASSIVE_LEVEL

Voir aussi

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK