Partager via


Macro FsRtlSetupAdvancedHeaderEx2 (ntifs.h)

La macro FsRtlSetupAdvancedHeaderEx2 est utilisée par les systèmes de fichiers pour initialiser une structure FSRTL_ADVANCED_FCB_HEADER à utiliser avec des contextes de flux et de fichier.

Syntaxe

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

Paramètres

_advhdr

Pointeur vers la structure FSRTL_ADVANCED_FCB_HEADER à initialiser.

_fmutx

Pointeur vers un mutex rapide initialisé qui sera utilisé pour synchroniser l’accès à certains membres FSRTL_ADVANCED_FCB_HEADER. Le mutex rapide doit être alloué à partir du pool non paginé. Ce paramètre est facultatif et peut être NULL. Les appelants doivent définir ce paramètre sur NULL s’ils ont l’intention d’utiliser un objet mutex rapide déjà existant. Si FastMutex est NULL, l’appelant doit définir explicitement le membre FastMutex de la structure FSRTL_ADVANCED_FCB_HEADER, contenu dans l’objet de contexte de flux, pour pointer vers le mutex rapide existant. (Cette opération peut être effectuée avant ou après l’appel de FsRtlSetupAdvancedHeaderEx2.)

_fctxptr

Pointeur vers un champ de pointeur utilisé par la bibliothèque d’exécution du système de fichiers (FSRTL) pour suivre les contextes de fichier. Ce paramètre est facultatif et peut être NULL. Si fileContextSupportPointer n’est pas NULL, FileContextSupportPointer doit être un pointeur vers une variable PVOID à l’intérieur d’une structure par fichier pour le système de fichiers qui a créé la structure. Pour indiquer que le pilote du système de fichiers ne prend pas en charge les contextes de fichier, les appelants doivent définir FileContextSupportPointer sur NULL.

_aepushlock

Pointeur vers une structure opaque utilisée pour initialiser le champ AePushLock de l’en-tête avancé . L’appelant de cette fonction est responsable de la première allocation et de l’initialisation de la mémoire pour ce champ en appelant FsRtlAllocateAePushLock, puis en libérant la mémoire en appelant FsRtlFreeAePushLock. Consultez FSRTL_ADVANCED_FCB_HEADER pour plus d’informations sur les verrous push de développement automatique.

Valeur de retour

Aucun

Remarques

Les systèmes de fichiers utilisent la macro FsRtlSetupAdvancedHeaderEx2 pour initialiser une structure FSRTL_ADVANCED_FCB_HEADER à utiliser avec des contextes de flux et de fichiers.

Lorsque la structure d’en-tête FCB avancée n’est plus nécessaire, le système de fichiers doit appeler FsRtlTeardownPerStreamContexts pour libérer toutes les structures de contexte de flux et de fichiers associées.

Pour plus d’informations, consultez suivi Per-Stream contexte dans un pilote de filtre de système de fichiers hérité.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 20H2
d’en-tête ntifs.h

Voir aussi

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts