TXFS_MODIFY_RM structure (winioctl.h)

[Microsoft strongly recommends developers utilize alternative means to achieve your application’s needs. Many scenarios that TxF was developed for can be achieved through simpler and more readily available techniques. Furthermore, TxF may not be available in future versions of Microsoft Windows. For more information, and alternatives to TxF, please see Alternatives to using Transactional NTFS.]

Contains the information required when modifying log parameters and logging mode for a secondary resource manager.

Syntax

typedef struct _TXFS_MODIFY_RM {
  DWORD     Flags;
  DWORD     LogContainerCountMax;
  DWORD     LogContainerCountMin;
  DWORD     LogContainerCount;
  DWORD     LogGrowthIncrement;
  DWORD     LogAutoShrinkPercentage;
  DWORDLONG Reserved;
  WORD      LoggingMode;
} TXFS_MODIFY_RM, *PTXFS_MODIFY_RM;

Members

Flags

The log parameters to be set.

This member can be one or more of the following values.

Value Meaning
TXFS_RM_FLAG_LOGGING_MODE
0x00000001
If this flag is set, the LoggingMode member of this structure is being used. If the flag is not set, the LoggingMode member is ignored.
TXFS_RM_FLAG_RENAME_RM
0x00000002
If this flag is set, the RM is instructed to rename itself (creating a new GUID).
TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX
0x00000004
If this flag is set, the LogContainerCountMax member is being used. If the flag is not set, the LogContainerCountMax member is ignored. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN.
TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN
0x00000008
If this flag is set, the LogContainerCountMin member is being used. If the flag is not set, the LogContainerCountMin member is ignored. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX.
TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS
0x00000010
If this flag is set, the LogGrowthIncrement member is being used. If the flag is not set, the LogGrowthIncrement member is ignored. This flag indicates that the log should grow by the number of containers specified in the LogGrowthIncrement member. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT.
TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT
0x00000020
If this flag is set, the LogGrowthIncrement member is being used. If the flag is not set, the LogGrowthIncrement member is ignored. This flag indicates that the log should grow by the percentage of the log size specified in the LogGrowthIncrement member. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS.
TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE
0x00000040
If this flag is set, the LogAutoShrinkPercentage member is being used. If the flag is not set, the LogAutoShrinkPercentage is ignored.
TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX
0x00000080
If this flag is set, the RM is instructed to allow its log to grow without bounds. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN.
TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN
0x00000100
If this flag is set, the RM is instructed to allow its log to shrink the log to only two containers. This flag is mutually exclusive with TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX.
TXFS_RM_FLAG_GROW_LOG
0x00000400
If this flag is set, the log is instructed to immediately increase its size to the size specified in LogContainerCount. If the flag is not set, the LogContainerCount is ignored.
TXFS_RM_FLAG_SHRINK_LOG
0x00000800
If this flag is set, the log is instructed to immediately decrease its size to the size specified in LogContainerCount. If this flag and TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE are set, the log is instructed to shrink to its minimum allowable size, and LogContainerCount is ignored.
TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE
0x00001000
If this flag and TXFS_RM_FLAG_SHRINK_LOG are set, the log is instructed to shrink to its minimum allowable size, and LogContainerCount is ignored. If this flag is set, the TXFS_RM_FLAG_SHRINK_LOG must be set.
TXFS_RM_FLAG_PRESERVE_CHANGES
0x00002000
If this flag is set, the log is instructed to preserve the changes on disk. If this flag is not set, any changes made are temporary (that is, until the RM is shut down and restarted).
TXFS_RM_FLAG_RESET_RM_AT_NEXT_START
0x00004000
This flag is only valid for default RMs, not secondary RMs. If this flag is set, the RM is instructed to reset itself the next time it is started. The log and the associated metadata are deleted.
TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START
0x00008000
This flag is only valid for default RMs, not secondary RMs. If this flag is set, a previous call to FSCTL_TXFS_MODIFY_RM is canceled with the TXFS_RM_FLAG_RESET_RM_AT_NEXT_START flag set.
TXFS_RM_FLAG_PREFER_CONSISTENCY
0x00010000
Indicates that the RM is to prefer transaction consistency over system availability. This flag is mutually exclusive with TXFS_RM_FLAG_PREFER_AVAILABILITY and is not supported by the default RM on the system volume.
TXFS_RM_FLAG_PREFER_AVAILABILITY
0x00020000
Indicates that the RM is to prefer system availability over transaction consistency. This flag is mutually exclusive with TXFS_RM_FLAG_PREFER_CONSISTENCY and is forced by the default RM on the system volume.

LogContainerCountMax

The maximum size of the log, in containers.

LogContainerCountMin

The minimum size of the log, in containers.

LogContainerCount

The actual size of the log, in containers.

LogGrowthIncrement

The number of containers or percentage of space that should be added to the log.

LogAutoShrinkPercentage

The percentage of log space to keep free. This member is used when the TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE flag is used, and instructs the log to automatically shrink itself, so no more than LogAutoShrinkPercentage of the log is free at any given time.

Reserved

Reserved.

LoggingMode

The current logging mode.

Value Meaning
TXFS_LOGGING_MODE_SIMPLE
1
Simple logging is used.
TXFS_LOGGING_MODE_FULL
2
Full logging is used

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Header winioctl.h (include Windows.h)

See also

FSCTL_TXFS_MODIFY_RM