TXFS_QUERY_RM_INFORMATION 结构 (winioctl.h)

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

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

语法

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;

成员

BytesRequired

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

TailLsn

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

CurrentLsn

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

ArchiveTailLsn

日志存档尾部的 LSN。

LogContainerSize

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

HighestVirtualClock

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

LogContainerCount

日志容器的数目。

LogContainerCountMax

日志容器的最大数目。

LogContainerCountMin

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

LogGrowthIncrement

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

LogAutoShrinkPercentage

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

Flags

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

含义
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 将在下次启动时自行重置。 此标志仅对默认的 RMs 有效,对辅助 RMs 无效。 此标志与 TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START 互斥。
TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START
0x00008000
指示 RM 重置标志的当前状态。 如果设置了此设置,则 RM 不会在下次启动时自行重置。 此标志仅对默认的 RMs 有效,对辅助 RMs 无效。 此标志与 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

当前日志记录模式。

含义
TXFS_LOGGING_MODE_SIMPLE
1
使用简单日志记录。
TXFS_LOGGING_MODE_FULL
2
使用完整日志记录

Reserved

保留。

RmState

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

含义
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 字符串的偏移量。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 winioctl.h (包括 Windows.h)

另请参阅

FSCTL_TXFS_QUERY_RM_INFORMATION

TxF 结构