RTFW_SUBSYSTEM_CONFIGURATION Structure

RTFW_SUBSYSTEM_CONFIGURATION represents core RTX64 subsystem configuration parameters. Other configuration parameters can be obtained and modified using other functions in this library.

Syntax

typedef struct _RTFW_SUBSYSTEM_CONFIGURATION(
    size_t Size;
    RTFW_START_MODE StartMode;
    unsigned int HALTimerPeriod;
    uint64_t DefaultTimeQuantum;
    bool FreeThreadStackOnTerminateThread;
    RTFW_RDT_STATE RDTState;
    RTFW_RDT_FEATURE_MODE CATMode;
    RTFW_RDT_FEATURE_MODE MBAMode;
} RTFW_SUBSYSTEM_CONFIGURATION, * PRTFW_SUBSYSTEM_CONFIGURATION;

Members

Size

The size of this structure (in bytes). Client code must set this member to sizeof(RTFW_SUBSYSTEM_CONFIGURATION) before passing this structure to any function. This is used to identify the version of this structure if it is extended.

StartMode

Specifies how the subsystem starts. See enumeration RTFW_START_MODE for possible values of this member. If RtfwSetSubsystemConfiguration is called to modify the value of this member, the caller must have Administrator privileges, otherwise that API will fail and set the last error value to ERROR_ACCESS_DENIED.

HALTimerPeriod

Specifies the HAL timer period (in microseconds). This value must be between 1 and 1000 (inclusive). If the HAL timer period is configured to be less than 100 microseconds, fully test your applications on all systems on which it will be deployed. If the HAL timer period is too small, it can cause Windows to hang. When the HAL timer period is changed, if the following Subsystem configuration parameters are not an integer multiple of the new HAL timer period, they are rounded up to be the next integer multiple of the HAL timer period:

DefaultTimeQuantum

Specifies the default time quantum, in microseconds, for real-time thread scheduling. This value must be a multiple of the HAL timer period, otherwise this function fails and sets the last error value to RT_ERROR_DEFAULTTIMEQUANTUM_INVALID. This default value can be overwritten at a process level.

If this value is set to RTFW_DISABLE_TIME_QUANTUM, time quantum scheduling is disabled and a thread will run to completion, or it is preempted by a higher priority thread, or it yields.

FreeThreadStackOnTerminateThread

If true, the RTX64 Subsystem frees a thread's stack memory when the thread is terminated using TerminateThread. If false, the thread's stack memory is not freed and can be viewed with debugging tools, such as WinDBG.

RTFW_RDT_STATE RDTState

Specifies the status of performance optimization with Intel® Resource Director Technology (RDT). See enumeration RTFW_RDT_STATE for possible values of this member.

RTFW_RDT_FEATURE_MODE CATMode

Specifies the Intel® Cache Allocation Technology (CAT) mode for performance differentiation among RTSS threads. See enumeration RTFW_RDT_FEATURE_MODE for possible values of this member.

RTFW_RDT_FEATURE_MODE MBAMode

Specifies the Intel® Memory Bandwidth Technology (MBA) mode for performance differentiation among RTSS threads. See enumeration RTFW_RDT_FEATURE_MODE for possible values of this member.

Requirements

Minimum Required Version

RTX64 3.4

The members that support Intel® RDT performance optimization were added in RTX64 3.5:

  • RTFW_RDT_STATE RDTState
  • RTFW_RDT_FEATURE_MODE CATMode
  • RTFW_RDT_FEATURE_MODE MBAMode
Header RtfwAPI.h
Library RtfwAPI.lib

See Also:

RTFW_START_MODE

RTFW_CONSOLE_CONFIGURATION

RtfwGetSubsystemConfiguration

RtfwSetSubsystemConfiguration

RTFW_RDT_STATE

RTFW_RDT_FEATURE_MODE