FLT_RELATED_OBJECTS 结构 (fltkernel.h)

FLT_RELATED_OBJECTS 结构包含与操作关联的对象的不透明指针。

语法

typedef struct _FLT_RELATED_OBJECTS {
  USHORT        Size;
  USHORT        TransactionContext;
  PFLT_FILTER   Filter;
  PFLT_VOLUME   Volume;
  PFLT_INSTANCE Instance;
  PFILE_OBJECT  FileObject;
  PKTRANSACTION Transaction;
} FLT_RELATED_OBJECTS, *PFLT_RELATED_OBJECTS;

成员

Size

FLT_RELATED_OBJECTS 结构的大小(以字节为单位)。

TransactionContext

如果事务成员不为 NULL,则包含事务微型版本 ID 值的不透明成员。 如果 TransactionNULL,则 TransactionContext 的值未定义。

Filter

为操作调用其回调例程的微筛选器驱动程序的不透明筛选器指针。 此指针唯一标识微筛选器驱动程序,只要加载微筛选器驱动程序,它就保持不变。

Volume

与操作关联的卷的不透明卷指针。 此指针唯一标识卷,并在卷设备堆栈的生存期内保持不变。

Instance

与操作关联的微筛选器驱动程序实例的不透明实例指针。 此指针唯一标识实例,只要实例附加到卷,该指针就保持不变。

FileObject

指向操作的文件对象的指针(如果有)。

Transaction

在 Windows Vista 及更高版本中,此成员是指向与操作关联的事务的不透明事务指针。 如果此成员的值不为 NULL,则该操作将成为事务的一部分。 如果此成员的值为 NULL,则该操作不会是事务的一部分。 在 Windows Vista 之前的 Windows 操作系统上,此成员的值将始终为 NULL

注解

FLT_RELATED_OBJECTS结构由筛选器管理器分配,包含与 I/O 操作、实例设置或拆解操作关联的对象的不透明指针。

FLT_RELATED_OBJECTS结构的内容由筛选器管理器设置。 微筛选器驱动程序无法直接修改此结构的内容。 但是,如果微筛选器驱动程序修改操作 FLT_IO_PARAMETER_BLOCK 结构中 I/O 操作的目标实例或目标文件对象,筛选器管理器将修改传递给较低级微筛选器驱动程序的 FLT_RELATED_OBJECTS 结构的相应 InstanceFileObject 成员的值。 有关详细信息,请参阅 修改 I/O 操作的参数

微筛选器驱动程序接收指向FLT_RELATED_OBJECTS结构的指针,作为指向以下回调例程类型的 FltObjects 输入参数:

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

若要检索指向FLT_RELATED_OBJECTS结构中对象的微筛选器驱动程序上下文的指针,请调用 FltGetContexts

注意typedef CONST struct _FLT_RELATED_OBJECTS *PCFLT_RELATED_OBJECTS;
 

要求

要求
Header fltkernel.h (包括 Fltkernel.h)

另请参阅

FLT_IO_PARAMETER_BLOCK

FLT_RELATED_CONTEXTS

FltDoCompletionProcessingWhenSafe

FltGetContexts

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK