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 |
---|---|
|
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 |