FltDeleteFileContext-Funktion (fltkernel.h)
Die FltDeleteFileContext Routine ruft einen Dateikontext ab und löscht einen Dateikontext, 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 Instanzzeiger für den Aufrufer. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[in] FileObject
Dateiobjektzeiger für die Datei. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[out] OldContext
Zeiger auf eine vom Aufrufer zugewiesene 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-werden. 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. |
Bemerkungen
Weitere Informationen zu Kontexten finden Sie unter Informationen zu Minifilterkontexten.
Da Kontexte referenziert 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 für eine Datei festgelegt hat, indem FltSetFileContextaufgerufen wird.
Wenn der OldContext Parameter NULL- für eingaben ist und ein übereinstimmenden Dateikontext gefunden wird, gibt FltDeleteFileContext den Verweis frei, der vom vorherigen Aufruf des Minifiltertreibers zu FltSetFileContexthinzugefü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 parameter OldContext nicht NULL ist und ein übereinstimmender Dateikontext gefunden und zurückgegeben wird, ist der Aufrufer dafür verantwortlich, den Verweis freizugeben, der von FltSetFileContexthinzugefügt wurde. Um diesen Verweis freizugeben, muss der Minifiltertreiber FltReleaseContext- im gelöschten Dateikontext so schnell wie möglich aufrufen, nachdem eine erforderliche Bereinigung durchgeführt wurde.
Rufen Sie FltAllocateContextauf, um einen neuen Kontext zuzuweisen.
Um festzustellen, ob Dateikontexte für eine bestimmte Datei unterstützt werden, rufen Sie FltSupportsFileContexts oder FltSupportsFileContextsExauf.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista und höher |
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
IRQL- | <= APC_LEVEL |