Fonction FltReleaseContext (fltkernel.h)
FltReleaseContext décrémente le nombre de références sur un contexte.
Syntaxe
VOID FLTAPI FltReleaseContext(
[in] PFLT_CONTEXT Context
);
Paramètres
[in] Context
Pointeur vers le contexte. Doit être un pointeur valide vers un objet de contexte pour un volume, un instance, un flux ou un handle de flux. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
Valeur de retour
None
Remarques
Pour plus d’informations sur les contextes, consultez À propos des contextes de minifiltre.
Un pilote de minifiltre appelle FltReleaseContext pour libérer un contexte. FltReleaseContext décrémente le nombre de références sur le contexte donné. Lorsque le nombre de références atteint zéro, le contexte est libéré immédiatement si l’appelant s’exécute à IRQL <= APC_LEVEL. Si l’appelant est en cours d’exécution au DISPATCH_LEVEL IRQL, un élément de travail est planifié pour libérer le contexte.
Notes
Une fois FltReleaseContext retourné, l’appelant ne doit pas utiliser le contexte, car le contexte a peut-être déjà été libéré.
Chaque appel réussi à FltAllocateContext, FltGetXxxContext ou FltReferenceContext doit être mis en correspondance par un appel à FltReleaseContext.
Notez que le pointeur OldContext retourné par FltSetXxxContext et le paramètre Context utilisé pour appeler FltDeleteContext doivent également être libérés en appelant FltReleaseContext lorsqu’ils ne sont plus nécessaires.
Pour allouer un nouveau contexte, appelez FltAllocateContext.
Pour incrémenter le nombre de références sur un contexte, appelez FltReferenceContext.
Pour plus d’informations sur le comptage des références de contexte, consultez Référencement de contextes.
Les appelants de FltReleaseContext doivent s’exécuter sur IRQL <= DISPATCH_LEVEL si le contexte a été alloué à partir d’un pool non paginé. Si le contexte a été alloué à partir d’un pool paginé, les appelants doivent s’exécuter à IRQL <= APC_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | Consultez la section Notes. |