Freigeben über


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 er belegt, zusammen mit den zugehörigen 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 jedoch nicht NULL sein, wenn InstanceId- ungleich NULL ist.

[in, optional] InstanceId

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

Rückgabewert

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

Bemerkungen

FsRtlRemovePerFileContext entfernt nur die erste übereinstimmende Kontextstruktur pro Datei. Wenn zusätzliche Übereinstimmungen pro Dateikontext 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, um Kontexte nur zu entfernen, wenn der Treiber Kontextinformationen pro Datei verwerfen muss, während die Datei noch geöffnet ist. Kontexte werden entfernt, wenn eine Datei mit FsRtlTeardownPerFileContextsgeschlossen wird.

Verwenden Sie diese Routine nicht innerhalb 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 Datenstrom heruntergerissen wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Zielplattform- Universal
Header- ntifs.h (include FltKernel.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <=APC_LEVEL

Siehe auch

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

Nachverfolgen Per-File Kontexts in einem älteren Dateisystemfiltertreiber