ntifs.h) (FSRTL_PER_FILE_CONTEXT 结构

旧文件系统筛选器驱动程序可以使用 FSRTL_PER_FILE_CONTEXT 结构将特定于驱动程序的上下文信息关联到打开的文件。

语法

typedef struct _FSRTL_PER_FILE_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;

成员

Links

与同一文件关联的所有每个文件上下文结构列表中此结构的链接。 FsRtlInsertPerFileContext 将此成员插入文件的所有每文件上下文结构列表中。

OwnerId

指向筛选器驱动程序分配的缓冲区的指针,该缓冲区唯一标识每个文件上下文结构的所有者。 此变量的格式特定于筛选器驱动程序。 筛选器驱动程序必须将此成员设置为非 NULL 值。

InstanceId

指向筛选器驱动程序分配的缓冲区的指针,该缓冲区可用于区分由同一筛选器驱动程序创建的每个文件上下文结构。 此变量的格式特定于筛选器驱动程序。 筛选器驱动程序可以将此成员设置为 NULL

FreeCallback

指向释放每个文件上下文结构的 回调例程 的指针。 筛选器驱动程序必须将此成员设置为非 NULL 值。

注解

为了将上下文信息与文件关联,旧筛选器驱动程序首先分配 FSRTL_PER_FILE_CONTEXT 结构并使用 FsRtlInsertPerFileContext 对其进行初始化。 然后,驱动程序使用 FsRtlInsertPerFileContext 将该 FSRTL_PER_FILE_CONTEXT 对象与文件相关联。 当系统拆解文件的文件上下文对象时,它将调用 FsRtlTeardownPerFileContexts,后者调用在 FSRTL_PER_FILE_CONTEXT 对象中指定的 FreeCallback 例程。 该回调必须释放特定于驱动程序的上下文对象。

筛选器编写器应选择既有意义又方便的 OwnerID 值,例如驱动程序对象或设备对象的地址。

筛选器编写器应选择一个既有意义又方便的 InstanceID 值,例如文件的文件上下文对象的地址。 使用 FsRtlGetPerFileContextPointer 宏从文件对象检索该地址。

FSRTL_PER_FILE_CONTEXT 结构可以按原样使用,也可以嵌入到驱动程序定义的每个文件上下文结构中。

可以从分页池或非分页池中分配 FSRTL_PER_FILE_CONTEXT 结构。

FsRtlInitPerFileContext 宏初始化FSRTL_PER_FILE_CONTEXT结构。

参数

FileContext

FSRTL_PER_FILE_CONTEXT

要初始化FSRTL_PER_FILE_CONTEXT对象。

OwnerId

PVOID

指向筛选器驱动程序分配的变量的指针,该变量唯一标识每个文件上下文结构的所有者。 格式是特定于驱动程序的筛选器。 此参数必须具有非 NULL 值。

InstanceId

PVOID

指向筛选器驱动程序分配的变量的指针,该变量唯一标识每个文件上下文结构的所有者。 格式是特定于驱动程序的筛选器。 此参数必须具有非 NULL 值。

FreeCallback

PFREE_FUNCTION

指向释放每个文件上下文结构的 回调例程 的指针。

返回值

VOID

无。

在调用 FsRtlInsertPerFileContext 之前,必须使用此宏。

筛选器编写器应选择既有意义又方便的 OwnerID 值,例如驱动程序对象或设备对象的地址。

筛选器编写器应使用既有意义又方便的 InstanceID 值,例如文件的文件上下文对象的地址。 使用 FsRtlGetPerFileContextPointer 宏从文件对象检索该地址。

有关如何使用和创建上下文对象的详细信息,请参阅 跟踪旧版文件系统筛选器驱动程序中的 Per-File 上下文

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
标头 ntifs.h (包括 Fltkernel.h、Ntifs.h)

另请参阅

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

跟踪旧版文件系统筛选器驱动程序中的 Per-File 上下文