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.

Voir aussi

FltAllocateContext

FltDeleteContext

FltGetContexts

FltGetContextsEx

FltGetFileContext

FltGetInstanceContext

FltGetSectionContext

FltGetStreamContext

FltGetStreamHandleContext

FltGetTransactionContext

FltGetVolumeContext

FltReferenceContext

FltReleaseContexts

FltSetFileContext

FltSetInstanceContext

FltSetStreamContext

FltSetStreamHandleContext

FltSetTransactionContext

FltSetVolumeContext