TXN_PARAMETER_BLOCK结构(ntddk.h)
TXN_PARAMETER_BLOCK结构包含有关事务处理的文件作的信息。
语法
typedef struct _TXN_PARAMETER_BLOCK {
USHORT Length;
USHORT TxFsContext;
PVOID TransactionObject;
} TXN_PARAMETER_BLOCK, *PTXN_PARAMETER_BLOCK;
成员
Length
TXN_PARAMETER_BLOCK结构的大小(以字节为单位)。
TxFsContext
文件的微型版本 ID。
TransactionObject
指向事务的事务对象的不透明指针。
言论
微型版本 是事务处理编写器在事务期间创建的文件的版本。 (事务处理编写器 是使用不属于泛型读取访问权限的任何权限打开的事务处理文件句柄,但属于泛型写入访问。
如果未提供文件的特定微型版本编号,则必须将 TxFsContext 成员设置为TXF_MINIVERSION_DEFAULT_VIEW。
TXN_PARAMETER_BLOCKTxFsContext 成员使用 TXF_MINIVERSION_DEFAULT_VIEW获取请求文件的默认视图,该视图基于 TransactionObject 成员的值。 因此,如果 TransactionObject 与请求的文件锁定进行事务处理修改的事务相同,如果调用方可以指定 TransactionObject 成员的值,则调用方可以看到这些修改(文件脏视图)。 如果 TransactionObject 与请求的文件锁定进行事务处理修改的事务不同,则调用方在指定此值时获取文件的事务隔离视图。
微型版本仅作为文件的时点视图存在,尚未编写为给定文件的实际磁盘变体。 事务处理编写器通过使用 FSCTL_TXFS_CREATE_MINIVERSION 控件代码调用 ZwFsControlFile来创建微型版本。 作为响应,系统将创建一个微型版本并返回其微型版本 ID。 此后,事务处理编写器可以继续对文件进行更改。 如果稍后使用返回的微型版本 ID 作为 TxFsContextTXN_PARAMETER_BLOCK 结构的成员打开该文件,则生成的文件句柄将显示创建 miniversion 时的文件。
事务结束时,在事务中创建的所有微型版本都会消失。 之后,不能再使用微型版本 ID 打开该文件。
微型版本仅适用于创建 miniversion 的事务处理编写器,而不适用于事务处理读取器或非事务读取器。
IoGetTransactionParameterBlock 例程返回指向此结构的指针。
要求
要求 | 价值 |
---|---|
标头 | ntddk.h (包括 Ntddk.h、Ntifs.h、FltKernel.h) |