Freigeben über


FltReleaseContext-Funktion (fltkernel.h)

FltReleaseContext die Verweisanzahl in einem Kontext verringert.

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, eine Instanz, einen Datenstrom oder ein Datenstromhandle sein. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

Rückgabewert

Nichts

Bemerkungen

Weitere Informationen zu Kontexten finden Sie unter Informationen zu Minifilterkontexten.

Ein Minifiltertreiber ruft FltReleaseContext- auf, um einen Kontext freizugeben. FltReleaseContext die Verweisanzahl für den angegebenen Kontext erhöht. Wenn die Referenzanzahl null erreicht, wird der Kontext sofort freigegeben, wenn der Aufrufer bei IRQL <= APC_LEVEL ausgeführt wird. Wenn der Aufrufer bei IRQL-DISPATCH_LEVEL ausgeführt wird, wird eine Arbeitsaufgabe so geplant, dass der Kontext freigegeben wird.

Anmerkung

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

Jeder erfolgreiche Aufruf von FltAllocateContext, FltGetXxxContextoder FltReferenceContext muss schließlich durch einen Aufruf von FltReleaseContextabgeglichen werden.

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

Rufen Sie FltAllocateContextauf, um einen neuen Kontext zuzuweisen.

Rufen Sie FltReferenceContextauf, um die Verweisanzahl in einem Kontext zu erhöhen.

Weitere Informationen zur Kontextreferenzzählung finden Sie unter Verweisen auf Kontexte.

Aufrufer von FltReleaseContext- müssen bei IRQL-<= DISPATCH_LEVEL ausgeführt werden, wenn der Kontext aus einem nicht seitengebundenen Pool zugewiesen wurde. Wenn der Kontext aus dem ausgelagerten Pool zugewiesen wurde, müssen Anrufer unter IRQL-<= APC_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- fltkernel.h (include Fltkernel.h)
Library FltMgr.lib
DLL- Fltmgr.sys
IRQL- Siehe Abschnitt "Hinweise".

Siehe auch

FltAllocateContext-

FltDeleteContext-

FltGetContexts

FltGetContextsEx

FltGetFileContext-

FltGetInstanceContext

FltGetSectionContext

FltGetStreamContext-

FltGetStreamHandleContext-

FltGetTransactionContext-

FltGetVolumeContext

FltReferenceContext-

FltReleaseContexts

FltSetFileContext-

FltSetInstanceContext-

FltSetStreamContext-

FltSetStreamHandleContext-

FltSetTransactionContext

FltSetVolumeContext