Release Notes for RTX64 4.2
RTX64 Runtime
General
- Added support for Windows 10 Update Version 2105 (21H1).
Subsystem
- Added support for collecting pre-trigger events during a monitor session. (10023)
Network and Drivers
- Added support for configuring Enable Receive Polling in the Windows Virtual RTX64 Ethernet Adapter properties. (9550)
- Upgraded the Treck Stack to version 6.0.1.69 to resolve security vulnerabilities. (9374)
- Added support for multiple devices to the RtNallPCH driver. See the RTX64 Supported NICs document for details. (9617)
Tools and Utilities
- Added settings to the Change monitoring settings page in the RTX64 Control Panel that allow for enhanced configuration of the monitoring feature. (9822, 10016)
Now you can:
- Configure the default maximum number of events to collect.
- Optionally collect pre-trigger events (events that occur before the event that triggers the start of a monitoring session).
- Configure the default maximum amount, in megabytes, of disk space allowed for all monitoring session folders.
- Configure the default stop behavior of a monitoring session in certain scenarios.
- Added settings to the Set session triggers page of RTX64 Monitor that allow you to change the maximum number of events to collect and optionally collect pre-trigger events. These settings override their equivalent default settings in the RTX64 Control Panel. (9822, 10017)
- Added new local memory MSpace fields to the text output for the Process Create monitoring event. (9156)
- The RTX64 Control Panel now displays whether the Monitoring feature is Disabled or Enabled. When monitoring is enabled, the Control Panel also displays its current state: Stopped, Started, or Paused. In addition, it displays whether monitoring is configured to be enabled and started with the Subsystem. (7703)
- Added functionality to the RTX64 Console window that allows you to save the console output to a file. (10108)
RTX64 SDK
General
- RTX64 SDK no longer requires a dongle for activation on a Virtual Machine. (9816)
- Updated the version of Tracealyzer by Percepio installed with RTX64. (10056)
Application Debugging
- Added support for hard-coded (embedded) breakpoints. (3751)
- Added functionality that causes the Visual Studio debugger to break automatically when a process being debugged is about to starve. This allows you to further inspect the process memory using either the Visual Studio IDE or WinDbg extensions. (9943)
Real-Time APIs
- Added new Real-time APIs that set or retrieve the number of pre-trigger events and the maximum number of events to save, respectively, per monitoring session
- RtMonitorGetPreTriggerEventsToSave retrieves the transient value of the number of pre-trigger events to save in a monitor session.
- RtMonitorSetPreTriggerEventsToSave sets the transient value of the number of pre-trigger events to save in a monitor session.
- RtMonitorGetMaxEventsInSession retrieves the transient value of the maximum number of events to collect in a monitoring session.
- RtMonitorSetMaxEventsInSession sets the transient value of the maximum number of events to collect in a monitoring session.
- Added new constants to Real-time enumeration RTX64_MONITOR_CONTROL_OP to set and retrieve the number of pre-trigger events and the maximum number of events to save, respectively, per monitoring session:
- MONITOR_CONTROL_GET_PRETRIGGER_EVENTS_TO_SAVE retrieves the transient value of the number of pre-trigger events to save in a monitor session.
- MONITOR_CONTROL_SET_PRETRIGGER_EVENTS_TO_SAVE sets the transient value of the number of pre-trigger events to save in a monitor session.
- MONITOR_CONTROL_GET_MAX_EVENTS_IN_SESSION retrieves the transient value of the maximum number of events to collect in a monitoring session.
- MONITOR_CONTROL_SET_MAX_EVENTS_IN_SESSION sets the transient value of the maximum number of events to collect in a monitoring session.
Native Framework APIs
- Added function RtfwGetRTX64DevicesEx, which retrieves the properties of all devices owned by RTX64.
- Added structure RTFW_DEVICEEX, which represents the properties of a device owned by RTX64.
- Added function RtfwFreeDeviceMemory, which frees the memory associated with the array of RTFW_DEVICEEX structures pointed to by parameter pRTX64Devices.
- Added new members to Native structure RTFW_MONITOR_CONFIGURATION (9822, 10051):
- MaximumEventsInSession – The number of events to save in a monitoring session.
- MaximumFolderSize – The size limit for all monitoring data collected by the Subsystem.
- PreTriggerEventsToSave – The number of pre-trigger events to save in a monitor session. Pre-trigger events are events that occur before the event type(s) that triggers the start of a monitoring session.
Managed Framework APIs
- Added new properties to Managed class MonitorEventProcessCreate which provide information on the process’s internal and external MSpace configurations (9156):
- ExternalMSpace represents the process's external MSpace pointer.
- ExternalMSpaceCommit indicates whether Non-Paged memory is allocated from Windows into the Local Pool of the process’s external MSpace at Subsystem startup.
- ExternalMSpaceExpandable indicates whether the RTSS process’s external MSpace will expand to meet memory demands.
- ExternalMSpaceExpandSize represents the size by which the process’s external MSpace will expand when it is set to auto expand.
- ExternalMSpaceInitialSize represents the initial size of the process’s external MSpace.
- ExternalMSpaceShrinkable indicates whether the process’s external MSpace will shrink when freeing memory allocated directly from the Local Pool.
- InternalMSpace represents the process's internal MSpace pointer.
- InternalMSpaceExpandable indicates whether the RTSS process’s internal MSpace will expand to meet memory demands.
- InternalMSpaceExpandSize represents the size by which the process’s internal MSpace will expand when it is set to auto expand.
- InternalMSpaceInitialSize represents the initial size of the process’s internal MSpace.
- InternalMSpaceShrinkable indicates whether the process’s internal MSpace will shrink when freeing memory allocated directly from the Local Pool.
- Added a new property and several new methods to Managed class IntervalZero.RTX64.Monitor.Subsystem (9822):
- Property MaximumFolderSize represents the size limit, in megabytes, for all session folders under folder
%SYSTEMDRIVE%\Users\Public\Documents\IntervalZero\Monitor
. If this property is changed, the Subsystem must be restarted for the change to take effect. - Method ResetMaximumFolderSize resets property MaximumFolderSize to its default value.
- Method GetMaxEventsInSession retrieves the persistent or transient value of the number of events to save in a monitor session.
- Method SetMaxEventsInSession sets the transient value of the number of events to save in a monitor session.
- Method ResetMaxEventsInSession resets the persistent value of the number of events to save in a monitor session.
- Method GetPreTriggerEventsToSave retrieves the persistent or transient value of the number of pre-trigger events to save in a monitor session. Pre-trigger events are events that occur before the event type(s) that triggers the start of a monitoring session.
- Method SetPreTriggerEventsToSave sets the transient value of the number of pre-trigger events to save in a monitor session. Pre-trigger events are events that occur before the event type(s) that triggers the start of a monitoring session.
- Method ResetPreTriggerEventsToSave resets the persistent value of the number of pre-trigger events to save in a monitor session.
Samples
- Added Visual Studio 2017 project files for the RtkIPC sample. (10031)
RTX64 Runtime
General
- Resolved an issue where uninstalling RTX64 Runtime from a system on which RTX64 Vision Runtime was installed resulted in removal of RTX64 Vision Runtime registry settings. (9993)
Activating and Configuring
- Resolved an issue where the RTX64 Activation and Configuration Utility sometimes crashed when the user attempted to set the RTSS boot configuration after disabling Hyper-Threading. (10066)
Subsystem
- Resolved an issue where debugging an RTSS process sometimes caused the Subsystem to become unresponsive when the RTX64 Watchdog timer was configured to monitor for runaway threads. (9930)
- Resolved a group permissions issue that allowed members of the RTX64Users group to access RTX64Administrators files. (9952)
Network and Drivers
- Resolved an issue where the RtNalI10GB driver did not fully support the Intel® X550 T 10GB Network Connection (0x1563) device. (9002)
- Resolved an issue where the RtNal10GB driver continued to transmit frames even after the Ethernet cable was disconnected from the NIC. (9360)
- Resolved these issues with the RtTcpipClient sample:
- Resolved an issue where the sample sometimes erroneously matched a sent packet with a response to a previous packet. (9742)
- Resolved an issue where the sample could not bind IPv6 addresses to the Client socket. (9577)
Tools and Utilities
- Resolved an issue where data-less custom events appeared as a blank lines in Monitor Utility output. (10154)
- Resolved an issue where some non-applicable Control Panel settings, such as Interrupt Type, were accessible when the RTX64 Virtual Network Interface was selected. Such non-applicable settings are now grayed-out. (10039)
- Resolved an issue where RtssRun returned an error when passed an argument for a directory path ending in a backslash (\). (10015)
- Resolved an issue where Network Abstraction Layer (NAL) and/or TCP/IP Stack output appeared in separate consoles when the Subsystem was configured to Display a separate console window for each real-time process. NAL and TCP/IP Stack output now appears in a single system console that closes when the Subsystem stops. (9885)
- Resolved an issue where the keyboard shortcuts used to scroll the RTX64 Console window did not function correctly. (9436)
- Improved error messaging for settings on the Configure real-time application output page in the Control Panel. (9940)
- Resolved an issue where some device-specific information could not be enumerated by the Real-time Framework (RtfwAPI.dll). As a result, an interface could not be added through the RTX64 control panel for some RTX64-converted network devices. (9912)
- Resolved an issue where RTX64 Analyzer output contained information for an obsolete tool. (9512)
- Resolved an issue where Tracealyzer didn’t always open the correct Help topic when F1 was pressed in a given view. (7831)
RTX64 SDK
Installation
- Resolved an issue where DebuggerExtension files remained on the system after the RTX64 SDK was uninstalled. (10172)
- Resolved an issue where uninstalling RTX64 SDK from a system with multiple RTX64 SDKs installed also removed StampTool from the system. (10053)
Tools and Utilities
- Resolved an issue where some memory-related monitoring events were not being generated, causing degraded memory graphs in Tracealyzer. (9899)
- Resolved an issue where Tracealyzer displayed a valid Subsystem SRI as Unknown SRI. (9593)
Supported Windows APIs
- Resolved an issue where parameter dwInitialSize in Windows function HeapCreate was not ignored as intended. (10073)
Real-Time APIs
- Resolved an issue where the description for error code RT_ERROR_MONITORING_NOT_ENABLED was incorrect. (10313)
- Improved error messaging in Real-time network device functions RtndInitialize, RtndConfigure, and RtndUpDown. (10282)
- Changed function GetAdaptersAddresses to return ERROR_BUFFER_OVERFLOW when parameter AdapterAddresses is NULL, matching the Windows version of the API. (10176)
- Resolved an issue where Real-time network device function RtndRequest reported incorrect values for disconnected devices. (9826)
- Fixed routing table issues in Real-time network function RtnDisplayRoutingTable. (9011)
- Resolved an issue where TCP/IP Stack interfaces in RtStartComponent could not be started if the Network Abstraction Layer (NAL) was stopped. (9327)
Native Framework APIs
- Improved error reporting for invalid TCP/IP Stack heap allocation by adding a new error code, RT_ERROR_TCPIP_HEAP_MSPACE_INVALID, which appears when the TCP/IP MSpace size is not at least 2176 KB larger than the MSpace memory allocated to the TCP/IP Stack heap when Auto expand MSpaces is disabled. (9537)
Samples
- Resolved build errors with the WindowsRTX64UsingSTL sample on Visual Studio 2019 v16.10.2. (10118)
- Resolved an issue where compiled files for the RtNalPCH driver ended up in the RTSSDebug folder when the driver source was built with the RTSSRelease configuration. (9956)
- Added information on supported drivers and functionality to the Readme.txt files packaged with the Network Abstraction Layer (NAL) samples. (9741)
- Resolved an issue where latencies and system hangs sometimes occurred when running the following samples on certain systems: SRTM, mSRTM, kSRTM, RtPerfMonitor, Shutdown. (9702)
- Resolved an issue where the NalMultiplePacketTx sample worked when passed incorrect flags. (8737)
RTX64 Runtime
Compatibility
- RTX64 Vision 4.1 is compatible with RTX64 4.2.
- Unlike with previous versions, RTX64 4.5 is not always compatible with RTSS processes built with a prior version of RTX64 (though all 4.x versions are compatible). See API Changes Between RTX64 3.x and RTX64 4.x for a list of deprecated and modified API calls. You can use the new RtssRun flag /c to check if an existing RTSS binary will run on RTX64 4.x.
Licensing
- Licenses for RTX64 3.x and previous versions will not work with RTX64 4.5.
- RTX64 4.0 and above only support small form factor dongles. The standard dongles supported by previous versions are no longer supported. If RTX64 4.1 is installed on a system, standard dongles will no longer work for previous versions installed on the same system.
General
- Upgrading to a new Windows 10 feature update on a machine where the RTX64 Runtime is already installed results in deletion of the RTSS boot configuration. To work around this issue, set the RTSS boot configuration through the RTX64 Activation and Configuration utility. See the topic Setting the RTSS Boot Configuration for more information.
- The RTX64 installers no longer install Software Identification (SWID) tags.
- When Intel® TurboBoost is enabled in the BIOS, Windows core frequency is boosted when the RTX64 Subsystem starts. This is because RTSS cores are in an idle loop for pooling those SRIs from Windows to RTSS cores. On Coffee Lake systems, specifically, whenever there is a core in the idle loop, the remaining cores' frequency is boosted. To avoid this, we recommend you disable Intel® TurboBoost in the BIOS.
Network and Drivers
- When creating a custom NIC driver, we recommend that the driver binary name not match the default NIC driver names provided by RTX64. The default driver names are used by the Control Panel to set up interfaces with the optimal defaults based on the provided drivers logic. (8318)
- All NIC driver source now generates RTDLLs with the suffix _custom (e.g. RtNalIPCH_custom.rtdll). (8319)
- Custom NIC drivers should not use the C Runtime library, and must not call printf. (6438)
- A Windows 10 feature update may cause devices previously converted to RTX64 control to convert back to Windows control. Following a Windows feature update, verify that all converted devices remain under RTX64 control, and re-convert any that were reset to Windows control using the steps documented in the topic Converting a Windows Device to an RTX64 Device.
- The maximum value for the TCP/IP Stack's maximum concurrency setting is now 10340. (9151)
- The advanced NAL interface properties Number of receive buffers and Number of transmit buffers must be a multiple of 8. (8159)
RTX64 SDK
Application Development
- Visual Studio 2015 has been deprecated and will be removed from the next major release.
- Visual Studio versions 2012 and 2013 are no longer supported. (7776, 7777)
- These supported Windows SDK versions have been tested with RTX64 4.1:
Visual Studio version | Tested Windows SDK versions |
---|---|
2019 |
10.0.18362.x 10.0.17763.x |
2017 |
10.0.14393.x 10.0.17763.x |
2015 |
10.0.10240.x 8.1 |
Application Debugging
Debugging applications built with a retail version of RTX64 Runtime in an evaluation version of RTX64 SDK is not supported. (10148)
Installation
- RTX64 4.x SDK cannot be installed on a system with a 3.x version of RTX64 Runtime. If a 3.x version of RTX64 Runtime is installed on your machine, you must uninstall it before you install RTX64 4.x SDK.
APIs
- See API Changes Between RTX64 3.x and RTX64 4.x for a list of the APIs that were enhanced, underwent breaking changes, or were deprecated in or removed from RTX64 4.2.
- Real-time Native Framework function RtfwSetSubsystemConfiguration must be run with Administrator privileges. The function will fail otherwise. (8456)
RTX64 Runtime
General
- RTX64 user groups are not removed when the RTX64 Runtime is uninstalled. (9911)
- When multiple RTX64 SDK versions are installed on the same machine, only one shortcut to the Activation and Configuration utility will appear in the Start menu. This shortcut might not always be listed under the most recent SDK version. (8359)
- If you install the RTX64 3.7 Runtime on a machine on which the RTX64 4.x SDK is already installed and then activate both products, the Activation and Configuration utility does not allow you to set the RTSS boot configuration. (8647)
- The Activation and Configuration and command line utilities fail silently (do not display an error) when an attempt is made to activate an RTX64 component on a Virtual Machine when a dongle is not present. (9225)
- Licenses cannot be activated to a small form factor dongle, either from the Activation and Configuration utility or command line, on a remote system accessed via Windows Remote Desktop. This is due to a security limitation with the third party dongle software. Attempts to activate to the dongle in this scenario will result in an error such as Error 19 (Unable to read dongle memory). Note that this issue does not happen when other remote connections, such as VNC or Team Viewer, are used.
Network and Drivers
- Real-time API RtnGetArpTable() and the RtssArp.rtss utility display device names truncated to 15 characters. The full case-sensitive device name must be used when adding or deleting an ARP entry. (9222)
Tools and Utilities
- The Memory Heap Utilization Graph in Tracealyzer may display a 'double-counting' of Local Memory allocations, reflecting both the user applications’ memory requests (such as calls to RtAllocateLocalMemory) and the creation of the Local Memory Pools from which memory is allocated to user applications. See the topic Allocation Spaces in Local Memory for more information about real-time process memory usage. (10296)
- Tools in RTX64 4.0 and above exhibit various issues on systems running Windows 10 2016 LTSB (Long Term Servicing Branch). Due to these issues, we have performed limited testing and will not be claiming support for such systems. If you require Windows 10 2016 LTSB support, please contact your Sales representative. (9206)
RTX64 SDK
Application Development
- Applications that include a reference to function
auto t = std::chrono::high_resolution_clock::now();
result in linker errors with Visual Studio 2019 v16.9. (9946) - Attempts to build a project migrated from a pre-2015 version of Visual Studio to Visual Studio 2015 or later results in a linker error: error LNK2005: _CrtSetReportHook already defined in rtx_rtss.lib(RTX_RTSS.SYS). To work around this issue, check the Linker > Input options and make sure rtx_rtss.lib is not linked to any of the C Runtime libraries (libcmtd.lib, libvcruntimed.lib, libucrtd.lib). (8697)
Application Debugging
- The IntervalZero Real-Time Debugger does not work in Visual Studio 2017 if the latest Visual Studio C++ Redistributables are not installed. To work around this issue, install these redistributables:
- Microsoft Visual C++ 2015-2019 Redistributable (x64)-14.48.29910
- Microsoft Visual C++ 2015-2019 Redistributable (x86)-14.48.29910
These redistributables are packaged with the RTX64_4.2_SDK_Setup.zip file.
Alternatively, you can download them from Microsoft at https://visualstudio.microsoft.com/downloads/
See the TechNote Unable to Debug RTSS Applications using the IntervalZero Real-Time Debugger with Visual Studio 2017 on the Support Site for more information.
- Launching RTSS applications remotely without debugging through the IntervalZero Remote Real-Time Debugger does not work in Visual Studio 2015.
Supported Windows APIs
- Parameter lpcchValueName in function RegEnumValue is a pointer to a variable that specifies the size of the buffer pointed to by parameter lpValueName. Parameter lpcchValueName is in bytes when it should be in characters. As a result, when the buffer is not a sufficient size in bytes, the function fails with error code ERROR_INVALID_PARAMETER (87). This will be fixed in a future release. (9044)
Samples
- The RtkIPC sample fails to build with Visual Studio 2019 versions prior to v16.10.4, resulting in this error: unresolved external symbol __stdio_common_vsprintf referenced in function _snprintf. This issue does not occur in Visual Studio 2019 v16.10.4 and later. (10067)
- The RDTPerformance sample may hang when debugged on machines with a high number of cores. (8907)