Subsystem Class |

Assembly: IntervalZero.RTX64 (in IntervalZero.RTX64.dll) Version: 3.3.0.0 (File version: 3.5.0)

The Subsystem type exposes the following members.


Name | Description | |
---|---|---|
![]() | CreationTime |
Date and time the object was created.
(Inherited from RTX64Object.) |
![]() | DefaultTimeQuantum |
Accesses the configuration parameter that specifies the default Time
Quantum (in microseconds) for newly created real-time threads. By default, RTX64 runs
the highest-priority thread, either until completion or until it yields. There is no
round robin scheduling within a given priority level. To make RTX64 perform time-sliced
round robin scheduling within a priority level, set the default Time Quantum to a
non-zero value.
A value of 0 means the highest-priority thread runs until completion or until it yields (i.e., no round
robin scheduling of threads within a given priority level). A non-zero value enables round robin scheduling
of threads within a given priority level using the specified value as the Time Quantum.
If this property is changed, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | DisableLocalMemoryExpansion |
This property accesses the configuration parameter that specifies whether automatic expansion
of Local Memory is disabled. The value true means automatic expansion of Local Memory is disabled. The
value false means automatic expansion of Local Memory is enabled. When automatic expansion of Local Memory
is enabled, the Local Memory pool will automatically allocated additional memory from Windows when it runs
low. This automatic expansion is non-deterministic, because it requires allocating memory from Windows. If
this parameter is changed, the real-time Subsystem must be restarted for the change to take effect. Even if property UseLocalMemory is set to false, this property's value still affects real-time processes
which are spawned with Local Memory enabled.
|
![]() | DisableLocalMemoryShrink |
This property accesses the configuration parameter that specifies whether automatic shrinking
of Local Memory is disabled. The value true means automatic shrinking of Local Memory is disabled. The
value false means automatic shrinking of Local Memory is enabled. When automatic shrinking of Local Memory
is enabled, the Local Memory pool can return memory to Windows when a real-time process terminates. If
this property is changed, the real-time Subsystem must be restarted for the change to take effect.
NOTE: Even if property UseLocalMemory is set to false, this property's value still affects real-time processes which are spawned with Local Memory enabled. |
![]() | DisableSpeedStep |
This property specifies whether the Subsystem should disable SpeedStep power
optimization. If this property is true, the Subsystem disables SpeedStep power
optimization, otherwise it does not disable it. When this property is set to true,
SpeedStep is only disabled when the RTX64 Subsystem is running.
|
![]() | EnabledProcessors |
Returns the total number of processors on the system, which can exceed the sum of
properties WindowsProcessors and RtssProcessorsActual in the case where the RTX64
Subsystem is unable to start some of the requested RTSS processors (for instance, if the
Runtime license limits the number of RTSS processors). The value of this property is
only meaningful after the real-time Subsystem has been started at least once. If the
real-time Subsystem has never been started, this property's value is 0.
|
![]() | EnableLocalMemory | Accesses the configuration parameter that specifies whether the RTX64 Subsystem uses Local memory (MSpaces) or Windows memory. If true, the real-time Subsystem memory allocation uses Local memory MSpaces. If false, the Subsystem allocates memory by requesting it from Windows. |
![]() | ExceptionBehavior |
Controls Subsystem behavior when an exception occurs and that exception is configured to
stop at the first exception (via property UseStructuredExceptionHandling). If this property is set to
false (the default), RTX64 will terminate or freeze the process (according to the value
of property FreezeFaultingProcessOnException). When this property is set to true, RTX64
will halt the system with a green screen and generate a memory dump. If this property
is changed, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | FreeStackOnTerminateThread |
Accesses the configuration parameter that specifies cleanup behavior when function
TerminateThread is called. If set to true, RTX64 frees the memory allocated to the terminated thread's
stack. If set to false, RTX64 does not free the memory allocated to the terminated thread's stack. If this
parameter is changed, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | FreezeFaultingProcessOnException |
Accesses the configuration parameter that specifies whether RTX64 terminates or freezes a
faulting RTSS process (i.e., a process that has caused an exception) or a process in which a run-away thread
has been detected (see property WatchdogEnabled). If set to true, a RTSS process in which a thread faults
or becomes a run-away thread is frozen. If set to false, the process is terminated. If this property is
changed, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | HALTimerPeriod |
Accesses the configured HAL timer period (in microseconds) for the RTX64 Subsystem. This
property must be set to a value between 1 and 1000 (inclusive). If any other value is assigned to this
property, an exception of type RTX64InvalidPropertyValueException is thrown. The default value is 100
microseconds. Use caution when setting the HAL timer period below 100 microseconds: fully test the timer
period on all systems on which you will deploy. If the HAL timer period is too small, it can cause Windows
to hang. If this property is changed, the real-time Subsystem must be restarted for the change to take
effect.
|
![]() | IsDisposed |
True if the object has been disposed, false otherwise.
(Inherited from RTX64Object.) |
![]() | LocalMemoryPoolExpansionSize |
This property accesses the configuration parameter that specifies the minimum expansion size (in
bytes) of the Local Memory pool. If this property is changed, the real-time Subsystem must be restarted
for the change to take effect. NOTE: Even if property UseLocalMemory is set to false, this property's value still affects real-time processes which are spawned with Local Memory enabled. |
![]() | LocalMemoryPoolInitialSize |
This property accesses the configuration parameter that specifies the initial size (in bytes) of
the Local Memory pool. If this property is changed, the real-time Subsystem must be restarted for the
change to take effect. NOTE: Even if property UseLocalMemory is set to false, this property's value still affects real-time processes which are spawned with Local Memory enabled. |
![]() | Minidump |
Accesses the configuration parameter that specifies whether RTX64 includes additional
RTSS-specific information in a Windows-generated minidump. If set to true, additional information is
included in minidumps, otherwise additional information is not included in minidumps. If this property is
changed, the real-time Subsystem must be restarted for the change to take effect.
This property is deprecated.
|
![]() | NALExtMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the Network Abstraction Layer (NAL) external MSpace. |
![]() | NALMSpacesPoolExpandable | Accesses the configuration parameter that specifies whether the local pool within the Network Abstraction Layer (NAL) MSpaces is expandable. If true, the local pool within the NAL MSpace is expandable by the amount specified by NALMSpacesPoolExpandSize when depleted. |
![]() | NALMSpacesPoolExpandSize | Accesses the configuration parameter that specifies the size, in kilobytes, by which to expand the local pool within the Network Abstraction Layer (NAL) MSpaces when NALMSpacesPoolExpandable is set to true. |
![]() | Name |
Name of the object.
(Inherited from RTX64Object.) |
![]() | PriorityInversionEnabled |
Accesses the priority inversion protocol configuration state of the Subsystem. If set to true,
a "tiered demotion" priority inversion protocol is used. If set to false, no priority inversion protocol is
enabled. If this property is changed, the real-time Subsystem must be restarted for the change to take
effect.
|
![]() | ProcessExtMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the RTSS process external MSpace. |
![]() | ProcessIntMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the RTSS process internal MSpace. |
![]() | ProcessMSpacesPoolExpandable | Accesses the configuration parameter that specifies whether the local pool within the RTSS process MSpace is expandable. If true, the local pool within the RTSS process MSpace is expandable by the amount specified by ProcessMSpacesPoolExpandSize when depleted. |
![]() | ProcessMSpacesPoolExpandSize | Accesses the configuration parameter that specifies the size, in kilobytes, by which to expand the local pool within the RTSS process MSpace when ProcessMSpacesPoolExpandable is set to true. |
![]() | ProcessMSpacesPoolShrinkable | Accesses the configuration parameter that specifies whether the local pool within the RTSS process MSpace is shrinkable. |
![]() | RDTFeatureMode CATMode | Retrieves the current Intel® Cache Allocation Technology (CAT) mode for performance differentiation among RTSS threads. |
![]() | RDTFeatureMode MBAMode | Retrieves the current Intel® Memory Bandwidth Technology (MBA) mode for performance differentiation among RTSS threads. |
![]() | RDTState RDT | Retrieves the current state of Intel® Resource Director Technology (RDT) performance optimization. |
![]() | RestartNeeded |
This property's value indicates whether the real-time Subsystem needs to be restarted or the
computer needs to be restarted in order for configuration changes made with this class to take effect, even
if the changes were made in another process. If the value of this property is RestartKind.NONE, no restart
of the real-time Subsystem or computer is needed. If the value of this property is RestartKind.SUBSYSTEM,
the real-time Subsystem needs to be restarted. If the value of this property is RestartKind.COMPUTER, the
computer needs to be restarted.
|
![]() | RtssProcessorsActual |
Returns the actual number of RTX64 processors being used by the real-time Subsystem. The value
of this property can differ from the value of property RtssProcessorsRequested if the real-time Subsystem is
unable to start some of the requested RTSS processors. The value of this property is only meaningful after
the real-time Subsystem has been started at least once. If the real-time Subsystem has never been started,
this property's value is 0. See method SetWindowsAndRtssProcessorsRequested().
|
![]() | RtssProcessorsRequested |
Read-only. Returns the requested number RTSS processors. If processor configuration has not happened yet,
this property will return a RTX64NotConfiguredException, and the real-time Subsystem cannot
be started. See method SetWindowsAndRtssProcessorsRequested().
|
![]() | SearchPath |
This property's value is a list of strings specifying directories to be searched when a
real-time process calls LoadLibrary or RtCreateProcess and does not pass an absolute
pathname to the RTDLL or RTSS file. Each element of this array must be an absolute path
ending with a '\' character.
|
![]() | StartMode |
Accesses the RTSS boot start mode of the real-time Subsystem. The value of this property is one
of the SubsystemStartMode enumerators.
|
![]() | SystemExtMSpacePoolCommit | Accesses the configuration parameter that specifies whether the local pool within the system process external MSpace is committed at startup. |
![]() | SystemMSpacesPoolExpandable | Accesses the configuration parameter that specifies whether the local pool within the system process MSpace is expandable by the amount specified by SystemMSpacesPoolExpandSize when depleted. |
![]() | SystemMSpacesPoolExpandSize | Accesses the configuration parameter that specifies the size, in kilobytes, by which to expand the local pool within the system process MSpace when SystemMSpacesPoolExpandable is set to true. |
![]() | SystemExtMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the system process internal MSpace. |
![]() | SystemIntMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the system process external MSpace. |
![]() | SystemMSpacesPoolShrinkable | Accesses the configuration parameter that specifies whether the local pool within the system process MSpace is shrinkable. |
![]() | TCPIPExtMSpacePoolMinimumSize | Accesses the configuration parameter that specifies the minimum size, in kilobytes, of the local pool within the RT-TCP-IP Stack external MSpace. |
![]() | TCPIPMSpacesPoolExpandable | Accesses the configuration parameter that specifies whether the local pool within the RT-TCP/IP Stack MSpace is expandable. If true, the local pool within the RT-TCP/IP Stack MSpace is expandable by the amount specified by TCPIPMSpacesPoolExpandSize when depleted. |
![]() | TCPIPMSpacesPoolExpandSize | Accesses the configuration parameter that specifies the size, in kilobytes, by which to expand the local pool within the RT-TCP/IP Stack MSpace when TCPIPMSpacesPoolExpandable is set to true. |
![]() | UseLocalMemory |
This property accesses the configuration parameter that specifies whether Local Memory is used
by default in newly spawned real-time processes. The value true means real-time processes will use the
Local Memory Pool by default. The value false means real-time processes will use Windows memory by default.
If this property is changed, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | UseStructuredExceptionHandling |
This property controls how exception handling works. If this parameter is changed, the
real-time Subsystem must be restarted for the change to take effect. When this property
is false and an exception occurs, RTX64 will either freeze the process, terminate the
process, or halt the system with a green screen (depending the values of properties
FreezeFaultingProcessOnException and ExceptionBehavior). When this property is true and
an exception occurs, the exception is handled using RTX64 structured exception handling,
and, if the exception is unhandled, the process is frozen/terminated (according to the
value of property FreezeFaultingProcessOnException).
|
![]() | WatchdogEnabled |
Accesses the configuration parameter that enables or disables runaway real-time thread
detection. If this configuration parameter is set to true, runaway thread detection is enabled, otherwise
it is disabled. If a real-time thread executes continuously for more than the amount of time specified by
property IntervalZero.RTX64.Config.Subsystem.WatchdogTimeout, all real-time threads are suspended on all
processors, and those real-time processes must be terminated with the RTSSkill utility. In a production
environments, it is recommended this this configuration parameter be set to false to disable runaway thread
detection.
|
![]() | WatchdogTimeout |
Accesses the timeout (in microseconds) for a real-time thread to be considered a runaway
thread. If this configuration parameter is set to 0, runaway thread detection is disabled. If a real-time
thread executes continuously for more than this amount of time, all real-time threads are suspended on all
processors, and those real-time processes must be terminated with the RTSSkill utility. In production
environments, it is recommended this this configuration parameter be set to 0 to disable runaway thread
detection.
|
![]() | WindowsEnergyPerformanceBias | Configures the Windows Processor Energy/Performance Bias setting. |
![]() | WindowsProcessors |
Read-only. Returns the configured number of Windows processors. If processor configuration has not
happened yet, this property will return a RTX64NotConfiguredException, and the real-time
Subsystem cannot be started. See method SetWindowsAndRtssProcessorsRequested().
|
![]() | ZeroMemoryAtAllocation | Accesses the configuration parameter that specifies whether the memory allocated by malloc or similar functions is initialized to zero (according to the C99 specification). This setting is disabled by default, as zeroing memory causes a performance lag. Therefore, memory requests from some C-Runtime functions or RTAPIs will not be initialized to zero at allocation. However, by definition, memory requests from calloc/_recalloc, VirtualAlloc, and HeapAlloc/HeapReAlloc with the HEAP_ZERO_MEMORY flag will be initialized to zero at allocation, regardless of the value of this property. |

Name | Description | |
---|---|---|
![]() | AddScheduledProcess |
Adds a ScheduledProcess to be started on start up of the Subsystem.
|
![]() | Dispose |
Dispose method.
(Inherited from RTX64Object.) |
![]() | GetArrayOfScheduledProcesses |
Returns a list of ScheduledProcess Objects. This can be used to make changes to scheduledProcesses that have already been added.
NOTE: The order of the scheduled tasks is the order by which they will be executed. You can remove scheduled tasks by calling .Delete() on one of the objects returned in the list. This object becomes disposed and will throw an exception if any of its properties are referenced again. If another instance of this list exists and contains the object that was deleted from the other list it too will crash if any properties of the deleted are referenced. |
![]() | OnNotifyPropertyChanged |
Called when a property is changed
(Inherited from RTX64Object.) |
![]() | RemoveScheduledProcess |
Removes a Process from the List of Scheduled Processes
|
![]() | Reset |
Resets all Subsystem configuration parameters to their default values. After this method is called, the
machine must be rebooted for the changes to take effect.
|
![]() | ResetDefaultTimeQuantum |
Resets property DefaultTimeQuantum to its default value (0). After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetDisableLocalMemoryExpansion |
Resets property DisableLocalMemoryExpansion to its default value (false). After this method is called, the
real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetDisableLocalMemoryShrink |
Resets property DisableLocalMemoryShrink to its default value (false). After this method is called, the
real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetDisableSpeedStep |
Resets property DisableSpeedStep to its default value (true). After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetEnableLocalMemory | Resets property EnableLocalMemory to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetExceptionBehavior |
Reset the Exception behavior property to it's default value of false.
false give it the behavior to halt the process.
|
![]() | ResetFreeStackOnTerminateThread |
Resets property FreeStackOnTerminateThread to its default value (false). After this method is called, the
real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetFreezeFaultingProcessOnException |
Resets property FreezeFaultingProcessOnException to its default value (false). After this method is called,
the real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetHALTimerPeriod |
Resets property HALTimerPeriod to its default value (100). After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetLocalMemoryPoolExpansionSize |
Resets property LocalMemoryPoolExpansionSize to its default value (1,048,576 bytes -- 1 MB). After this
method is called, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetLocalMemoryPoolInitialSize |
Resets property LocalMemoryPoolInitialSize to its default value (1,048,576 bytes). After this method is
called, the real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetMinidump |
Resets property Minidump to its default value (true). After this method is called, the real-time Subsystem
must be restarted for the change to take effect.
|
![]() | ResetNALExtMSpacePoolMinimumSize | Resets property NALExtMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetNALMSpacesPoolExpandable | Resets property NALMSpacesPoolExpandable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetNALMSpacesPoolExpandSize | Resets property NALMSpacesPoolExpandSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetPriorityInversionEnabled |
Resets property PriorityInversionEnabled to its default value (true). After this method is called, the
real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetProcessExtMSpacePoolMinimumSize | Resets property ProcessExtMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetProcessIntMSpacePoolMinimumSize | Resets property ProcessIntMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetProcessMSpacesPoolExpandable | Resets property ProcessMSpacesPoolExpandable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetProcessMSpacesPoolExpandSize | Resets property ProcessMSpacesPoolExpandSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetProcessMSpacesPoolShrinkable | Resets property ProcessMSpacesPoolShrinkable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetRDTFeatureMode CATMode Method | Resets property RDTFeatureMode CATMode to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetRDTFeatureMode MBAMode Method | Resets property RDTFeatureMode MBAMode to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetRDTState RDT Method | Resets property RDTState RDT to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSearchPath |
Resets property Path to its default value of an empty array of strings. After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetStartMode |
Resets property StartMode to its default value (SubsystemStartMode.DEMAND_START).
|
![]() | ResetSystemExtMSpacePoolCommit | Resets property SystemExtMSpacePoolCommit to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSystemExtMSpacePoolMinimumSize | Resets property SystemExtMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSystemIntMSpacePoolMinimumSize | Resets property SystemIntMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSystemMSpacesPoolExpandable | Resets property SystemMSpacesPoolExpandable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSystemMSpacesPoolExpandSize | Resets property SystemMSpacesPoolExpandSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetSystemMSpacesPoolShrinkable | Resets property SystemMSpacesPoolShrinkable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetTCPIPExtMSpacePoolMinimumSize | Resets property TCPIPExtMSpacePoolMinimumSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetTCPIPMSpacesPoolExpandable | Resets property TCPIPMSpacesPoolExpandable to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetTCPIPMSpacesPoolExpandSize | Resets property TCPIPMSpacesPoolExpandSize to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | ResetUseLocalMemory |
Resets property UseLocalMemory to its default value (false). After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetUseStructuredExceptionHandling |
Resets property UseStructuredExceptionHandling to its default value.
|
![]() | ResetWatchdogEnabled |
Resets property WatchdogEnabled to its default value (true). After this method is called, the real-time
Subsystem must be restarted for the change to take effect.
|
![]() | ResetWatchdogTimeout |
Resets property WatchdogTimeout to its default value (5,000,000 microseconds). After this method is called,
the real-time Subsystem must be restarted for the change to take effect.
|
![]() | ResetZeroMemoryAtAllocation | Resets property WatchdogEnabled to its default value. After this method is called, the real-time Subsystem must be restarted for the change to take effect. |
![]() | SetHALTimerPeriod | Sets the HAL timer period (in microseconds) for the RTX64 Subsystem. |
![]() | SetWindowsAndRtssProcessorsRequested |
This method atomically sets the requested number of Windows and RTSS processors. If the requested number of
RTSS processors is changed, the real-time Subsystem must be restarted for the change to take effect. If the
requested number of Windows processors is changed, the machine must be rebooted for the change to take
effect.
|

Name | Description | |
---|---|---|
![]() | PropertyChanged |
Event Fired when a property value is changed
(Inherited from RTX64Object.) |

Name | Description | |
---|---|---|
![]() ![]() | HAL_TIMER_PERIOD_1 |
These constants specify some commonly-used HAL timer period values (in microseconds) that can be assigned to
property HALTimerPeriod.
|
![]() ![]() | HAL_TIMER_PERIOD_2 | This represents a HAL timer period of 2 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_5 | This represents a HAL timer period of 5 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_10 | This represents a HAL timer period of 10 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_20 | This represents a HAL timer period of 20 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_50 | This represents a HAL timer period of 50 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_100 | This represents a HAL timer period of 100 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_200 | This represents a HAL timer period of 200 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_500 | This represents a HAL timer period of 500 microseconds. |
![]() ![]() | HAL_TIMER_PERIOD_1000 | This represents a HAL timer period of 1000 microseconds. |
