PFLT_FILTER_UNLOAD_CALLBACK fonction de rappel (fltkernel.h)

Un pilote de minifiltre peut inscrire une routine de type PFLT_FILTER_UNLOAD_CALLBACK comme routine FilterUnloadCallback du pilote minifiltre.

Syntaxe

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

Paramètres

Flags

Masque de bits d’indicateurs décrivant la demande de déchargement. Ce paramètre peut avoir la valeur NULL ou les éléments suivants :

Indicateur Signification
FLTFL_FILTER_UNLOAD_MANDATORY Le gestionnaire de filtres définit cet indicateur pour indiquer que l’opération de déchargement est obligatoire.

Valeur retournée

Cette routine de rappel retourne STATUS_SUCCESS ou une valeur NTSTATUS telle que :

Code de retour Description
STATUS_FLT_DO_NOT_DETACH Si l’opération de déchargement n’est pas obligatoire, le renvoi de cette valeur status empêche le déchargement du pilote de minifiltre. Il s’agit d’un code d’erreur.

Remarques

Lorsqu’un pilote de minifiltre s’inscrit lui-même en appelant FltRegisterFilter, il peut inscrire une routine FilterUnloadCallback . Pour inscrire cette routine de rappel, le pilote de minifiltre stocke l’adresse d’une routine de type PFLT_FILTER_UNLOAD_CALLBACK dans le champ FilterUnloadCallback de la structure FLT_REGISTRATION que le pilote de minifiltre transmet en tant que paramètre à FltRegisterFilter.

Les pilotes de minifiltre ne sont pas nécessaires pour inscrire une routine FilterUnloadCallback . Toutefois, l’inscription d’une routine de déchargement est fortement recommandée. Si un pilote de minifiltre n’inscrit pas de routine FilterUnloadCallback , il ne peut pas être déchargé.

Lorsqu’un pilote de minifiltre enregistre une routine FilterUnloadCallback :

  • Le gestionnaire de filtres appelle la routine FilterUnloadCallback pour informer le pilote de minifiltre que le gestionnaire de filtres est sur le point de décharger le pilote de minifiltre.

  • Si l’opération de déchargement n’est pas obligatoire et que la routine FilterUnloadCallback retourne un code NTSTATUS d’erreur ou d’avertissement, tel que STATUS_FLT_DO_NOT_DETACH, le pilote de minifiltre n’est pas déchargé. Sinon, le pilote de minifiltre est déchargé.

  • Si l’indicateur FLTFL_FILTER_UNLOAD_MANDATORY est défini dans le paramètre Flags , l’opération de déchargement est obligatoire et le pilote de minifiltre ne peut pas s’empêcher d’être déchargé.

Consultez Quand la routine FilterUnloadCallback est appelée pour plus d’informations sur les causes possibles de déchargement et le processus de déchargement du pilote minifiltre.

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

FltRegisterFilter