Macro FsRtlSetupAdvancedHeaderEx2 (ntifs.h)

La macro FsRtlSetupAdvancedHeaderEx2 viene utilizzata dai file system per inizializzare una struttura FSRTL_ADVANCED_FCB_HEADER da utilizzare con contesti di flusso e file.

Sintassi

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

Parametri

_advhdr

Puntatore alla struttura FSRTL_ADVANCED_FCB_HEADER da inizializzare.

_fmutx

Puntatore a un mutex rapido inizializzato che verrà usato per sincronizzare l'accesso a determinati membri FSRTL_ADVANCED_FCB_HEADER . Il mutex rapido deve essere allocato da un pool non di paging. Questo parametro è facoltativo e può essere NULL. I chiamanti devono impostare questo parametro su NULL se intendono usare un oggetto mutex veloce già esistente. Se FastMutex è NULL, il chiamante deve impostare in modo esplicito il membro FastMutex della struttura FSRTL_ADVANCED_FCB_HEADER , contenuto nell'oggetto contesto del flusso, per puntare al mutex rapido esistente. Questa operazione può essere eseguita prima o dopo aver chiamato FsRtlSetupAdvancedHeaderEx2.

_fctxptr

Puntatore a un campo puntatore usato dalla libreria di runtime del file system (FSRTL) per tenere traccia dei contesti di file. Questo parametro è facoltativo e può essere NULL. Se FileContextSupportPointer non è NULL, FileContextSupportPointer deve essere un puntatore a una variabile PVOID all'interno di una struttura per file per il file system che ha creato la struttura. Per indicare che il driver del file system non supporta i contesti di file, i chiamanti devono impostare FileContextSupportPointer su NULL.

_aepushlock

Puntatore a una struttura opaca usata per inizializzare il campo AePushLockdell'intestazione avanzata. Il chiamante di questa funzione è responsabile della prima allocazione e dell'inizializzazione della memoria per questo campo chiamando FsRtlAllocateAePushLock e successivamente liberando la memoria chiamando FsRtlFreeAePushLock. Per altre informazioni sui blocchi push con espansione automatica, vedere FSRTL_ADVANCED_FCB_HEADER.

Valore restituito

nessuno

Osservazioni

I file system usano la macro FsRtlSetupAdvancedHeaderEx2 per inizializzare una struttura FSRTL_ADVANCED_FCB_HEADER da usare con contesti di flusso e file.

Quando la struttura di intestazione FCB avanzata non è più necessaria, il file system deve chiamare FsRtlTeardownPerStreamContexts per liberare tutte le strutture di flusso e contesto di file associate.

Per altre informazioni, vedere Tracking Per-Stream Context in a Legacy File System Filter Driver.For more information, see Tracking Per-Stream Context in a Legacy File System Filter Driver.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 20H2
Intestazione ntifs.h

Vedi anche

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts