FSRTL_PER_STREAM_CONTEXT Struktur (ntifs.h)
Die FSRTL_PER_STREAM_CONTEXT Struktur enthält Kontextinformationen, die ein Dateisystemfiltertreiber über einen 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;
Angehörige
Links
Verknüpfen Sie diese Struktur in der Liste aller Kontextstrukturen pro Datenstrom, die demselben Dateidatenstrom zugeordnet sind. FsRtlInsertPerStreamContext fügt dieses Element in die Liste aller Kontextstrukturen pro Stream 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 der FilterContexts Member in der Erweiterten Dateisteuerungsblock-Headerstruktur (FCB) für den Dateidatenstrom.
OwnerId
Zeigen Sie auf eine vom Filtertreiber zugewiesene Variable, die den Besitzer der Kontextstruktur pro Datenstrom 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 Treiberobjekts oder Geräteobjekts. Filtertreiber müssen dieses Element auf einen Wert ohneNULL festlegen.
InstanceId
Zeiger auf eine vom Filtertreiber zugewiesene Variable, die verwendet werden kann, um zwischen Kontextstrukturen pro Datenstrom zu unterscheiden, die vomselben Filtertreiber erstellt wurden. Das Format dieser Variablen ist filtertreiberspezifisch. Filterautoren sollten einen Wert auswählen, der sowohl aussagekräftig als auch praktisch ist, z. B. die Adresse des Streamkontextobjekts für den Dateidatenstrom. (Um diese Adresse aus einem Dateiobjekt abzurufen, verwenden Sie das FsRtlGetPerStreamContextPointer Makro.)
Dieses Element ist optional und kann NULL-sein.
FreeCallback
Zeigen Sie auf eine Rückrufroutine, die die Kontextstruktur pro Datenstrom freigibt. Diese Routine und ihre Parameter werden wie folgt definiert:
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
Puffer
Zeigen Sie auf die FSRTL_PER_STREAM_CONTEXT Struktur, um sie frei zu geben.
Bemerkungen
Dateisystemfiltertreiber können eine FSRTL_PER_STREAM_CONTEXT Struktur verwenden, um Kontextinformationen für einen Dateidatenstrom zu verwalten. Diese Struktur kann wie in eine treiberdefinierte Kontextstruktur pro Datenstrom eingebettet oder verwendet werden.
Wenn ein Dateisystem das Streamkontextobjekt für einen Dateidatenstrom herunterreißt, muss es FsRtlTeardownPerStreamContextsaufrufen, wodurch wiederum die FreeCallback- Routinen aller datenstrombezogenen Kontextstrukturen aufgerufen werden, die dem Dateidatenstrom zugeordnet sind.
Das FsRtlSupportsPerStreamContexts- Makro bestimmt, ob ein Dateisystem Kontexte pro Stream für einen bestimmten Dateidatenstrom unterstützt.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
Parameter
FileObject [in]
PFILE_OBJECT
Ein Zeiger auf ein Dateiobjekt für den Dateidatenstrom.
Rückgabewert
BOOLESCHEN
Das FsRtlSupportsPerStreamContexts- Makro gibt TRUE- zurück, wenn das Dateisystem Kontexte pro Stream für den Dateidatenstrom unterstützt, FALSE andernfalls.
Dateisystemfiltertreiber rufen FsRtlSupportsPerStreamContexts auf, um zu bestimmen, ob das zugrunde liegende Dateisystem Kontexte pro Stream für den Dateidatenstrom unterstützt, der durch ein bestimmtes Dateiobjekt dargestellt wird. Beachten Sie, dass ein Dateisystem möglicherweise Kontexte pro Stream für einige Dateitypen unterstützt, aber nicht für andere. Ntfs und FAT unterstützen z. B. derzeit keine Kontexte pro Datenstrom für das Auslagerungen von Dateien.
Weitere Informationen finden Sie unter Tracking Per-Stream Context in einem Legacy File System Filter Driver.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Diese Struktur ist Windows XP. |
Header- | ntifs.h (einschließlich Ntifs.h) |
Siehe auch
FsRtlGetPerStreamContextPointer-
FsRtlTeardownPerStreamContexts
Nachverfolgen Per-Stream Kontexts in einem älteren Dateisystemfiltertreiber