API Changes Between RTX64 3.x and RTX64 4.x
This topic outlines the APIs included in the RTX64 3.x SDK that were enhanced, changed, or removed in RTX64 SDK versions 4.x.
This section lists the APIs included in the RTX64 3.x SDK that were enhanced with non-breaking changes in RTX64 4.x SDK versions.
Enhanced Real-Time APIs
RTX64 3.x API | RTX64 4.4 and later |
---|---|
RtnRemoveStaticRoute |
Renamed the parameter:
|
RtnInstallStaticRoute |
Renamed the parameter:
|
RTX64 3.x API | RTX64 4.0 and later |
IP_ADAPTER_ADDRESSES |
Added support for these members:
|
MF_EVENT_KIND | Updated event MF_EVENT_KIND_PROCESS_CREATE to include information on Local Memory MSpaces. |
RtUpdateProcThreadAttribute |
Added new attributes:
|
Enhanced Native Framework APIs
RTX64 3.x API | RTX64 4.4 and later |
---|---|
RTFW_INTERRUPT_TYPE |
Added a new member:
|
RTFW_NETWORK_INTERFACE |
Added a new member:
|
RTX64 3.x API | RTX64 4.0 and later |
RTFW_SCHEDULED_PROCESS |
Added new members:
|
Enhanced Managed Framework APIs
RTX64 3.x API | RTX64 4.4 and later |
---|---|
IntervalZero.RTX64.Config.NetworkInterface.InterruptType enumeration |
Added a new member:
|
IntervalZero.RTX64.RTX64Exception class |
Added a new sub-class:
Added new constructors:
Added new properties:
|
IntervalZero.RTX64.Config.Subsystem class |
Added new method:
|
IntervalZero.RTX64.Config.NetworkInterface class |
Added a new property to method CreateNetworkInterface:
|
RTX64 3.x API | RTX64 4.0 and later |
IntervalZero.RTX64.Config.ScheduledProcess class |
Added new properties:
|
IntervalZero.RTX64.Config.Subsystem class |
Added new local memory configuration properties:
Added a new method:
|
IntervalZero.RTX64.RTAPI.RtssEnvironment class |
Added new methods:
|
This section lists the APIs included in the RTX64 3.x SDK that underwent breaking changes in RTX64 4.x SDK versions.
IMPORTANT! Existing real-time applications that call these APIs may need to be updated to ensure binary compatibility with RTX64 4.x.
NOTE: A binary file built with the RTX64 4.5 SDK that includes C Runtime support will not run on previous versions of the RTX64 Runtime.
Breaking Changes to Header Files
- The following header files were renamed:
- ErrorCodes.h has been renamed RtErrorCodes.h
- Licensing.h has been renamed RtLicensing.h
Breaking Changes to Real-Time APIs
RTX64 3.x API | RTX64 4.0 and later |
---|---|
LPVOID HeapAlloc( HANDLE hHeap, DWORD Flags, DWORD Bytes ); |
LPVOID HeapAlloc( HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes ); |
HANDLE HeapCreate( DWORD flOptions, DWORD InitialSize, DWORD MaximumSize ); |
HANDLE HeapCreate( DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize ); |
LPVOID HeapReAlloc( HANDLE hHeap, DWORD Flags, LPVOID lpMem, DWORD Bytes ); |
LPVOID HeapReAlloc( HANDLE hHeap, DWORD Flags, LPVOID lpMem, SIZE_T dwBytes ); |
Allocates memory from a pre-allocated RTSS local memory pool to avoid SRI activity if allocating memory from the Windows memory pool. |
Allocates memory from the external MSpace of the current process. |
Allocates memory from a pre-allocated RTSS local memory pool to avoid SRI activity if allocating memory from the Windows memory pool. Using the memory allocation option RTALLOC_NOT_ZERO_MEMORY, RtAllocateLocalMemoryEx allows you to allocate memory without zero-initializing the memory region. |
Allocates memory from the external memory allocation space (MSpace) of the current process. RtAllocateLocalMemoryEx allows you to allocate memory without zero-initializing the memory region. |
Parameter flProtect is ignored by RTSS and Windows. |
Parameter flProtect is still ignored by RTSS but supported under Windows with these values:
|
RtUpdateProcThreadAttribute |
Deprecated attribute RT_PROC_THREAD_ATTRIBUTE_USE_LOCAL_MEMORY |
BOOL RtGetProcessAffinityMask( HANDLE hProcess, PDWORD_PTR pProcessAffinityMask, PDWORD_PTR pSystemAffinityMask ); |
BOOL RtGetProcessAffinityMask( HANDLE hProcess, PUINT64 pProcessAffinityMask, PUINT64 pSystemAffinityMask ); |
BOOL RtSetProcessAffinityMask( HANDLE hProcess, DWORD_PTR ProcessAffinityMask ); |
BOOL RtSetProcessAffinityMask(
HANDLE hProcess,
UINT64 ProcessAffinityMask
);
|
BOOL RtGetProcessorInfo( PDWORD_PTR lpLowestSystemProcessor, PDWORD_PTR lpHighestSystemProcessor ); |
BOOL RtGetProcessorInfo( PDWORD lpLowestSystemProcessor, PDWORD lpHighestSystemProcessor ); |
RtSleepFt |
Removed Windows support. This function can now only be called from an RTSS process or RTDLL. |
RtSleepFtEx | Removed Windows support. This function can now only be called from an RTSS process or RTDLL. |
typedef struct _RTPROCESS_INFORMATION{ DWORD ProcessId; UNSIGNED_INT64 ProcessorAffinityMask; DWORD AffinedProcessorNumber; BOOL UseLocalMemory; }RTPROCESS_INFORMATION, *PRTPROCESS_INFORMATION; |
typedef struct _RTPROCESS_INFORMATION{ DWORD ProcessId; UNSIGNED_INT64 ProcessorAffinityMask; DWORD AffinedProcessorNumber; BOOL EnableLocalMemory; }RTPROCESS_INFORMATION, *PRTPROCESS_INFORMATION; |
Real-Time Network APIs
RTX64 3.x API | RTX64 4.0 and later |
---|---|
These APIs use a pointer to structure RTND_REQUEST as an argument. Some requests used the InformationBuffer field in structure RTND_REQUEST to pass an integer value back to the caller by overwriting the InformationBuffer pointer or used the InformationBuffer field differently in different NIC drivers. |
These APIs Use the InformationBuffer field in structure RTND_REQUEST as a pointer to a buffer to place a value or values for all requests in all NIC drivers. |
Breaking Changes to Native Framework APIs
RTX64 3.x API | RTX64 4.0 and later |
---|---|
bool RtfwGetSubsystemStatus( RTFW_SUBSYSTEM_STATUS * pStatus ); |
bool RtfwGetSubsystemStatus(
RTFW_COMPONENT_STATUS * pStatus
);
|
RtfwStartNetwork |
Renamed RtfwStartTCPIPStack |
RtfwStopNetwork |
Renamed RtfwStopTCPIPStack |
RTFW_FIRST_RTSS_PROCESSOR A constant used by RTFW_NETWORK_CONFIGURATION and RTFW_NETWORK_INTERFACE which represents the first RTSS processor, regardless of its actual processor number. |
Renamed RTFW_DEFAULT_RTSS_PROCESSOR When configuring the Network Abstraction Layer (NAL) or RT-TCP/IP stack, this constant represents the RTSS processor on which the NAL or Stack processes are running. When configuring other components of the RTX64 Subsystem, this constant represents the first RTSS processor. |
RTFW_LOCAL_MEMORY_CONFIGURATION typedef struct _RTFW_LOCAL_MEMORY_CONFIGURATION( size_t Size; bool UseLocalMemory; bool AutoExpandPool; bool AutoShrinkPool; unsigned int InitialSize; unsigned int ExpansionSize; } RTFW_LOCAL_MEMORY_CONFIGURATION, * PRTFW_LOCAL_MEMORY_CONFIGURATION; |
typedef struct _RTFW_LOCAL_MEMORY_CONFIGURATION( size_t Size; bool EnableLocalMemory; unsigned int SystemExtMSpacePoolMinimumSize; bool SystemExtMSpacePoolCommit; bool SystemMSpacesPoolExpandable; unsigned int SystemMSpacesPoolExpandSize; bool SystemMSpacesPoolShrinkable; unsigned int ProcessExtMSpacePoolMinimumSize; bool ProcessMSpacesPoolExpandable; unsigned int ProcessMSpacesPoolExpandSize; bool ProcessMSpacesPoolShrinkable; bool ZeroMemoryAtAllocation; unsigned int SystemIntMSpacesPoolMinimumSize; unsigned int ProcessIntMSpacesPoolMinimumSize; } RTFW_LOCAL_MEMORY_CONFIGURATION, * PRTFW_LOCAL_MEMORY_CONFIGURATION;
|
typedef struct _RTFW_NETWORK_INTERFACE( size_t Size; TCHAR FriendlyName[RTFW_MAX_INTERFACE_NAME_CHARS]; bool Enabled; TCHAR Driver[MAX_PATH]; TCHAR DeviceInstanceID[RTFW_MAX_INTERFACE_INSTANCEID_CHARS]; TCHAR PCIBusLocation[RTFW_MAX_INTERFACE_PCIBUSLOCATION_CHARS]; size_t CountIPv4Addresses; RTFW_IPV4_CONFIGURATION IPv4Configurations[RTFW_MAX_IPS_PER_INTERFACE]; TCHAR Gateway[RTFW_IPV4ADDRESS_LENGTH]; TCHAR IPv6Address[RTFW_MAX_INTERFACE_IPV6ADDRESS_CHARS]; unsigned int IPv6Prefix; unsigned int ReceivePriority; DWORD ReceiveIdealProcessor; unsigned int MTU; unsigned int NumberReceiveBuffers; unsigned int NumberTransmitBuffers; RTFW_INTERRUPT_TYPE InterruptType; unsigned int InterruptPriority; DWORD InterruptIdealProcessor; bool LinkStatus; unsigned int LinkStatusPriority; DWORD LinkStatusIdealProcessor; bool FilterDriverEnabled; TCHAR FilterDriver[MAX_PATH]; } RTFW_NETWORK_INTERFACE, * PRTFW_NETWORK_INTERFACE; |
typedef struct _RTFW_NETWORK_INTERFACE( size_t Size; // These fields are required for TCP/IP and NAL interfaces. TCHAR Name[RTFW_MAX_INTERFACE_NAME_CHARS]; bool Enabled; TCHAR Driver[MAX_PATH]; unsigned int MaxPacketSize; bool LinkStatus; TCHAR PCIBusLocation[RTFW_MAX_INTERFACE_PCIBUSLOCATION_CHARS]; RTFW_INTERRUPT_TYPE InterruptType; unsigned int TransmitCompletePriority; unsigned int TransmitCompleteIdealProcessor; unsigned int NumberReceiveBuffers; unsigned int NumberTransmitBuffers; unsigned int NumberReceiveQueues; unsigned int NumberTransmitQueues; unsigned int DefaultReceiveQueue; DWORD InterruptIdealProcessor; unsigned int InterruptPriority; TCHAR DeviceInstanceID[RTFW_MAX_INTERFACE_INSTANCEID_CHARS]; bool SupportTCPIP; // These fields are required only if SupportTCPIP is set to TRUE. unsigned int CountIPv4Configurations; RTFW_IPV4_CONFIGURATIONW IPv4Configurations[RTFW_MAX_IPS_PER_INTERFACE]; TCHAR Gateway[RTFW_IPV4ADDRESS_LENGTH]; unsigned int MTU; bool FilterEnabled; TCHAR FilterDriver[MAX_PATH]; TCHAR IPv6Address[RTFW_MAX_INTERFACE_IPV6ADDRESS_CHARS]; unsigned int IPv6Prefix; unsigned int ReceivePriority; DWORD ReceiveIdealProcessor; } RTFW_NETWORK_INTERFACE, * PRTFW_NETWORK_INTERFACE;
|
typedef enum _RTFW_RESTART_TYPE( RTRT_NONE, RTRT_NETWORK = 5 RTRT_SUBSYSTEM = 10, RTRT_MACHINE = 20, } RTFW_RESTART_TYPE; |
typedef enum _RTFW_RESTART_TYPE( RTRT_NONE, RTRT_TCPIP = 5 RTRT_NETWORK = 7 RTRT_SUBSYSTEM = 10, RTRT_MACHINE = 20, } RTFW_RESTART_TYPE;
|
typedef struct _RTFW_SCHEDULED_PROCESS( size_t Size CHAR Filename[MAX_PATH], CHAR Parameters[MAX_PATH], bool UseLocalMemory, unsigned int IdealProcessor, uint64_t AffinityMask, RTFW_SCHEDULED_ID ScheduledID, } RTFW_SCHEDULED_PROCESS, * PRTFW_SCHEDULED_PROCESS; |
typedef struct _RTFW_SCHEDULED_PROCESS( size_t Size CHAR Filename[MAX_PATH], CHAR Parameters[MAX_PATH], bool Reserved, unsigned int IdealProcessor, uint64_t AffinityMask, RTFW_SCHEDULED_ID ScheduledID, uint32_t MSpaceInitialSize, uint32_t MSpaceExpandSize } RTFW_SCHEDULED_PROCESS, * PRTFW_SCHEDULED_PROCESS;
|
Breaking Changes to Managed Framework APIs
RTX64 3.x API | RTX64 4.1 and later |
---|---|
IntervalZero.RTX64.Config.ServerConsole class | MethodResetresets the 4.1 Server Console Registry values only. |
RTX64 3.x API | RTX64 4.0 and later |
MonitorEventThreadCreate.AffinedProcesser property (IntervalZero.RTX64.Monitor namespace)
|
MonitorEventThreadCreate.AffinedProcessor Property (IntervalZero.RTX64.Monitor Namespace) |
Subsystem.AddScheduledProcess method (IntervalZero.RTX64.Config Namespace) public void AddScheduledProcess( string fileName, string parameters, uint idealProcessor, ulong affinityMask, bool useLocalPool, int order = -1 ); |
void AddScheduledProcess( string fileName, string parameters, uint idealProcessor, ulong affinityMask, uint MSpaceInitialSize, uint MSpaceExpandSize, int order = -1 );
|
RTProcess methods (IntervalZero.RTX64.RTAPI.Diagnostics.RTProcess class) |
|
This section lists the RTX64 3.x APIs that were either removed from or are deprecated in RTX64 4.x SDK versions.
Removed/Deprecated Real-Time APIs
RTX64 3.x API | RTX64 4.3 and later |
---|---|
RtAllocateLockedMemory | This function is deprecated and will be removed from a future release. Use RtAllocateLocalMemory. |
RtFreeLockedMemory | This function is deprecated and will be removed from a future release. Use RtFreeLocalMemory. |
RTX64 3.x API | RTX64 4.1 and later |
RtGetThreadTimeQuantum | This function is deprecated and will be removed from a future release. Use RtGetTimeQuantum. |
RtGetThreadTimeQuantumEx | This function is deprecated and will be removed from a future release. Use RtGetTimeQuantum. |
RtSetThreadTimeQuantum | This function is deprecated and will be removed from a future release. Use RtSetTimeQuantum. |
RtSetThreadTimeQuantumEx | This function is deprecated and will be removed from a future release. Use RtSetTimeQuantum. |
RTX64 3.x API | RTX64 4.0 and later |
RtEnumProxyProcessesEx | Removed. |
RtExpandLocalMemory |
Removed. Use RtExpandMSpace, which expands the specified MSpace by the size specified. |
RtGetLicenseFeatureStatus |
Removed. Use RtGetLicenses, which retrieves information about all licenses available on the system. |
RtGetLicenseFeatureStatusEx |
Removed. Use RtGetLicenses, which retrieves information about all licenses available on the system. |
RtQueryLocalMemory |
Removed. Use RtQueryProcessMSpace, which queries memory allocation space information in the specified process MSpace, including various summary statistics of its local pool and pool cache. |
RtQueryRtssInformation | Removed. |
RtShrinkLocalMemory |
Removed. Use RtShrinkMSpace, which shrinks the specified MSpace by the size specified. |
Real-Time NAL APIs
RTX64 NAL 2.0 API | RTX64 4.0 and later |
---|---|
RtNalAttachProcessExitHandler | Removed. |
RtNalReleaseProcessExitHandler | Removed. |
Real-Time Network APIs
RTX64 3.x API | RTX64 4.0 and later |
---|---|
RtnNotifyRecv | Removed. |
RtnTransmitDone | Removed. |
RtndFrameAllocate |
Removed. Use RtnFrameAllocate, which can be used by a filter driver, and an RTSS application with RT-TCP/IP support enabled, to allocate a block of memory to store an Ethernet frame. |
RtndFrameFree |
Removed. Use RtnFrameFree, which returns an allocated frame back to the TCP/IP Stack. |
RtndFrameTransmit |
Removed. Use RtnFrameTransmit, which can be called when a filter or RTSS application wants to transmit a frame pointed to by the parameter EthernetFrame. |
RtndInitialize |
Removed. Use RtndInitializeInterface, which is called for each instance of the driver when the driver should configure the NIC hardware. |
Removed/Deprecated Winsock APIs
RTX64 3.x API | RTX64 4.4 and later |
---|---|
gethostbyname |
This function is deprecated and will be removed from a future release. Use getaddrinfo. |
Removed/Deprecated Native Framework APIs
RTX64 3.x API | RTX64 4.2 and later |
---|---|
RtfwGetRTX64Devices |
This function is deprecated and will be removed from a future release. |
RTFW_DEVICE |
This structure is deprecated and will be removed from a future release. Use RTFW_DEVICEEX. |
RTX64 3.x API | RTX64 4.1 and later |
RtfwGetConsoleConfiguration |
This function is deprecated and will be removed from a future release. The function will fail in RTX64 4.1 and later versions. |
RtfwSetConsoleConfiguration |
This function is deprecated and will be removed from a future release. The function will fail in RTX64 4.1 and later versions. |
RTFW_CONSOLE_CONFIGURATION |
This structure is deprecated and will be removed from a future release. The structure will fail in RTX64 4.1 and later versions. |
RTX64 3.x API | RTX64 4.0 and later |
RtfwGetNetworkConfiguration |
Removed. Use these new APIs:
|
RtfwGetNetworkStatus |
Removed. Use these new APIs: |
RtfwSetNetworkConfiguration |
Removed. Use these new APIs:
|
RTFW_NETWORK_CONFIGURATION |
Removed. Use these new APIs:
|
RTFW_SUBSYSTEM_STATUS |
Removed. Use RTFW_COMPONENT_STATUS, which represents the status of an RTX64 component. |
Removed/Deprecated Managed Framework APIs
RTX64 3.x API | RTX64 4.1 and later |
---|---|
IntervalZero.RTX64.RTAPI.Diagnostics.RTProcess namespace |
The following overloads to method RTProcess.Start were deprecated and will be removed from a future release:
|
IntervalZero.RTX64.Config.ServerConsole class |
These properties were deprecated and will be removed from a future release:
These methods were deprecated and will be removed from a future release:
|
RTX64 3.x API | RTX64 4.0 and later |
IntervalZero.RTX64.RTAPI.IO.RTInterruptHandler class | Removed. |
IntervalZero.RTX64.RTAPI.RTShutdownHandler class | Removed. |
IntervalZero.RTX64.RTAPI.Threading.RTTimer class | Removed. |
IntervalZero.RTX64.Config.IConfigNetworkInterface interface |
These properties were removed:
|
IntervalZero.RTX64.Config.IConfigSubsystem interface |
These properties were removed:
|
IntervalZero.RTX64.Config.Subsystem class |
These properties were removed:
|
IntervalZero.RTX64.Monitor.MonitorEventTLSFree class |
These properties were removed:
|
IntervalZero.RTX64.RTAPI.Diagnostics.RTProcess class |
PropertyUseLocalMemorywas removed. |
IntervalZero.RTX64.RTAPI.RtssEnvironment class |
These properties were removed:
These methods were removed:
|
IntervalZero.RTX64.RTAPI.IO namespace |
These enumerations were removed:
|
Related topics: