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 。 如果 FastMutexNULL,则调用方必须显式设置流上下文对象中包含的FSRTL_ADVANCED_FCB_HEADER结构的 FastMutex 成员,以指向现有的快速互斥体。 (这可以在调用 FsRtlSetupAdvancedHeaderEx2.) 之前或之后完成

_fctxptr

指向文件系统运行时库 (FSRTL) 用于跟踪文件上下文的指针字段的指针。 此参数是可选的,可以为 NULL。 如果 FileContextSupportPointer 不为 NULL则 FileContextSupportPointer 必须是指向创建该结构的文件系统的每个文件结构内的 PVOID 变量的指针。 若要指示文件系统驱动程序不支持文件上下文,调用方必须将 FileContextSupportPointer 设置为 NULL

_aepushlock

指向用于初始化高级标头AePushLock 字段的不透明结构的指针。 此函数的调用方负责首先通过调用 FsRtlAllocateAePushLock 来分配和初始化此字段的内存,然后通过调用 FsRtlFreeAePushLock 释放内存。 有关自动扩展推送锁的详细信息,请参阅 FSRTL_ADVANCED_FCB_HEADER

返回值

备注

文件系统使用 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