FsRtlSetupAdvancedHeaderEx2-Makro (ntifs.h)

Das FsRtlSetupAdvancedHeaderEx2-Makro wird von Dateisystemen verwendet, um eine FSRTL_ADVANCED_FCB_HEADER-Struktur für die Verwendung mit Stream- und Dateikontexten zu initialisieren.

Syntax

void FsRtlSetupAdvancedHeaderEx2(
   _advhdr,
   _fmutx,
   _fctxptr,
   _aepushlock
);

Parameter

_advhdr

Zeiger auf die zu initialisierende FSRTL_ADVANCED_FCB_HEADER-Struktur.

_fmutx

Zeiger auf einen initialisierten schnellen Mutex, der verwendet wird, um den Zugriff auf bestimmte FSRTL_ADVANCED_FCB_HEADER Member zu synchronisieren. Der schnelle Mutex muss aus einem nicht auslagerten Pool zugeordnet werden. Dieser Parameter ist optional und kann NULL sein. Aufrufer sollten diesen Parameter auf NULL festlegen, wenn sie beabsichtigen, ein bereits vorhandenes schnelles Mutex-Objekt zu verwenden. Wenn FastMutexNULL ist, muss der Aufrufer explizit den FastMutex-Member der FSRTL_ADVANCED_FCB_HEADER-Struktur festlegen, der im Streamkontextobjekt enthalten ist, um auf den vorhandenen schnellen Mutex zu verweisen. (Dies kann vor oder nach dem Aufruf von FsRtlSetupAdvancedHeaderEx2 erfolgen.)

_fctxptr

Ein Zeiger auf ein Zeigerfeld, das von der Dateisystemlaufzeitbibliothek (FSRTL) zum Nachverfolgen von Dateikontexten verwendet wird. Dieser Parameter ist optional und kann NULL sein. Wenn FileContextSupportPointer nicht NULL ist, muss FileContextSupportPointer ein Zeiger auf eine PVOID-Variable innerhalb einer Dateistruktur für das Dateisystem sein, das die Struktur erstellt hat. Um anzugeben, dass der Dateisystemtreiber Dateikontexte nicht unterstützt, müssen Aufrufer FileContextSupportPointer auf NULL festlegen.

_aepushlock

Zeiger auf eine undurchsichtige Struktur, die zum Initialisieren des Felds AePushLock des erweiterten Headers verwendet wird. Der Aufrufer dieser Funktion ist für die erste Zuweisung und Initialisierung des Arbeitsspeichers für dieses Feld durch Aufrufen von FsRtlAllocateAePushLock und anschließendes Freigeben des Arbeitsspeichers durch Aufrufen von FsRtlFreeAePushLock verantwortlich. Weitere Informationen zum automatischen Erweitern von Pushsperren finden Sie unter FSRTL_ADVANCED_FCB_HEADER .

Rückgabewert

Keine

Bemerkungen

Dateisysteme verwenden das FsRtlSetupAdvancedHeaderEx2-Makro , um eine FSRTL_ADVANCED_FCB_HEADER-Struktur für die Verwendung mit Stream- und Dateikontexten zu initialisieren.

Wenn die erweiterte FCB-Headerstruktur nicht mehr erforderlich ist, muss das Dateisystem FsRtlTeardownPerStreamContexts aufrufen, um alle zugeordneten Datenstrom- und Dateikontextstrukturen freizugeben.

Weitere Informationen finden Sie unter Nachverfolgen Per-Stream Kontexts in einem Legacy-Dateisystemfiltertreiber.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 20H2
Kopfzeile ntifs.h

Weitere Informationen

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts