FsRtlRemovePerFileContext-Funktion (ntifs.h)

Die FsRtlRemovePerFileContext-Routine gibt einen Zeiger auf ein FSRTL_PER_FILE_CONTEXT-Objekt zurück, das einer Datei zugeordnet ist. FsRtlRemovePerFileContext entfernt das FSRTL_PER_FILE_CONTEXT-Objekt aus der Liste, die es belegt, zusammen mit den zugeordneten treiberspezifischen Kontextinformationen.

Syntax

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

Parameter

[in] PerFileContextPointer

Ein Zeiger auf einen undurchsichtigen Zeiger, der vom FSRTL-Paket (File System Runtime Library) zum Nachverfolgen von Dateikontexten verwendet wird. Um diesen Zeiger aus einem Dateiobjekt abzurufen, verwenden Sie das FsRtlGetPerFileContextPointer-Makro .

[in, optional] OwnerId

Ein Zeiger auf eine vom Filtertreiber zugewiesene Variable, die den Besitzer der Kontextstruktur pro Datei eindeutig identifiziert. Dieser Parameter ist optional, muss aber nicht NULL sein, wenn InstanceId nicht NULL ist.

[in, optional] InstanceId

Ein Zeiger auf eine vom Filtertreiber zugewiesene Variable, die verwendet werden kann, um zwischen Dateikontextstrukturen zu unterscheiden, die vom gleichen Filtertreiber erstellt werden. Dieser Parameter ist optional.

Rückgabewert

Ein Zeiger auf den ersten FSRTL_PER_FILE_CONTEXT , der der OwnerId und InstanceId entspricht, sofern angegeben. Wenn keine Übereinstimmung gefunden wird oder das System keine Dateikontextinformationen unterstützt, gibt diese Routine NULL zurück.

Hinweise

FsRtlRemovePerFileContext entfernt nur die erste übereinstimmende Kontextstruktur pro Datei, die gefunden wird. Wenn zusätzliche übereinstimmende Kontexte pro Datei vorhanden sind, muss der Filtertreiber FsRtlRemovePerFileContext so oft wie erforderlich aufrufen, um sie alle zu entfernen.

Der Dateisystemfiltertreiber muss den Speicher freigeben, der für diese Kontextinformationen verwendet wird, nachdem die FSRTL_PER_FILE_CONTEXT entfernt wurde.

Verwenden Sie diese Routine für Ihre Treiber, um Kontexte nur dann zu entfernen, wenn der Treiber dateispezifische Kontextinformationen verwerfen muss, während die Datei noch geöffnet ist. Kontexte werden entfernt, wenn eine Datei mithilfe von FsRtlTeardownPerFileContexts geschlossen wird.

Verwenden Sie diese Routine nicht in Ihrer FreeCallback-Routine . Das Dateisystem entfernt Kontexte aus der Liste, bevor diese Routine aufgerufen wird.

Verwenden Sie diese Routine nicht in Ihrem IRP_CLOSE-Handler. Sie werden nicht benachrichtigt, wenn der Stream abgerissen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Universell
Header ntifs.h (include FltKernel.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

Weitere Informationen

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

Nachverfolgen Per-File Kontexts in einem Legacy-Dateisystemfiltertreiber