Release Notes for RTX64 4.5.5
This product update resolves the issues listed below. This is a cumulative update that contains all the features and fixes in RTX64 4.5.1, RTX64 4.5.2, RTX64 4.5.3, RTX64 4.5.4, and Update 1 for RTX64 4.5.4.
Key Features and Improvements
- Added support for Condition Variables and SRW locks. (18844)
- Added support for these Intel® processors:
- Panther Lake (Core Ultra Series 3) (18794)
- Arrow Lake (Core Ultra Series 2) (18791)
- Amston Lake Refresh (Atom 7th Gen x7809C) (17982)
RTX64 SDK
- Added APIs to support SRW locks, which provide reader/writer synchronization:
- SRWLOCK uses pointer-sized storage with embedded flags in the low bits.
- AcquireSRWLockShared acquires the SRW lock in shared mode. Multiple threads can hold the lock in shared mode simultaneously, allowing concurrent read access. If an exclusive lock is held, the calling thread blocks until the lock can be acquired in shared mode.
- AcquireSRWLockExclusive acquires the SRW lock in exclusive mode. Only one thread can hold the lock in exclusive mode at a time. If the lock is already held (in either shared or exclusive mode), the calling thread blocks until the lock can be acquired.
- TryAcquireSRWLockExclusive attempts to acquire the SRW lock in exclusive mode.
- TryAcquireSRWLockShared attempts to acquire the SRW lock in shared mode.
- InitializeSRWLock initializes an SRW lock to an unlocked, uncontended state. This function must be called before any other SRW lock operations.
- ReleaseSRWLockExclusive releases an SRW lock previously acquired in exclusive mode. If other threads are waiting, the next waiter is awakened according to the queuing policy.
- ReleaseSRWLockShared releases an SRW lock previously acquired in shared mode. If other threads are waiting, the next waiter is awakened according to the queuing policy.
- Added Condition Variable APIs that allow threads to wait for specific conditions to become true. They are always used in conjunction with a lock (either SRW lock or critical section) to protect the condition state:
- RTL_CONDITION_VARIABLE uses a pointer field that encodes a pointer to a wait entry list and the wait list being modified.
- InitializeConditionVariable initializes a condition variable to an empty state. This function must be called before any other condition variable operations.
- SleepConditionVariableCS atomically releases the critical section and waits on the condition variable. When awakened (either by signal or timeout), the critical section is automatically reacquired before returning.
- SleepConditionVariableSRW atomically releases the SRW lock and waits on the condition variable. When awakened, the SRW lock is automatically reacquired in the same mode (shared or exclusive) before returning.
- WakeConditionVariable wakes at most one thread waiting on the condition variable. The selection is in FIFO order (i.e., the first thread to wait is the first to be awakened).
- WakeAllConditionVariable wakes all threads currently waiting on the condition variable. All awakened threads will attempt to reacquire their associated locks.
Issues Resolved in Previous Updates
- Resolved a memory allocation thread contention issue encountered under stress conditions. (18667)
- Resolved incompatibilities with Windows 11 24H2 OS build 26100.5074 (from August 29) and OS build 26100.6584 (from September 9). (18582)
- Resolved instability issues with starting and stopping the Virtual Network. (18020)
- Resolved an issue where Windows Event Viewer displayed an internal informational message End of HalRtxInit! when the RTX64 Subsystem started. (18549)
- Resolved an issue where the Runtime update installation process installed all files, regardless of what was selected during the previous installation. (18530)
- Resolved an issue where fopen failed to directly access a device when passed
\\Device(18520) - Resolved an issue where RTX64 4.5.2 could not be uninstalled silently when the system was not booted into the RTX64 configuration. (18510)
- Resolved a compatibility issue with Intel® Core™ i5-12500E Processor systems running Windows 11. (18460)
- Modified RTX64 driver and INF installation to comply with Microsoft’s updated attestation signing requirements. (18453)
- Resolved an incompatibility with Windows 11 24H2 OS Builds 26100.3915 Preview and 26100.4061. (18443)
- Resolved an issue where the RtTCPIPVirtualNIC interface could not be configured after the RTX64 installation was modified to install the RTX64 Virtual Network component. (18334)
- Resolved an issue where debugging a real-time C# application in Visual Studio 2022 resulted in an error, Internal error in the expression evaluator. As a result of this fix, RTX64 managed libraries are no longer stored in the GAC. You must deploy application dependencies with your application. See the TechNote Deploying a Managed Application with Dependent DLLs, available from the Support Site, for more information. (18025)
- Resolved an issue where the RTX64 Control Panel malfunctioned on machines with a display resolution set to 1280 x 720 or below. (17931)
- Resolved an interference issue between Visual Studio and RTX64 that resulted when managed DLLs using Win32 Registry functionality were added to the Global Assembly Cache (GAC).
- Resolved an issue where some settings, including the Windows RTX64 Virtual Ethernet Adapter IP address and user-created search paths, were not restored following an RTX64 upgrade. (17900)
Notes
- When the TCP/IP Stack MaxSockets value is set to 32765, you may need to allocate more memory to the Stack. To do this, increase the Minimum size for external MSpace (kilobytes) on the Manage Memory page in the RTX64 Control Panel. We recommend allocating at least 19498.2421875 KB. When not enough memory is allocated for the Stack, performance issues can occur. (18215)
Known Issues
- RTX64 Runtime is incompatible with Windows 11 24H2 OS Build 26100.4349. If that build is installed, you must install Windows 11 24H2 OS Build 26100.4351 to use RTX64.
- Upgrading a machine to Windows 11 24H2 deletes the RTX64 boot configuration. For more information, see the TechNote RTX64 Boot Configuration Missing After Upgrade to Windows 11 24H2, available on the Support Site.
- Some RTX64 tools do not scale properly on 4K monitors. (18010)
- You may encounter a timeout error when attempting to start the TCP/IP Stack when the MaxSockets value is set to 32765. See Notes above. (18220)
- After you install RTX64 Merge Modules on Windows 11 and run the sample Advanced Installer project file, RTX64Sample.aip, it prompts you to select prerequisites to install. If you select Windows update prerequisite KB3033929 and click Next, an error appears that the prerequisite was not correctly installed. You can disregard this error. The sample Advanced Installer file will install and run without the prerequisite. (18351)