FLT_RELATED_OBJECTS structure (fltkernel.h)
The FLT_RELATED_OBJECTS structure contains opaque pointers for the objects associated with an operation.
Syntax
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;
Members
Size
Size, in bytes, of the FLT_RELATED_OBJECTS structure.
TransactionContext
Opaque member that contains the transaction miniversion ID value if the Transaction member is not NULL. If Transaction is NULL, the value of TransactionContext is undefined.
Filter
Opaque filter pointer for the minifilter driver whose callback routine is being called for the operation. This pointer uniquely identifies the minifilter driver and remains constant as long as the minifilter driver is loaded.
Volume
Opaque volume pointer for the volume that is associated with the operation. This pointer uniquely identifies the volume and remains constant over the lifetime of the volume device stack.
Instance
Opaque instance pointer for the minifilter driver instance that is associated with the operation. This pointer uniquely identifies the instance and remains constant as long as the instance is attached to a volume.
FileObject
Pointer to the file object, if any, for the operation.
Transaction
On Windows Vista and later, this member is an opaque transaction pointer to the transaction that is associated with the operation. The operation will be part of a transaction if the value of this member is not NULL. If the value of this member is NULL, the operation will not be part of a transaction. On Windows operating systems before Windows Vista, the value of this member will always be NULL.
Remarks
The FLT_RELATED_OBJECTS structure is allocated by the filter manager and contains opaque pointers for the objects associated with an I/O operation or an instance setup or teardown operation.
The contents of the FLT_RELATED_OBJECTS structure are set by the filter manager. Minifilter drivers cannot directly modify the contents of this structure. However, if a minifilter driver modifies the target instance or target file object for an I/O operation in the FLT_IO_PARAMETER_BLOCK structure for the operation, the filter manager modifies the value of the corresponding Instance or FileObject member of the FLT_RELATED_OBJECTS structure that is passed to lower minifilter drivers. For more information, see Modifying the Parameters for an I/O Operation.
A minifilter driver receives a pointer to an FLT_RELATED_OBJECTS structure as the FltObjects input parameter to the following callback routine types:
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
To retrieve pointers to a minifilter driver's contexts for the objects in an FLT_RELATED_OBJECTS structure, call FltGetContexts.
typedef CONST struct _FLT_RELATED_OBJECTS *PCFLT_RELATED_OBJECTS;
Requirements
Requirement | Value |
---|---|
Header | fltkernel.h (include Fltkernel.h) |
See also
FltDoCompletionProcessingWhenSafe
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK