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 |