Release Notes for RTX64 2014 with Service Pack 2
Key Features
General
- Added support for Windows 8.1 with Update (3220, 3221).
Activation and Configuration
- Added support for smaller form factor dongles that can hold license files. (3394)
- Added functionality to provide dongle information through command line utilities and API calls. (3880)
Subsystem
- You can now configure a Search Path to allow RTX64 to load an RTSS application or RTDLL by base filename only, assuming one of the directories in the search path contains the file you want to load. (3895, 3709, 2027)
Tools and Utilities
- Added a new RTX64 CPU Usage utility, which displays CPU usage information for all RTSS cores on the system. (3782)
- Added a new RTX64 Objects utility, which displays information about RTSS processes and their associated objects, such as events, semaphores, and loaded RTDLLs. (3454)
Monitoring
- Provided the ability to associate a monitor event with a trigger to start monitoring (2971)
- Improved the Timer Set monitoring event to include fields for Expiration Period and Interval Period. (3302)
- Redesigned RTX64 Monitor and added support for the optional association of monitor events with triggers. (3376)
- Added new memory free failure events to the Monitor utility:
- Local Memory Free Fail – Represents failed freeing of local memory.
- TLS Free Fail – Represents a failed call to TlsFree by a user application.
- Heap Free Fail – Represents failed freeing of memory via HeapFree.
- Contiguous Memory Free Fail – Represents failed freeing of contiguous memory
- Windows Memory Free Fail – Represents failed freeing of memory to Windows.
(3410)
RT-TCP/IP Stack and Drivers
- Added support for the Intel Gigabit ET2 Quad-Port driver. (3323)
- Added support for the Intel i217 and i218 Network Interface Cards (NICs). (3711, 3228, 3100)
Debugging
- Added new debugging properties to application Property Pages in Visual Studio. You can:
- Choose to override default subsystem behavior to allocate memory from the RTX64 local memory pool, which uses deterministically allocated memory.
- Set the ideal processor on which the main thread of the debugged process will run.
- Set the affinity mask that specifies the processor(s) on which the debugged process will run.
(3848)
SDK
- Added new API functions that list the serial number for each dongle connected to the machine. (2676)
- RtGetDongles
- GetDongles (available from the Managed Code Framework)
- Added two new API functions that retrieve information about licenses installed on the system. (3034)
- RtGetLicenses
- RtkGetLicenses
- Added new API functions that verify whether a specified RTX64 Runtime or RT-TCP/IP Stack version is installed and licensed:
- RtIsRuntimeLicensed – Verifies that a specified RTX64 Runtime is installed and has a valid license.
- RtIsTcpStackLicensed – Verifies that a specified RTX64 RT-TCP/IP Stack component is installed and has a valid license.
- Added support for an IP Helper function and structures:
- GetAdaptersAddresses, which retrieves the addresses associated with the adapters on the local computer.
- IP_ADAPTER_ADDRESSES, which is the header node for a linked list of addresses for a particular adapter.
- IP_ADAPTER_UNICAST_ADDRESS, which stores a single unicast IP address in a linked list of IP addresses for a particular adapter.
(3536)
- Expanded the enumeration RTX64_MONITOR_CONTROL_OP to include operations for setting and resetting triggers for monitoring events:
- MONITOR_CONTROL_SET_EVENT_TRIGGERS – Deterministically sets triggers for monitoring events.
- MONITOR_CONTROL_RESET_EVENT_TRIGGERS – Deterministically resets (i.e., turns off) triggers for monitoring events.
- MONITOR_CONTROL_SET_CUSTOM_EVENT_TRIGGERS – Deterministically sets triggers for custom monitoring events.
- MONITOR_CONTROL_RESET_CUSTOM_EVENT_TRIGGERS – Deterministically resets (i.e., turns off) triggers for custom monitoring events.
(4139)
- Added Seek functionality to the Monitoring API. (3819)
Samples
- Added a new SimpleProducerConsumer sample that demonstrates performance impact caused by CPU cache. The sample builds two applications: a consumer and a producer. (2774)
- Added a new RTX64Config sample that contains a subset of the source code for RTX64Config, the command-line tool for configuration and control of the RTX64 Runtime component. This sample demonstrates how to use the RTX64 Managed Code Framework (IntervalZero.RTX64.dll), which provides programmatic access to all RTX64 configuration and control operations. (2834)
Issues Resolved
Installation
- Resolved an issue where the RTX64 Virtual Network interface was not created on upgrade. (2702)
- Resolved an issue where the installer attempted to repair the RTX64 installation when certain programs were run from locations other than
%RTX64Dir%\bin
. (4029) - Resolved an issue where installations using the RTX64 Merge Modules did not correctly create the RTX64 boot line. (4113)
- Resolved an issue where the installation would fail with error 1720. (3766)
- Modified our power policy for laptops to improve performance. (3888, 3917)
- Resolved issues around upgrading from previous releases. (3997, 3929)
Activation and Configuration
- Resolved an issue where the RTX64 Activation and Configuration utility could sometimes take several moments to launch, even when RTX64 had not yet been licensed. (3818)
- Resolved an issue where license expiration warnings were not being displayed for RTX64 Runtime- and/or RT-TCP/IP Stack-related components. (3182)
- Resolved multiple issues that occurred when a dongle was not plugged in at system start. (3937, 3938)
- Resolved an issue where attempts to eject an USB device from some USB drives while the RTX64 license service was running would result in an error that the drive was in use and could not be ejected. (3735, 4037)
Subsystem
- Resolved an issue where the Subsystem could not be stopped while the RT-TCP/IP Stack was running and the RtVirtualNic RTX64 interface was not enabled. (3960)
- Resolved an issue where starting and stopping the Subsystem repeatedly would sometimes cause system instability. (2731, 3555, 3224)
- Resolved an issue with how the Subsystem queried the registry that prohibited the Subsystem from starting in some instances. (3923)
- Resolved an issue where high Windows IPI activity sometimes caused jitter within RTSS processes. (3747)
- Added support for the use of the Windows driver verifier tool on key drivers. (3577)
- Resolved issues around Windows 8.1 shutdown that occurred while RTX64 was running. (2000)
Tools and Utilities
- Resolved an issue where the RTX64 SDK Welcome Screen appeared after reboot even when the Don't show this again check box had been selected. (3652)
- Resolved an issue where the Help documentation did not appear when F1 was pressed or the Help button was selected in the Activation and Configuration dialog when the RTX64 SDK was installed but not the Runtime. (3771)
- Resolved these issues with the Control Panel:
- Resolved an issue where the default Timeout value for the Monitor for runaway threads setting was incorrectly set. (3263)
- Resolved an issue where the amount of memory allocated for the RT-TCP/IP Stack could exceed the memory available on the machine. (3261)
- Resolved an issue where the RTX64 Control Panel accepted values that were outside the supported range. The Control Panel now displays an error message when an unacceptable value is entered. (3231)
- Resolved an issue where attempts to launch the RTX64 Control Panel immediately after booting the system resulted in a delay. (3853)
- Resolved an issue where the Subsystem could sometimes not be stopped immediately after it was started from the Control Panel. (3038)
- Resolved an issue where Link Status fields were configurable even when Link Status was disabled. (3135)
- Resolved an issue where the allowable range of values for Stack Maximum Transmission Unit (MTU) was inconsistent between the Control Panel and RTX64Config. (3739)
- Resolved an issue where RtssRun failed to run an application that was built with an Evaluation version of the RTX64 2014 SDK when the RTX64 license file on the system or dongle contained a Retail license for the RTX64 2013 Runtime and an Evaluation license for the RTX64 2014 Runtime. (3866)
- Added the flag
/showrttcpip
to RtssKill, which displays the RT-TCP/IP Stack ID. (2381) - Resolved an issue where the StampTool flag
/info
always reported that the binary was built with RTX64 2014 with Service Pack 1, regardless of the version that was actually used. (3914) - Resolved issues where a Blue Screen would sometimes occur when RtssKill was used to terminate a RTSS application that used the RT-TCP/IP Stack. (3295)
- Resolved these issues with RTX64 Task Manager:
- Resolved an issue where the RTX64 Task Manager did not work correctly after it was terminated by the Windows Task Manager. (3322)
- Resolved a memory leak in the RTX64 Task Manager. (3811)
- Resolved an issue where the RT-TCP/IP Stack could not be stopped by RTX64Config when the Stack was configured to start automatically. (3442)
- Resolved these issues with RtssPing:
- Resolved an issue where RtssPing did not work with IPv6. (3103)
- Resolved an issue where pings continued to print indefinitely when RtsKill was used to terminate RtssPing. (3258)
- Resolved these issues with the Monitor utility:
- Ensured that a Heap Allocate Fail event is generated when HeapAlloc is called with a size that is greater than the maximum size of the heap. (3290)
- Resolved an issue where converted monitoring session data was missing standard linefeed characters. (3740)
- Improved error reporting of the RtssArp utility. (3108)
- Resolved these issues with the RTX64 Analyzer:
- Resolved an issue where the RTX64 Analyzer produced an empty log file when it was run from the Start menu. (4034)
- Expanded the text of the RTX64 Analyzer output file to include the current registry settings for:
- Search Path directories
- Multiple Interrupt Level [Inter-Processors Interrupt (IPI) communication between RTSS and Windows]
- Maximum ARP entries
(3901, 3910)
RT-TCP/IP Stack and Drivers
- Resolved an issue where terminating the RT-TCP/IP stack with RtssKill would cause the system to hang. (2382)
- Resolved an issue where the RT-TCP/IP Stack ignored the PreferMsi value. (3984)
- Resolved an issue where two Proxy Thread Create events were generated for the same thread. (3607)
- Resolved an issue where the RT-TCP/IP Stack and Subsystem could not be stopped after WSAStartup was called multiple times. (3915)
- Resolved an issue where the Subsystem could not be stopped when the Virtual Network was enabled and a physical NIC was configured. (4033)
- Resolved an issue where the stack would display an error message when the stack was busy and RtndFrameTransmit was called. (3821)
- Modified the Connect timeout to 15 seconds to match Windows stack behavior. (2847)
- Increased the maximum number of ARP entries to 256. This value can be configured. See the related RTX64 TechNote for more information. (2790, 3419)
- Resolved an issue where a debug message pops up when starting the stack with the Intel i350 Quad NIC. (3881)
- Improved cleanup logic for cases where WSACleanup is not called within an application that has called WSAStartup. (3952)
- Resolved the issue where, if you configured the RT-TCP/IP Stack to start with the Subsystem, and memory allocation behavior was configured to Request from local memory pool (deterministic) through the Control Panel, and the Auto expand check box was not also selected, the Stack would not start due to lack of memory. (3324)
Debugging
- Resolved an issue where the exception handling option Halt System and Dump Memory was not compatible with debugging. (3362)
- The Threads window in Visual Studio now displays the Thread Affinity for a given thread. (3753)
SDK
- Resolved an issue where the Real-time API RtTranslateBusAddress behaved unexpectedly when it was passed invalid parameters for pAddressSpace and pTranslatedAddress. (3444)
- Resolved an issue where RtMonitorControl returned the wrong value when used to disable Session Marker events. (3697)
- Resolved an issue where RtnIsDeviceOnline did not return the correct value. (3825)
- Resolved data corruption issues in RtnReceive. (3843)
- Resolved an issue where RtPrintf and RtWprintf did not always output all lines of text to the Server console window. (3857)
- Resolved an issue where RtGetClockTime was not synced among Windows cores when used in a Windows application. (4000)
- Resolved a clock drift issue with RtSetClockTime and RtGetClockTime. (3994)
- Resolved an issue where HeapFree succeeded when it should have failed. (4172)
- Exposed the Socket options for Maximum number of queued sent and received datagrams on non-tcp socket (TM_SO_SND_DGRAMS, TM_SO_RCV_DGRAMS). (2647)
Samples
- Added synchronized thread monitoring and cleanup to the Mailbox sample, ensuring that the threads terminate properly. (3665)
- Resolved an issue where the RtEthernetFilter sample would overwrite the source MAC address. (3974)
- Resolved an issue where the RtTcpIpServer sample reported a inet_pton warning. (3781)
- Resolved an issue where the RtTcpIpClient results were incorrectly calculated. (3569)
Notes
- Our new policy of unloading RTK every time the stack stops causes the Windows Set Network Location dialog to pop up when the RT-TCP/IP stack is started and the Virtual NIC is enabled. (3796)
- The Intel Pro/100MT Server Adapter is no longer supported as of this release. (3720)
- Windows 8.0 is no longer supported as of this release.
- Programming samples are installed to a different location than in previous versions. They are now accessible from
%public%\Documents\IntervalZero\RTX64 SDK\2.2\Samples
with this release. - On machines running Windows 8.1, you must disable the Fast startup option when RTX64 is set to Automatic startup. To do this, follow the steps in the topic Changing the startup type. (3874)
- When you upgrade your operating system, you must uninstall and then reinstall RTX64 after the OS upgrade. (3999)
- A RTSS application built using a particular version of the RTX64 Managed Framework DLL must have that very same version of the RTX64 Managed Code Framework installed in the Global Assembly Cache (GAC) in order to run. To assist customers with meeting this requirement, we provide redistributable copies of the RTX64 Managed Code Framework. As of RTX64 2014 with Service Pack 2, the version of the Managed Code Framework is independent from the Subsystem.
NOTE: If you remove a given version of the RTX64 Managed Code Framework from the Global Assembly Cache (GAC), applications that require that version of the framework will no longer work.
(3900)
- Visual Studio 2012 projects cannot load
lib
files compiled in Visual Studio 2010. Attempts to do so result in error _MSC_VER. (4254) - Non-deterministic Real-time API (RTAPI) and C Runtime functions will be blocked indefinitely by Windows Stop. (1245, 2764, 4064)
- The CPU usage displayed in the Task Manager in Windows 8.1 includes the duration when Windows idle detection is disabled. To eliminate jitter with RTSS timer response latency, we recommend that you disable Windows idle detection. As a result, you may see 100% CPU usage in the Windows Task Manager when the Subsystem is running. There is no side effect on Windows load balancing for this type of 100% CPU usage. (3890)
- RTX64 no longer creates Start tiles for its components on Windows 8.1. To access RTX64 components on Windows 8.1, go to Windows Apps menu and then navigate to the RTX64 2014 section and select the appropriate tile. (4332)
- Beginning with this release, the RTX64 Virtual Network Interface is disabled by default upon installation. (4259)
If you are upgrading to RTX64 2014 with Service Pack 2, the RTX64 Virtual Network Interface will be disabled after the upgrade completes, even if it was enabled in the previous release.
- The following license related functions have been marked as deprecated, and will be removed in a future release:
- RtGetLicenseFeatureStatus
- RtGetLicenseFeatureStatusEx
To retrieve information about licenses installed on the system, use RtGetLicenses.
Known Issues
- The RTX64 loader does not support loading RTSS and RTDLL files that have pathnames containing Unicode characters with code points greater than 255. These characters include all Japanese, Chinese, Greek, Hebrew, Cyrillic, and Korean characters, as well as characters from many other non-Latin languages. (3354)
- The Subsystem cannot be stopped while the Windows Virtual RTX64 Ethernet Adapter is disabled. (3964)
- RegCreateKeyEx will fail to create or open a registry key if the parameter hkey is not one of the following two standard pre-defined registry hive keys: HKEY_LOCAL_MACHINE or HKEY_USERS. (4070)
- RtssRun occasionally hangs when it starts a CPU-intensive process. (4065)
- You can manually configure the following through the registry settings:
- Multiple Interrupt Level [Inter-Processors Interrupt (IPI) communication between RTSS and Windows]
- Maximum ARP entries
See the related TechNote for instructions. (3897)
- Real-time priority values are displayed in the Debugger Threads window in Visual Studio as Unknown. However, priority values are displayed in the Output window when the Threads window is also open. (3812)
- Socket Select Timeout is mis-timed. If the total time is less than one millisecond, select will return immediately. (3982)
- RTX64 does not work with the Windows 8.1 Fast Startup option. This option must be disabled. Attempts to enable Automatic start of the Subsystem through the Control Panel while Windows is configured for Fast Startup will result in an error. (3920)
- RtPrintf cannot be used in a shutdown handler, as it may cause the process to freeze. (4064)
- The RTX64 Runtime does not work on systems that have Windows update KB3004394 installed. This update must be removed before you can use the RTX64 Runtime. (4053)
- The RTX64 Subsystem must be stopped before you make changes to any property of the Windows Virtual RTX64 Network.
- Multiple LoadLibrary calls from a RTSS application to load RTDLLs with identical names but different paths will always load the first RTDLL. (4150)
- On machines running Windows 8.1, RTX64 environment variables
RTX64SDKDIR2
andRTX64Common
may not be visible in Windows Explorer following installation of the RTX64 SDK. If you encounter this issue, sign out of Windows and then sign back in. (4214) - The Intel® I350 controller does not setup MSIX. You must configure the device to use MSI. (4291)
- The Control Panel allows you to add directories that exceed the 253 character limit to a search path. A directory and file name combination that exceeds this limit will result in error Invalid handle. (4300)
- If Microsoft .NET 4.5.1 is not already installed on your machine, the RTX64 Runtime and SDK installers will install it for you. Following installation, however, an erroneous prompt appears, advising you to restart your system "for the configuration changes... to take effect," before any configuration changes have been made. To work around this, do the following:
- Click No in the message prompt.
- In the Activation and Configuration utility, activate your RTX64 components and configure system processors.
- Once you have finished configuring the system, the same restart prompt appears again. This time, click Yes to restart your system.
- After you install RTX64 on a Windows 8.1 system, configure RTX64, and restart the system as prompted, a Windows restart prompt may appear and then reappear after every subsequent system startup: You must restart your computer to apply these changes. RTX64 will run as expected if you choose to Restart Later. (3957)
- Renaming files in the
RTX64/bin
directory (commonlyC:\Program Files\IntervalZero\RTX64\bin
) causes Windows to attempt to repair the RTX64 installation, which can have negative consequences. To safeguard against this, we recommend that you do not rename files in theRTX64/bin
directory. (3929) - Running a RTSS application that was built in RTSSDebug mode with the C-Runtime included may cause a Blue Screen. To work around this issue, do not include
libcmtd.lib
in the RTSSDebug configuration. For more information, see Compiler and Linker Options. (4327) - RtssRun does not return an error when an invalid affinity or processor number is given in a run command. (4322)
- When you try to activate a RTX license using the RTX64 Activation and Configuration dialog, an error message appears that instructs you to insert a different dongle. To avoid this issue, use the RTX Activation and Configuration dialog to activate RTX licenses. (3722)
- Known issues with the Intel® 82574L Gigabit Ethernet Controller (4334):
- Link status functionality does not work in MSI-X mode (the RTX64 default). Link status interrupts work correctly in MSI mode.
- The Intel® 82574L Gigabit Ethernet Controller could run out of transmit buffer descriptors, which could potentially cause the controller to malfunction. See the related TechNote for instructions on how to work around this issue.