Freigeben über


FltDeleteStreamHandleContext-Funktion (fltkernel.h)

FltDeleteStreamHandleContext entfernt einen Kontext, den ein bestimmter Minifiltertreiber instance für ein bestimmtes Datenstromhandle festgelegt hat, und markiert den Kontext zum Löschen.

Syntax

NTSTATUS FLTAPI FltDeleteStreamHandleContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

Parameter

[in] Instance

Undurchsichtiger instance Zeiger für den Minifiltertreiber instance dessen Kontext aus der Liste der Kontexte entfernt werden soll, die an das Streamhandle angefügt sind.

[in] FileObject

Zeiger auf ein Dateiobjekt für den Dateidatenstrom.

[out] OldContext

Zeiger auf eine vom Aufrufer zugeordnete Variable, die die Adresse des gelöschten Kontexts empfängt. Dieser Parameter ist optional und kann NULL sein. Wenn OldContext nicht NULL ist und nicht auf NULL_CONTEXT zeigt, ist der Aufrufer für den Aufruf von FltReleaseContext verantwortlich, um diesen Kontext freizugeben, wenn er nicht mehr benötigt wird.

Rückgabewert

FltDeleteStreamHandleContext gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_FLT_DELETING_OBJECT Die angegebene Instanz wird abgerissen. Dies ist ein Fehlercode.
STATUS_NOT_FOUND Es wurde kein übereinstimmenden Kontext gefunden. Dies ist ein Fehlercode.
STATUS_NOT_SUPPORTED Das Dateisystem unterstützt keine Datenstromkontexte für dieses Dateidatenstromhandle. Dies ist ein Fehlercode.

Hinweise

Weitere Informationen zu Kontexten finden Sie unter Informationen zu Minifilterkontexten.

Da Kontexte referenzgezählt werden, ist es in der Regel nicht erforderlich, dass ein Minifiltertreiber eine Routine wie FltDeleteStreamHandleContext aufruft , um einen Kontext explizit zu löschen.

Ein Minifiltertreiber ruft FltDeleteStreamHandleContext auf, um einen Kontext aus einem Streamhandle zu entfernen und den Kontext zum Löschen zu markieren. Der Kontext wird in der Regel sofort freigegeben, es sei denn, es gibt einen ausstehenden Verweis darauf (z. B. weil der Kontext noch von einem anderen Thread verwendet wird).

Um einen neuen Kontext zuzuordnen, rufen Sie FltAllocateContext auf.

Um einen Streamkontext abzurufen, rufen Sie FltGetStreamHandleContext auf.

Um einen Streamkontext festzulegen, rufen Sie FltSetStreamHandleContext auf.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FltAllocateContext

FltDeleteContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext