TXFS_QUERY_RM_INFORMATION结构(winioctl.h)

[Microsoft强烈建议开发人员利用替代方法来实现应用程序的需求。 TxF 开发的许多方案可以通过更简单、更易用的技术来实现。 此外,TxF 在 Microsoft Windows 的未来版本中可能不可用。 有关详细信息,以及 TxF 的替代项,请参阅 使用事务 NTFS 的替代项。]

包含有关资源管理器(RM)的信息。

Syntax

typedef struct _TXFS_QUERY_RM_INFORMATION {
  DWORD         BytesRequired;
  DWORDLONG     TailLsn;
  DWORDLONG     CurrentLsn;
  DWORDLONG     ArchiveTailLsn;
  DWORDLONG     LogContainerSize;
  LARGE_INTEGER HighestVirtualClock;
  DWORD         LogContainerCount;
  DWORD         LogContainerCountMax;
  DWORD         LogContainerCountMin;
  DWORD         LogGrowthIncrement;
  DWORD         LogAutoShrinkPercentage;
  DWORD         Flags;
  WORD          LoggingMode;
  WORD          Reserved;
  DWORD         RmState;
  DWORDLONG     LogCapacity;
  DWORDLONG     LogFree;
  DWORDLONG     TopsSize;
  DWORDLONG     TopsUsed;
  DWORDLONG     TransactionCount;
  DWORDLONG     OnePCCount;
  DWORDLONG     TwoPCCount;
  DWORDLONG     NumberLogFileFull;
  DWORDLONG     OldestTransactionAge;
  GUID          RMName;
  DWORD         TmLogPathOffset;
} TXFS_QUERY_RM_INFORMATION, *PTXFS_QUERY_RM_INFORMATION;

Members

BytesRequired

如果 FSCTL_TXFS_QUERY_RM_INFORMATION 返回 ERROR_BUFFER_TOO_SMALL,则此成员指定返回请求的信息所需的最小字节数,包括 NULL 终止符。

TailLsn

RM 当前使用的最旧日志序列号(LSN)。

CurrentLsn

RM 在其日志中最近使用的 LSN。

ArchiveTailLsn

日志的存档尾部的 LSN。

LogContainerSize

日志容器的实际大小(以字节为单位)。

HighestVirtualClock

与日志记录关联的最高时间戳。

LogContainerCount

日志容器数。

LogContainerCountMax

日志容器的最大数目。

LogContainerCountMin

日志中允许的最小容器数。

LogGrowthIncrement

日志将增长的量,即多个容器或日志大小的百分比;所使用的增长类型由 Flags 成员中设置的标志指定。

LogAutoShrinkPercentage

如果自动收缩策略处于活动状态,则此成员指定日志中允许的最大可用空间量。 如果此成员为零,则自动收缩策略不处于活动状态。

Flags

此成员可以是以下一个或多个值。

价值 Meaning
TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN
0x00000008
如果设置了标志,则允许 RM 的日志尽可能缩小。 此标志与 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX互斥。
TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS
0x00000010
指示 LogGrowthIncrement 中的值类型。 如果设置了此标志, 则 LogGrowthIncrement 是多个容器。 此标志与 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT互斥。
TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT
0x00000020
指示 LogGrowthIncrement 中的值类型。 如果设置了此标志, 则 LogGrowthIncrement 为百分比。 此标志与 TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS互斥。
TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX
0x00000080
指示 RM 的日志可以在没有边界的情况下增长。 此标志与 TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN互斥。
TXFS_RM_FLAG_RESET_RM_AT_NEXT_START
0x00004000
指示 RM 重置标志的当前状态。 如果已设置,则 RM 将在下次启动时重置自身。 此标志仅适用于默认 RM,而不适用于辅助 RM。 此标志与 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START互斥。
TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START
0x00008000
指示 RM 重置标志的当前状态。 如果已设置,则下次启动 RM 时不会自行重置。 此标志仅适用于默认 RM,而不适用于辅助 RM。 此标志与 TXFS_RM_FLAG_RESET_RM_AT_NEXT_START互斥。
TXFS_RM_FLAG_PREFER_CONSISTENCY
0x00010000
指示 RM 优先于事务 一致性 而不是系统 可用性。 此标志与 TXFS_RM_FLAG_PREFER_AVAILABILITY 互斥,系统卷上的默认 RM 不支持此标志。
TXFS_RM_FLAG_PREFER_AVAILABILITY
0x00020000
指示 RM 优先于系统 可用性 而不是事务 一致性。 此标志与 TXFS_RM_FLAG_PREFER_CONSISTENCY 互斥,由系统卷上的默认 RM 强制使用。

LoggingMode

当前日志记录模式。

价值 Meaning
TXFS_LOGGING_MODE_SIMPLE
1
使用简单日志记录。
TXFS_LOGGING_MODE_FULL
2
使用完整日志记录

Reserved

预留。

RmState

RM 的状态。 有效值如下所示。

价值 Meaning
TXFS_RM_STATE_NOT_STARTED
0
RM 尚未启动。
TXFS_RM_STATE_STARTING
1
RM 正在启动。
TXFS_RM_STATE_ACTIVE
2
RM 处于活动状态并已准备好接受事务。
TXFS_RM_STATE_SHUTTING_DOWN
3
RM 正在关闭。

LogCapacity

日志的总容量(以字节为单位)。

LogFree

日志中释放的字节数。

TopsSize

$Tops文件的大小(以字节为单位)。

TopsUsed

正在使用的 $Tops 文件的数量(以字节为单位)。

TransactionCount

发出查询时的活动事务数。

OnePCCount

此 RM 上发生的单阶段提交作数。

TwoPCCount

此 RM 上发生的两阶段提交作数。

NumberLogFileFull

此 RM 日志已满的次数。

OldestTransactionAge

最早的活动事务的长度(以毫秒为单位)。

RMName

指示此 RM 的名称的 GUID

TmLogPathOffset

此结构的开头到包含 TM 日志路径的 NULL 终止 Unicode 字符串的偏移量。

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
Header winioctl.h (包括 Windows.h)

另请参阅

FSCTL_TXFS_QUERY_RM_INFORMATION

TxF 结构