Freigeben über


FltReleaseContext-Funktion (fltkernel.h)

FltReleaseContext verringert die Verweisanzahl in einem Kontext.

Syntax

VOID FLTAPI FltReleaseContext(
  [in] PFLT_CONTEXT Context
);

Parameter

[in] Context

Zeiger auf den Kontext. Muss ein gültiger Zeiger auf ein Kontextobjekt für ein Volume, ein instance, einen Stream oder ein Streamhandle sein. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

Keine

Bemerkungen

Weitere Informationen zu Kontexten finden Sie unter Informationen zu Minifilterkontexten.

Ein Minifiltertreiber ruft FltReleaseContext auf, um einen Kontext freizugeben. FltReleaseContext verringert die Verweisanzahl für den angegebenen Kontext. Wenn die Verweisanzahl null erreicht, wird der Kontext sofort freigegeben, wenn der Aufrufer unter IRQL <= APC_LEVEL ausgeführt wird. Wenn der Aufrufer unter IRQL DISPATCH_LEVEL ausgeführt wird, wird ein Arbeitselement zum Freigeben des Kontexts geplant.

Hinweis

Nachdem FltReleaseContext zurückgegeben wurde, darf der Aufrufer den Kontext nicht mehr verwenden, da der Kontext möglicherweise bereits freigegeben wurde.

Jeder erfolgreiche Aufruf von FltAllocateContext, FltGetXxxContext oder FltReferenceContext muss schließlich durch einen Aufruf von FltReleaseContext abgeglichen werden.

Beachten Sie, dass der von FltSetXxxContext zurückgegebene OldContext-Zeiger und der Context-Parameter, der zum Aufrufen von FltDeleteContext verwendet wird, auch durch Aufrufen von FltReleaseContext freigegeben werden müssen, wenn sie nicht mehr benötigt werden.

Um einen neuen Kontext zuzuordnen, rufen Sie FltAllocateContext auf.

Um die Verweisanzahl in einem Kontext zu erhöhen, rufen Sie FltReferenceContext auf.

Weitere Informationen zum Zählen von Kontextreferenzen finden Sie unter Verweisen auf Kontexte.

Aufrufer von FltReleaseContext müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden, wenn der Kontext aus einem nicht auslagerten Pool zugeordnet wurde. Wenn der Kontext aus einem ausgelagerten Pool zugeordnet wurde, müssen Aufrufer unter IRQL <= APC_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

FltAllocateContext

FltDeleteContext

FltGetContexts

FltGetContextsEx

FltGetFileContext

FltGetInstanceContext

FltGetSectionContext

FltGetStreamContext

FltGetStreamHandleContext

FltGetTransactionContext

FltGetVolumeContext

FltReferenceContext

FltReleaseContexts

FltSetFileContext

FltSetInstanceContext

FltSetStreamContext

FltSetStreamHandleContext

FltSetTransactionContext

FltSetVolumeContext