Release Notes for RTX64 2014 with Service Pack 1
Key Features
General
- Added support for Visual Studio 2013 through new template wizards and C Runtime and debugging support.
Subsystem
- Added optimizations to reduce generation of monitoring events in real-time code paths. (2870)
RT-TCP/IP Stack and Drivers
- Increased the size of datagram packets used by the RT-TCP/IP Stack from 8k to 64k. (3480)
- Added support for IGMPv3, MLDv2, and IPV6_MULTICAST_LOOP socket options in the RT-TCP/IP Stack. (3573)
- Incorporated Intel 82579 device support into the RtE1000 driver, which was previously released as a standalone driver. (3436)
Debugging
- Added Visual Studio 2012 and 2013 support for local and remote debugging of Real-time applications in Visual Studio:
- Added debugging support through launch. (1577, 3211)
- Added support for Start Without Debugging within the Visual Studio debugger. (2643)
- Added support for launching a RTSS process on a remote target system for debugging. (83, 3213)
SDK
- Added new Visual Studio templates for creating a RTSS Application and Real-time Dynamic Linked Libraries (RTDLLs).
- Added an API call RtEnumProxyProcesses, which enumerates proxy processes associated with Windows processes linked to RTAPI.
- Added a collection of code snippets for Real-Time API calls that can be inserted where you need them in your code in Visual Studio.
- Added two new Winsock API calls:
- inet_ntop – Converts an IPv4 or IPv6 Internet network address into a string in Internet standard format.
- inet_pton – Converts an IPv4 or IPv6 Internet network address in its standard text presentation form into its numeric binary form.
- Added support for additional socket options in the RTX64 Winsock API. For the complete list of supported options, see getsockopt and setsockopt. (3554)
- Added support to generate custom events using RtGenerateEvent within Windows applications. (2972)
- You can include the Preprocessor define
UNDER_RTSS_UNSUPPORTED_CRT_APIS
for RTSSDebug and RTSSRelease to see what C Runtime functions have been deprecated. For more information, see Compiler and Linker Options. (3713)
Issues Resolved
Performance
- Resolved an issue where RTX64 could not disable Intel SpeedStep® logic while a system was running on battery power. (3578)
Installation
- Resolved issues uninstalling RTX64 on Chinese versions of Windows 7. (3390)
- Resolved an issue where the RTX64 Runtime and RTX64 SDK created inconsistent RTX64Common environment variables. (3468)
Activation and Configuration
- Resolved an issue where RtssRun experienced a delay in launching an application when the dongle to which the Runtime and SDK were licensed was not inserted at boot time. (1595, 2257)
- Resolved an issue where the RT-TCP/IP Stack would not automatically start when it was licensed to a dongle and configured to auto-start. (3320)
- Resolved an issue where duplicate Tooltips would appear for different buttons in the Activation and Configuration dialog. (3372)
- Resolved an issue where the Activation and Configuration could not be used to activate the RTX64 SDK on a unicore system. (3406)
- Resolved an issue where the SafeNet dongle driver caused unnecessary network activity when checking for a remote license server. (3513)
Subsystem
- Resolved an issue where a starvation exception would cause the RT-TCP/IP Stack to freeze the Subsystem. (3338)
- Resolved an issue where repeatedly shutting down a system with the Real-time Subsystem running RTSS applications would sometimes cause the system to reboot. (3386)
- Resolved an issue where the system would hang when explicitly-loaded RTDLLs where not properly cleaned up by an application on exit. (3430)
- Ensured that the correct error message is displayed when the specified value for Local Memory Pool Size or Expand Size is too large. (3272)
- Resolved an issue where the Subsystem didn't start the RT-TCP/IP Stack when the Stack was configured to automatically start with the Subsystem. (3597)
- Resolved an issue where the Subsystem did not return AVX data in the expected registers. (3558)
- Resolved an issue where the Subsystem would sometimes become unstable after a complex RTSS application with several implicitly-linked RTDLLs, and linked to a common static LIB, ran to completion. (3373)
- Resolved an issue where calling RtCloseHandle in a loop caused a Green Screen. (3293)
Tools and Utilities
- Resolved these issues with the Control Panel:
- Resolved an issue where Control Panel settings that included a text box did not revert back to their default values while focus remained on the text box, (3245)
- Resolved an issue where the Link Status Thread Ideal Processor Control Panel setting could be greater than the number of actual processors on the machine. (3131)
- Resolved an issue where the Reset to Factory Default button in the Control Panel did not reset the Change the processor the Timer System runs on setting. (3262)
- Resolved an issue where the Control Panel would display an error message claiming the value for LocalMemoryPoolInitialSize had changed, when in fact ExpandSize was changed. (3297)
- Resolved a mismatch in accepted units for the Default Thread Time Quantum setting in the Control Panel and its Framework equivalent. (3233)
- Resolved these issues with the Monitor utility:
- Resolved an issue where the Monitor utility always displayed a PID of 0 for proxy-thread-related events. It now displays the Windows PID associated with each proxy thread. (3173, 3485)
- Resolved an issue where Create/Destroy proxy thread events in Monitor output did not contain the Proxy prefix. (3171)
- Resolved an issue where the Monitor utility did not provide a Thread ID or Process ID for threads whose time quantum expired. (3216)
- Resolved an issue where thread Time Quantum was inaccurately displayed in monitor events. (3694)
- Resolved an issue where the RtssRun Affinity Mask option was not working correctly. (3562)
- Resolved an issue where the monitor events MV_EVENT_INTERRUPT_LINEBASED_ATTACH and MV_EVENT_INTERRUPT_MESSAGEBASED_ATTACH did not include the Thread ID of the IST thread. (3670)
- Resolved issues where the following event types were not appearing in event logs:
- Fast Semaphore events (3626)
- IST Handler events (3625)
- Time Quantum Expire events (3623)
- Resolved an issue where the Monitor utility displayed an incorrect set of enabled events. (3283)
- Resolved these issues with StampTool:
- Ensured that StampTool supports binaries that contain object files from multiple versions of the RTX64 SDK. (3343)
- Resolved an issue where StampTool contained code paths that did not generate output when output was expected. (3344)
- Resolved an issue where StampTool failed when used on a RTSSDebug configuration of a program that was compiled withe Intel Compiler 14 and that included C++ implementations of Try/Catch statements. (3601)
- Resolved an issue where some StampTool output messages were missing a trailing newline character. (3360)
- Resolved these issues with Task Manager:
- Resolved an issue where Task Manager would not immediately start when launched. (3387)
- Ensured that Task Manager displays the full path of a RTSS binary. (2819)
- Resolved an issue where Task Manager would sometimes crash when it and the RTX64 Control Panel were open at the same time and the RT-TCP/IP was re-started several times in succession. (3089)
- Resolved an issue where Task Manager displayed duplicate entries for an RTSS application that started the Subsystem when it was launched. (3642)
- Resolved an issue where RtxServer would sometimes fail to write to the log file when logdatatofile was enabled. (2504)
- Resolved an issue where the
winsock2.h
andws2tcpip.h
includes were not being added to the header file when RT-TCP/IP support was selected in the RTX64 DLL template dialog (3728). - Resolved an issue where RtssArp -s failed when a MAC address was specified that contained the dash in "-s". (3418)
- Resolved an issue where KSRTM would crash when the
/p
flag was specified. (3332) - Resolved an issue where the KSRTM flag
/u
was not working properly. (3333)
RT-TCP/IP Stack and Drivers
- Resolved an issue where, when the VirtualNIC interface was deleted, it could not be re-added through the Control Panel while the RT-TCP/IP Stack was stopped. (3132)
- Resolved issues where pings from RTX64 to Windows with the Rt82580 driver, used by the i340 NIC, would not always succeed. (2650)
- Resolved an issue where the RT-TCP/IP Stack would close a handle in an incorrect process context. (3383, 3399)
- Increased the default number of send/receive UDP datagrams in the Stack from 32 to 1024. (3615)
- Resolved an issue where a system hang occurred when the RTX64 Virtual Network was enabled while a RTK driver was running. (3547)
- Resolved an issue where the RTX64 tab appeared in the Properties dialog for devices that had not yet been converted to RTX64 control. (2681)
- Resolved an issue where the VirtualNIC interface could not be added once it had been deleted from the Control Panel when the RT-TCP/IP Stack was stopped. (3140)
- Resolved an issue where Jumbo packets were not working with the Intel® 82579LM Gigabit Network Adapter. (3627)
- Resolved an issue where running RtTcpipServer and RtTcpipClient on a loop-back connection caused a Blue Screen. (3512)
- Resolved an issue where NIC drivers would not build due to undefined macros. (3502)
- Resolved an issue where not all of the 4 interfaces of a 4-port Intel® I350 Quad/Dual PCIe Copper Ethernet Controller would start once the card was configured. (3461)
- Resolved an issue where the Client/Server sample returned Bad IP header errors when the RtRtl8168 driver was used as the client or server. (2383)
- Resolved an issue where the RT-TCP/IP Stack output tfUnLock: Lock is Corrupt errors. (2380)
- Resolved an issue where Realtek drivers would fail to initialize when two or more interfaces were enabled. (2295)
- Removed the limitation that the highest physical address of contiguous memory allocation could not be more than 0xFFFFFFFF for all non-Realtek drivers, (2292)
- Resolved an issue where the RtIGB driver did not allocate from cache, which may have resulted in performance issues. (3412)
Debugging
- Resolved an issue where you could not set a breakpoint in a RTDLL that was loaded multiple times but only freed once. (2724)
SDK
- Ensured that the function RtndTransmit returns the correct error if no link is found. Previously, it always returned -1, (3117)
- Resolved an issue with the function RegQueryValueEx where memory was not freed in cases where memory allocation was successful. (3353)
- Resolved an issue where executing RtPrintfs at a high rate caused a Blue Screen. (3427)
- Improved error checking in Heap management APIs (3428):
- HeapAlloc
- HeapCreate
- HapDestroy
- HeapFree
- HeapReAlloc
- HeapSize
- Resolved an issue where the state of global data maintained by dynamic-link libraries (DLLs) may have been compromised when RtTerminateProcess was used rather than ExitProcess. RtTerminateProcess now handles DLLs appropriately. (1992)
- Resolved an issue where RTX64 called DLL_PROCESS_DETACH when TerminateProcess was called on a RTSS process linked to an implicit or explicit RTDLL. (3409, 3515)
- Resolved an issue where the return value for WideCharToMultiByte did not count the NULL terminator. (3593)
- Resolved an issue where a delayed return was sometimes encountered when RtCloseHandle was called on a process with an implicitly-linked RTDLL. (3289)
- Resolved an issue where the following RTK APIs always returned the last error regardless of a function's success or fail outcome (3774):
- RtkCreateMutex
- RtkOpenMutex
- RtkCreateSemaphore
- RtkOpenSemaphore
- RtkCreateEvent
- RtkOpenEvent
Samples
- Fixed a typo where the preprocessor macro _M_AMD64 included an erroneous trailing underscore: _M_AMD64_ (3217)
- Added a parameter to the SRTM sample to make it multiple-instances aware:
/n num
(wherenum
is the total number of instances). (3535) - Ensured that all provided samples build without warnings. (2763)
- Ensured that all provided samples build for Windows configurations with Debug enabled. (3447)
- Resolved an issue where the Rtdll sample project contained build output paths that were hard-coded. (3402)
- Resolved an issue where the IPCLatency application resulting from the IPCLatency sample displayed an error when a forward slash (/) was specified. (3315)
- Resolved an issue where RtTcpipClient test results calculated percentage from total packages expected to be sent rather than total packages actually sent. (3239)
- Resolved an issue where the RtPerfMonitor and RtPerfMonitorEx projects could not be built simultaneously via batch. (3202)
- Resolved an issue where the executable resulting from the IntelProE1000 sample program caused an exception when it was run. (3045)
Notes
- Programming samples are installed to a different location than in previous versions. They are now accessible from
%public%\Documents\Intervalzero\RTX64 SDK\2.1\Samples
. - Driver source is installed to a different location than in previous versions. It is now accessible from
%public%\Documents\Intervalzero\RTX64 SDK\2.1\DriverSource
. - The text of the RTX64 Analyzer output file displays the Visual Studio version number (e.g., Visual Studio 11.0), not the version year. (VAN-3656)
- If the Interrupt Thread Priority for a driver is configured to a value that is less than the priority of the application thread that sends data, it can result in a lockup of the device interface. This could also potentially occur if the Receive Thread Priority value is less than the Interrupt Thread Priority value. (3685)
- If the Remote System Name you provide is invalid, the following error is encountered: The Microsoft Visual Studio Remote Debugging Monitor (MSVSMON.EXE) does not appear to be running on the remote computer. More appropriately, the Visual Studio Remote Debugger service on the target computer cannot connect back to this computer. The debugger is unable to resolve the specified computer name. (3695)
- The IntervalZero Real-Time Debugger doesn't allow attaching to a process or detaching from a process (you can only debug a process that was launched by the debugger).
- The IntervalZero Real-Time Debugger does not display the Process ID (PID) for RTSS processes being debugged in the Threads window. A GUID is displayed instead. This is expected behavior when Visual Studio is used to debug a non-Windows process. The PID is displayed in the Output window. (3757)
- The IntervalZero Real-Time Debugger Threads window will display the thread priority as Unknown if the numeric value is outside the range of a valid Windows thread priority. (3760)
- The IntervalZero Real-Time Debugger does not support Single-Step after Break All is used. To work around this, set a breakpoint in the application and press F5.
- AVX2 is not supported by Visual Studio 2012 or Visual Studio 2013. As a result, there is no way to view the AVX2 registers in the IntervalZero Real-Time Debugger.
- The Intel® 82545GM MT Server Adapter (Device ID 0x1026) is no longer supported. (3696)
- The default value for an IP fragment waiting to be reassembled is 60 seconds. This might cause a problem if UDP or ICMP packets, fragmented over IP protocol, are sent to a RTX64 device at a fast rate, allowing the 16 bit ID field in a packet IP header to wrap-around faster than 60 seconds. When this occurs, the RT-TCP/IP stack might attempt to reassemble the stale fragments of previously received incomplete packets with fragments of a newly received packet, resulting in corrupt packets. To resolve this issue, we recommend that you decrease the IP Fragment Timeout value so that it is less than the wrap-around time in an IP ID field. For instructions, see TechNote: RT-TCP/IP Stack UDP Warnings.
- RTX64 does not support x2APIC. However, Windows 8 and above may boot into x2APIC mode if the system supports x2APIC. To use RTX64 on these systems, you must either disable x2APIC in the BIOS or select xAPIC if allowed to choose between xAPIC and x2APIC. (3223)
- The exception handling option Halt System and Dump Memory is not compatible with debugging. In order to debug an RTSS application, you must enable the Use Structured Exception Handling setting in the RTX64 Control Panel. (VAN-3362)
- In order to load a Windows memory dump file from RTX64 2014 in the RTX64 2014 with Service Pack 1 WinDBG Extension, you must first copy the subsystem .PDB files from RTX64 2014 to the RTX64 2014 with Service Pack 1 setup.
Known Issues
- RTX64 does not support RTDLLs based on ordinal number binding.
- Binaries built with RTX64 2014 with Service Pack 1 that link in the RT-TCP/IP library (
RtTcpip.lib
) will not run on the RTX64 2014 Runtime. (VAN-3808) - The Windows Virtual RTX64 Ethernet Adapter is incorrectly set to Disabled in the Windows Network and Internet > Network Connections dialog even when it is configured correctly. (3465, 2571)
- You cannot debug multiple RTSS processes from a single instance of Visual Studio. You can debug multiple processes simultaneously using multiple Visual Studio instances. For more information, see Debugging Multiple Processes Simultaneously. (3542)
- When sendto or send is called on a UDP socket with data length larger than 65527 bytes (the maximum allowed data payload over UDP), the RT-TCP/IP Stack sends out a fragmented IP packet with the wrong length in the UDP header. (3686)
- The RTX64 Activation and Configuration utility erroneously accepts RTX 2012 licenses. (3651)
- The Monitor Utility does not monitor all proxy threads that are created. (3746)
- When the RTX64 SDK is installed but not the Runtime, the Help documentation does not appear when F1 is pressed or the Help button is selected in the Activation and Configuration dialog. (3701)
- The IntervalZero Real-Time Debugger does not support hard-coded (embedded) breakpoints or data breakpoints.
- The IntervalZero Real-Time Debugger does not support Function Evaluation (FuncEval), which is used to manually call a function.
- The IntervalZero Real-Time Debugger does not support exporting the thread affinity to Visual Studio. All threads run on the default processor.
- An error appears when you attempt to install the RTX64 2014 Runtime after you:
- Install the RTX64 2014 Runtime with Service Pack 1.
- Install the RTX64 2014 SDK with Service Pack 1.
- Uninstall only the RTX64 2014 Runtime with Service Pack 1 (the SDK remains installed).
(3793)
- Settings for the Windows RTX64 Virtual Ethernet Adapter cannot be changed while the RTX64 Virtual Network is enabled and the RT-TCP/IP Stack is running. (3856)
- RtndFrameAllocate only works when called from the filter driver. RtndAllocateFrame returns NULL, with GetLastError equal to 6, when called from an RTSS application.