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 fichiers.

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 d’un 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 a la valeur 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 de runtime de système de fichiers (FSRTL) pour suivre les contextes de fichiers. Ce paramètre est facultatif et peut être NULL. Si FileContextSupportPointer n’a pas la valeur 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 de système de fichiers ne prend pas en charge les contextes de fichiers, 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 chargé d’abord d’allouer et d’initialiser la mémoire pour ce champ en appelant FsRtlAllocateAePushLock, puis en libérant la mémoire en appelant FsRtlFreeAePushLock. Pour plus d’informations sur les verrous push de développement automatique, consultez FSRTL_ADVANCED_FCB_HEADER .

Valeur de retour

None

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 requise, le système de fichiers doit appeler FsRtlTeardownPerStreamContexts pour libérer toutes les structures de flux et de contexte 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é.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 20H2
En-tête ntifs.h

Voir aussi

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts