Release Notes for RTX64 3.3
Key Features
General
- Added support for Multiple Vector Interrupts in MSI-X. (1575, 5826)
Installation
- Added
rt64base.h
andrtx64Base.cs
, which contain compiled variables that need to shared between executables, to the RTX64 installers. (5877)
Licensing
- Added the ability to activate RTX64 product components using a fingerprint file even when the machine is connected to the Internet. (4441)
Tools and Utilities
- Added a new tool,
RTX64ReadDongle.exe
, which lists the contents of a small form-factor dongle. The tool is available for download from the Support site. (4451)
SDK
- Expanded existing and added new Real-time functions to support Multiple Vector Interrupts (1575):
- Added a new AttachVersion type, ATTACH_MESSAGE_BASED_MULTI_VECTOR, to the structure ATTACH_INTERRUPT_PARAMETERS used by RtAttachInterrupt, which allows the user to attach to message-based multiple vector interrupts.
- RtGetPciMsixFreeMessages returns a PCI device’s MSI-X free messages (the MSI-X table entries available for attaching messages).
- RtQueryProcessorVectorFreeCount queries the number of RTSS processor vectors (Interrupt Descriptor Table vectors) currently available for attaching interrupts.
- Added a new Real-time function, RtOpenThread, which opens an existing thread object and returns a handle to that thread object. (4667)
- Added new Real-time functions for Clock Adjustment, allowing the setting and retrieving of the APIC counts that make up the RTX64 HAL timer period (5702):
- RtGetHalTimerPeriodCounts
- RtSetHalTimerPeriodCounts
- Added a new Real-time function, RtGetThreadStack, that retrieves the thread stack parameters for an existing thread object. (1639)
- Added support for the C Runtime library call strftime. (5424)
Samples
- Added the new sample MultiVectorI350, which provides an example of using Message Signaled Interrupts (MSI-X) with multiple vector attachment on Intel Ethernet Controller I350 with Dual or Quad ports. (1575)
Issues Resolved
Installation
- Improved the uninstall process to avoid scenarios where an uninstall could be recorded even when the uninstall attempt failed. (5582)
-
Resolved an issue where renaming files in the RTX64/bin directory (commonly C:\Program Files\IntervalZero\RTX64\bin) caused Windows to attempt to repair the RTX64 installation. (4323)
- Resolved an issue where the RTX64 SDK installer did not install the Visual Studio 2017 extension
RTX64VSSupport.vsix
on machines where Visual Studio 2017 Community Edition was installed. (5606, 6095)
Licensing
- Resolved an issue where RTX64 3.x components were displayed in the Activation and Configuration utility as being of version 3.0. (5479)
Subsystem
- Resolved issues regarding interrupt codes within the Subsystem: (5502)
- Multiple vector types that were not unique could attach to the wrong interrupt object.
- For sharing the same line-based IRQ, if the interrupt affinity mask of the 2nd call of RtAttachInterrupt is not the same as the first one, the second call will error out.
- Resolved an issue where Thread IDs (TIDs) were not being logged in Windows Event Viewer following an application crash. (5541)
- Resolved an issue where the Subsystem crashed on reboot when the TimeQuantum and HALTimerPeriod values were the same and the RT-TCP/IP Stack was enabled. (5995)
Tools and Utilities
- Resolved an issue where RtssRun misrepresented the processor affinity mask value in its error messaging. (5366)
- Resolved an issue where RtssRun did not give an error message when given an invalid processor number. (5367)
- Resolved an issue where RtssRun reported "file not found" when provided with a correct relative pathname to an RTSS application. (5369)
Application Debugging
- Resolved an issue where hooking to KeEnableWatchdogTimeout, used for WinDbg debugging, failed after the Windows 10 ntoskrnl.exe update (7/7/2017) was applied. (5945)
Samples
- Resolved an issue where the source project for the RtRtl8168 driver was missing several header files needed to build. (5627)
SDK
- Resolved an issue where file content was overwritten when fopen was used to open a file in append mode. (5951, 5745)
- Resolved an issue where RtWaitForSingleObject and RtWaitForMultipleObjects could not did not work correctly with timeout values above 2^32 / 10000 (429496) milliseconds. (5346)
-
Resolved an issue where the header file Rtapi.h contained an invalid ASCII character. (6072, 6036)
Installation
- The Visual Studio 2012 C Runtime library must be installed on the Target system for Remote Debugging to work, no matter what version of the Visual Studio remote debugger tools is installed. Previously, if this was not already present on your system, you had to manually add it to the Target system. In RTX64 3.3 and later, you will be prompted to install it as part of the Runtime installer. (5497)
SDK
- The following Real-time API functions were removed from header file
Rtapi.h
and added to header fileRtssApi.h
(5871): - RtAcquireFastSemaphore
- RtGetCountFastSemaphore
- RtInitializeFastSemaphore
- RtReleaseAllFastSemaphore
- RtReleaseFastSemaphore
- RtGetCurrentProcessorNumber
- RtGetThreadTimeQuantum
- RtSetThreadTimeQuantum
- The Real-time function RtAttachShutdownHandler was changed to return a NULL handle when the function fails. Previously, the function returned INVALID_HANDLE_VALUE on failure. (5324)
- The RTX64 Runtime Compatibility Support Package must be installed when a managed Windows application is deployed on a RTX64 3.x Runtime that is of a different version than the RTX64 3.x SDK that was used to build the application. Managed Windows applications built with a RTX64 3.x SDK cannot be deployed on a RTX64 2013 or RTX64 2014 Runtime (and vice versa). The RTX64 Runtime Compatibility Support Package is available from the Support site. (5836, 5800)
Known Issues
Subsystem
- The RTX64 Subsystem can become unstable when the operating system is shut down before the Subsystem has had a chance to start up completely. To avoid this, do not attempt to shut down the operating system before the RTX64 Subsystem is completely started. (6152)
RT-TCP/IP Stack and Drivers
- When a RTX64-controlled Network Interface Card (NIC) that has never been controlled by Windows is converted to Windows control, the following error appears: This device cannot start. (Code 10). This only happens when Windows automatically updates the NIC to use the RTX64 network driver. This issue is specific to Windows 7. (5749)
Tools and Utilities
- RTX64 tools will hang and become unresponsive if a CPU-bound process is running on the first core assigned to RTX64. (5553)