FltDeleteFileContext-Funktion (fltkernel.h)

Die FltDeleteFileContext-Routine ruft einen Dateikontext ab und löscht diesen, den ein bestimmter Minifiltertreiber für eine bestimmte Datei festgelegt hat.

Syntax

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

Parameter

[in] Instance

Undurchsichtiger instance Zeiger für den Aufrufer. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[in] FileObject

Dateiobjektzeiger für die Datei. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[out] OldContext

Zeiger auf eine vom Aufrufer zugeordnete Variable, die die Adresse des gelöschten Kontexts empfängt. Wenn kein übereinstimmenden Kontext gefunden wird, empfängt diese Variable NULL_CONTEXT. Dieser Parameter ist optional und kann NULL sein. Weitere Informationen zu diesem Parameter finden Sie im folgenden Abschnitt hinweise.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_NOT_FOUND Es wurde kein übereinstimmenden Kontext gefunden. Dies ist ein Fehlercode.
STATUS_NOT_SUPPORTED Dateikontexte werden für diese Datei nicht unterstützt. 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 FltDeleteFileContext oder FltDeleteContext aufruft , um einen Kontext explizit zu löschen.

Ein Minifiltertreiber ruft FltDeleteFileContext auf, um einen Dateikontext abzurufen und zu löschen, den er zuvor durch Aufrufen von FltSetFileContext für eine Datei festgelegt hat.

Wenn der OldContext-Parameter bei der Eingabe NULL ist und ein übereinstimmenden Dateikontext gefunden wird, gibt FltDeleteFileContext den Verweis frei, der vom vorherigen Aufruf des Minifiltertreibers für FltSetFileContext hinzugefügt wurde. Der gelöschte 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).

Wenn der OldContext-Parameter nicht NULL ist und ein übereinstimmenden Dateikontext gefunden und zurückgegeben wird, ist der Aufrufer für die Freigabe des von FltSetFileContext hinzugefügten Verweises verantwortlich. Um diese Referenz freizugeben, muss der Minifiltertreiber FltReleaseContext für den gelöschten Dateikontext so schnell wie möglich aufrufen, nachdem eine erforderliche Bereinigung durchgeführt wurde.

Um einen neuen Kontext zuzuordnen, rufen Sie FltAllocateContext auf.

Um zu bestimmen, ob Dateikontexte für eine bestimmte Datei unterstützt werden, rufen Sie FltSupportsFileContexts oder FltSupportsFileContextsEx auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista und höher
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
IRQL <= APC_LEVEL

Weitere Informationen

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx