Release Notes for RTX64 3.1
Key Features
Subsystem
- Improved Subsystem performance by a range of 16%-33%, depending on system cache architecture. (987)
Tools and Utilities
- Improved monitoring event capture to gather information about processes running before monitoring is started. (5043)
- Implemented these improvements in the RTX64 Analyzer:
- Analyzer output now contains a listing of the installed versions of .NET (5284)
- Analyzer output now contains a listing of the RTX64 DLLs in the Global Assembly Cache (GAC). (5284)
- Analyzer output now contains the contents of internal Registry keys. (5285)
Developing and Debugging Applications
- Added the feature Attach to RTSS Process, which allows you to attach the Visual Studio 2015 debugger to any running RTSS process on the local machine.
- Added support for Intel Compiler 17.0.1 ( as shipped with Intel Parallel Studio XE 2017 Update 1). (5317)
- Added a new debugging property in Visual Studio that allows you to allocate memory from the Windows memory pool, which uses non-deterministically allocated memory. Note that this only applies when the default memory allocation behavior is set to use Local memory. (4257)
- Added BETA support for Visual Studio 2017 (RC2 was tested).
SDK
- Added new Real-Time Network functions:
- RtnAttachProcessExitHandler registers an application's networking exit handler to allow an RTSS application to perform custom socket code cleanup when an application exits.
- RtnReleaseProcessExitHandler removes an application's networking exit handler registered by the function RtnAttachProcessExitHandler.
(5355)
- Added support for these Interlocked functions in real-time applications:
- InterlockedAdd
- InterlockedAdd64
- InterlockedAnd
- InterlockedAnd8
- InterlockedAnd16
- InterlockedAnd64
- InterlockedCompare64Exchange128
- InterlockedCompareExchange16
- InterlockedCompareExchange64
- InterlockedCompareExchange128
- InterlockedCompareExchangePointer
- InterlockedDecrement16
- InterlockedDecrement64
- InterlockedExchange8
- InterlockedExchange16
- InterlockedExchange64
- InterlockedExchangePointer
- InterlockedExchangeSubtract
- InterlockedExchangeAdd64
- InterlockedIncrement16
- InterlockedIncrement64
- InterlockedOr
- InterlockedOr8
- InterlockedOr16
- InterlockedOr64
- InterlockedXor
- InterlockedXor8
- InterlockedXor16
- InterlockedXor64
- Added a new Real-Time API RtIsDebuggerPresent, which determines whether a local real-time process is attached to the IntervalZero Real-Time Debugger. (5417)
- Added support for these C Runtime functions:
- errno
- fwrite
- fflush
- ferror
- feof
- clearerr
See the Matrix of C Library Supported Functions for the full list. (5280)
Issues Resolved
Installation
- Resolved an issue where the RTX64 Visual Studio project wizards VSIX would not be installed if Visual Studio was not already installed on the machine. (5192)
- Resolved an issue where
.swidtag
files were being installed to two different locations. (5128) - Resolved an issue where cached IntervalZero MSI files were not removed during uninstall. (5126)
- Added support for installing RTX64 on machines running Windows 10 IoT Enterprise on IoT deployed systems. (5344)
Subsystem
- Resolved an issue where RT-TCP/IP Stack modules were not loaded when there were no calls to
rttcpip.lib
in the main process. (5328) - Resolved issues where the Subsystem would sometimes hang on machines with more than 32 cores. (5300)
- Resolved performance issues that resulted when context switches were used in a multi-core environment. (5206)
- Resolved intermittent errors that occurred when the Subsystem was installed on NUMA-enabled systems running Windows 10. (5426)
- Resolved an issue where real-time function RtWaitForSingleObject returned Unknown error 259. (5447)
RT-TCP/IP Stack and Drivers
- Resolved an issue where the RT-TCP/IP Stack sent out a fragmented IP packet with the wrong length in the UDP header when sendto or send was called on a UDP socket with data length larger than 65,527 bytes (the maximum allowed data payload over UDP). (5401)
- Resolved an issue where the Rt10GB NIC driver did not report link speed and duplex correctly when RtndRequest was called. (5342)
Tools and Utilities
- Resolved an issue where Ksrtm.exe stopped working when the total number of Windows and RTSS cores was greater than 32. (5241)
- Resolved these issues with the Control Panel:
- Resolved an issue where the Location and Device properties for a network interface could not be modified in the Control Panel. (5209)
- Resolved these issues with RTX64 Analyzer:
- Resolved an issue where the Analyzer output file did not include a file extension on German language Operating Systems. (5057)
- Resolved these issues with monitoring and Tracealyzer:
- Added the ability to refresh the Monitor utility to work around an issue where the Start Monitoring button did not become enabled when the Subsystem was started. (5025, 5373)
- Resolved issues where Tracealyzer incorrectly displayed time gaps in some monitoring session output. (5263, 5311)
- Resolved an issue where an exception would occur when a shared filter was used in the User Event Signal Plot view. (5178)
- Resolved an issue where Tracealyzer's Event Log view erroneously displayed Context Switch events that were not included in the session data. (5040)
- Resolved a color mismatch in Tracealyzer's Kernel Service Call Intensity view. (5002)
- Resolved an issue where non-selected custom event triggers were deleted when the Monitor utility was closed. (4196)
Developing and Debugging Applications
- Resolved an issue where attempts to debug a RTDLL failed with an error when a breakpoint was hit. (5402)
- Resolved an issue where loading and freeing two RTDLLs repeatedly in parallel while debugging caused a Blue Screen. (5266)
SDK
- Resolved an issue where APIs in the Monitoring Framework caused unexpected exceptions when only the RTX64 SDK was installed on the machine. (5308)
- Resolved an issue where the real-time API RtEnumProcessesEx returned an incorrect processor affinity mask and affined processer number for some real-time processes. (5368)
Notes
General
- The RTX64 Runtime cannot be installed on machines running Windows 7 without SP1. Attempts to do so will result in an error. (5450)
- You may not be able activate and lock your product to a machine with RAID controllers. In this scenario, you will need to lock RTX64 to a dongle instead. For more information, see Activating Components. (5528)
- Implemented new battery-power settings in the RTX64-Recommended power plan for laptops running Windows 10 Anniversary (5267):
Setting | Value |
---|---|
Critical Action | 0 - Do nothing |
Low Battery Level | 10 |
Critical Battery Level | 5 |
Low Level Battery Notify | 1 - Display notification |
Low Level Battery Action | 0 - Do nothing |
Reserve Battery Level | 15 |
Tools and Utilities
- The default save location for new monitoring session folders created by the RTX64 Runtime has been changed to
%PUBLIC%\Documents\IntervalZero\Monitor
. The previous default location was%PROGRAMDATA%\IntervalZero\Monitor
. Note that when you upgrade RTX64 on a machine that contains monitoring session data from RTX64 3.0, the default monitoring session folder remains%PROGRAMDATA%\IntervalZero\Monitor
. (5279) - Opening large monitoring sessions in Tracealyzer may slow and even hang machines that do not have sufficient RAM. You are now prompted when you attempt to load a monitoring session for which there may not be sufficient memory. (5064)
Developing and Debugging Applications
- The path to DebuggerExtensions changed from
(RTX64Common)\DebuggerExtensions\
toC:\Program Files\IntervalZero\RTX64 SDK\3.1\VSExtentions
(5361) - RTX64 does not support AVX-512 instructions. The Intel Compiler 17.0 options listed below enable AVX-512 and should not be used to build real-time applications:
- /QxMIC-AVX512
- /QxCore-AVX512
- /QxCOMMON-AVX512
(5539)
SDK
- The compatibility rules for managed code applications built with the RTX64 SDK have changed. See the TechNote Version Compatibility Rules for RTX64 Managed Code Applications for an outline of the new compatibility rules.
NOTE: Applications built using the RTX64 3.0 or later Managed Code Framework cannot be deployed on an RTX64 2014 or 2013 Runtime.
(5235)
Breaking API changes between RTX64 3.0 and RTX64 3.1
- These new properties were added, replacing the deprecated fields (as noted) from previous versions:
- MonitorEventThreadTerminate.ThreadExitCode (supersedes field ExitCode)
- MonitorEventSriToWindows.SRIFunctionName (supersedes field FunctionName)
- MonitorEventSriToWindowsReturn.SRIFunctionName (supersedes field FunctionName)
- MonitorEventMarker.TimeStampCounterFrequency (supersedes field TSCFrequency)
- MonitorEventMarker.NumberOfWindowsProcessors (supersedes field WindowsProcessorCount)
- MonitorEventMarker.NumberOfRtssProcessors (supersedes field RtssProcessorCount)
- MonitorEventTimeQuantumExpired.ExpiredThreadID (supersedes field ThreadID)
- MonitorEventTimeQuantumExpired.ExpiredProcessID (supersedes field ProcessID)
Known Issues
Installation
- When the RTX64 2014 SDK with Service Pack 2 is installed on a machine where the RTX64 3.1 SDK is already installed, the file
IntervalZeroRtxBaseDm.xaml
is overwritten with an older version. As a result, some functionality specific to the RTX64 3.1 SDK becomes unavailable. To resolve this issue, Repair the RTX64 3.1 SDK installation. (5362) - When multiple RTX64 SDK versions (for example, RTX64 2014 with Service Pack 2 SDK and RTX64 3.1 SDK) are installed on the same system, Visual Studio support for either RTX64 version cannot be removed via Modify Install. In this scenario, you must manually remove the RTX64 Visual Studio Support add-in(s) from Visual Studio (Tools>Extensions and Updates). (5080)
Licensing and Activation
- The real-time function RtIsTcpStackLicensed returns False for applications built in the Windows Release and Windows Debug configuration modes, even when the RT-TCP/IP Stack is activated with a valid license. (5564)
Tools and Utilities
- Tracealyzer does not display VirtualAlloc Kernel Object Uses. (5563)
Developing and Debugging Applications
- An exception is thrown when you single-step or continue to completion after dragging the instruction pointer. This is a known issue with the Visual Studio debugger. (4521)
- The SDK Version in the RTSS Application and RTDLL project templates in Visual Studio appears as RTX64 3.0, rather than RTX64 3.1. (5501)
- Currently, there is no way to attach to a frozen process following an exception. (5504)
- Attempts to debug an application remotely will fail if the Target system does not have either the Visual Studio 2012 C Runtime or
msvcr110.dll
installed. For more information, see Remote Debugging with Visual Studio. Note that this does not apply to Target systems running Windows 10. (5505)