FSRTL_PER_STREAM_CONTEXT-Struktur (ntifs.h)
Die FSRTL_PER_STREAM_CONTEXT-Struktur enthält Kontextinformationen, die ein Dateisystemfiltertreiber zu einem Dateidatenstrom verwaltet.
Syntax
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
Member
Links
Link für diese Struktur in der Liste aller Pro-Stream-Kontextstrukturen, die demselben Dateidatenstrom zugeordnet sind. FsRtlInsertPerStreamContext fügt diesen Member in die Liste aller Pro-Stream-Kontextstrukturen für einen Dateidatenstrom ein. Um einen Zeiger auf den Kopf der Liste aus einem Dateiobjekt abzurufen, verwenden Sie das FsRtlGetPerStreamContextPointer-Makro , und wandeln Sie das Ergebnis in einen PFSRTL_ADVANCED_FCB_HEADER-Zeiger um. Der Listenzeiger ist das FilterContexts-Element in der FCB-Headerstruktur (Advanced File Control Block) für den Dateistream.
OwnerId
Zeiger auf eine vom Filtertreiber zugeordnete Variable, die den Besitzer der Kontextstruktur pro Stream eindeutig identifiziert. Das Format dieser Variablen ist filtertreiberspezifisch. Filterautoren sollten einen Wert auswählen, der sowohl sinnvoll als auch praktisch ist, z. B. die Adresse eines Treiber- oder Geräteobjekts. Filtertreiber müssen diesen Member auf einen Wert ungleich NULL festlegen.
InstanceId
Zeiger auf eine vom Filtertreiber zugeordnete Variable, die verwendet werden kann, um zwischen datenstromspezifischen Kontextstrukturen zu unterscheiden, die vom gleichen Filtertreiber erstellt wurden. Das Format dieser Variablen ist filtertreiberspezifisch. Filterautoren sollten einen Wert auswählen, der sowohl sinnvoll als auch praktisch ist, z. B. die Adresse des Streamkontextobjekts für den Dateidatenstrom. (Verwenden Sie zum Abrufen dieser Adresse aus einem Dateiobjekt das Makro FsRtlGetPerStreamContextPointer .)
Dieser Member ist optional und kann NULL sein.
FreeCallback
Zeiger auf eine Rückrufroutine, die die Kontextstruktur pro Stream freigibt. Diese Routine und ihre Parameter sind wie folgt definiert:
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
Buffer
Zeiger auf die frei zu gebende FSRTL_PER_STREAM_CONTEXT-Struktur .
Hinweise
Dateisystemfiltertreiber können eine FSRTL_PER_STREAM_CONTEXT-Struktur verwenden, um Kontextinformationen für einen Dateidatenstrom zu verwalten. Diese Struktur kann so verwendet werden, wie sie ist, oder eingebettet in eine treiberdefinierte Kontextstruktur pro Stream.
Wenn ein Dateisystem das Streamkontextobjekt für einen Dateidatenstrom abreißt, muss es FsRtlTeardownPerStreamContexts aufrufen, wodurch wiederum die FreeCallback-Routinen aller dem Dateidatenstrom zugeordneten Kontextstrukturen pro Stream aufgerufen werden.
Das FsRtlSupportsPerStreamContexts-Makro bestimmt, ob ein Dateisystem Für einen bestimmten Dateidatenstrom Datenstrom-Kontexte pro Stream unterstützt.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
Parameter
FileObject [in]
PFILE_OBJECT
Ein Zeiger auf ein Dateiobjekt für den Dateistream.
Rückgabewert
BOOLEAN
Das FsRtlSupportsPerStreamContexts-Makro gibt TRUE zurück, wenn das Dateisystem datenstromspezifische Kontexte für den Dateidatenstrom unterstützt, andernfalls FALSE .
Dateisystemfiltertreiber rufen FsRtlSupportsPerStreamContexts auf, um zu bestimmen, ob das zugrunde liegende Dateisystem Datenstromkontexte pro Stream unterstützt, die durch ein bestimmtes Dateiobjekt dargestellt werden. Beachten Sie, dass ein Dateisystem für einige Dateitypen möglicherweise Datenstromkontexte unterstützt, für andere jedoch nicht. Beispielsweise unterstützen NTFS und FAT derzeit keine Datenstromkontexte für Auslagerungsdateien.
Weitere Informationen finden Sie unter Nachverfolgen Per-Stream Kontexts in einem Legacy-Dateisystemfiltertreiber.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Diese Struktur ist Windows XP. |
Kopfzeile | ntifs.h (include Ntifs.h) |
Weitere Informationen
FsRtlGetPerStreamContextPointer
FsRtlTeardownPerStreamContexts
Nachverfolgen Per-Stream Kontexts in einem Legacy-Dateisystemfiltertreiber
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für