Макрос FsRtlSetupAdvancedHeaderEx2 (ntifs.h)

Макрос FsRtlSetupAdvancedHeaderEx2 используется файловыми системами для инициализации структуры FSRTL_ADVANCED_FCB_HEADER для использования с контекстами потоков и файлов.

Синтаксис

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

Параметры

_advhdr

Указатель на инициализируемый FSRTL_ADVANCED_FCB_HEADER структуру.

_fmutx

Указатель на инициализированный быстрый мьютекс, который будет использоваться для синхронизации доступа к определенным FSRTL_ADVANCED_FCB_HEADER элементам. Быстрый мьютекс должен быть выделен из пула без паг. Этот параметр является необязательным и может иметь значение NULL. Вызывающие объекты должны присвоить этому параметру значение NULL , если они намерены использовать уже существующий объект быстрого мьютекса. Если FastMutex имеет значение NULL, вызывающий объект должен явно задать элемент FastMutexFSRTL_ADVANCED_FCB_HEADER структуры, содержащейся в объекте контекста потока, чтобы он указывал на существующий быстрый мьютекс. (Это можно сделать до или после вызова FsRtlSetupAdvancedHeaderEx2.)

_fctxptr

Указатель на поле указателя, используемое библиотекой среды выполнения файловой системы (FSRTL) для отслеживания контекстов файлов. Этот параметр является необязательным и может иметь значение NULL. Если fileContextSupportPointer не имеет значение NULL, FileContextSupportPointer должен быть указателем на переменную PVOID внутри структуры каждого файла для файловой системы, создающей структуру. Чтобы указать, что драйвер файловой системы не поддерживает контексты файлов, вызывающие элементы должны присвоить fileContextSupportPointer значение NULL.

_aepushlock

Указатель на непрозрачную структуру, используемую для инициализации поля AePushLockрасширенного заголовка. Вызывающий объект этой функции отвечает за выделение и инициализацию памяти для этого поля путем вызова FsRtlAllocateAePushLock, а затем за освобождение памяти путем вызова FsRtlFreeAePushLock. Дополнительные сведения об автоматическом развертывании принудительная блокировка см. в разделе FSRTL_ADVANCED_FCB_HEADER .

Возвращаемое значение

None

Remarks

Файловые системы используют макрос FsRtlSetupAdvancedHeaderEx2 для инициализации структуры FSRTL_ADVANCED_FCB_HEADER для использования с контекстами потоков и файлов.

Если расширенная структура заголовков FCB больше не требуется, файловая система должна вызывать FsRtlTeardownPerStreamContexts , чтобы освободить все связанные структуры потока и контекста файлов.

Дополнительные сведения см. в разделе Отслеживание Per-Stream контекста в устаревшем драйвере фильтра файловой системы.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 20H2
Верхняя часть ntifs.h

См. также раздел

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAllocateAePushLock

FsRtlFreeAePushLock

FsRtlInitPerStreamContext

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlSupportsPerStreamContexts

FsRtlTeardownPerStreamContexts