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
Nachverfolgen Per-File Kontexts in einem älteren Dateisystemfiltertreiber