Matrix of Real-Time Functions

NOTE: APIs that are not explicitly documented as supported are not guaranteed to work. You should thoroughly test any code that uses undocumented functions.

RTAPI Function Name

Notes

Deterministic?

RtAcquireFastSemaphore

 

Yes - can block if another thread holds the lock.

RtAllocateContiguousMemory

 

No

RtAllocateLocalMemory

 

Yes, but only when one real-time processor configured.

RtAllocateLocalMemoryEx

 

Yes, but only when one real-time processor configured.

RtAtoi

3

Yes - the elapsed time for the call is less than 5 microseconds.

RtAttachInterrupt

 

No

RtAttachShutdownHandler

 

No

RtCancelTimer

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtCloseHandle

 

No

RtCreateEvent

2

No

RtCreateMutex

2

No

RtCreateProcess

 

No

RtCreateSemaphore

2

No

RtCreateSharedMemory

 

No

RtCreateTimer

 

No

RtCreateTimerEx

 

No

RtDeleteTimer

 

No

RtDisableInterrupts

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtDisablePortIo

 

No

RtEnableInterrupts

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtEnumProcesses

  No

RtEnumProcessesEx

  No
RtEnumProcessModules  

Yes - the elapsed time for the call is less than 5 microseconds.

RtEnumProxyProcesses   No

RtEnablePortIo

 

No
RtExpandMSpace   No

RtFreeContiguousMemory

 

No
RtGenerateEvent  

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetBusDataByOffset

 

No

RtGetClockResolution

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetClockTime

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetClockTimerPeriod

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetCountFastSemaphore

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetCurrentProcessorNumber

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetDongles   No

RtGetExitCodeProcess

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetFlushTLBTickMod

 

Yes

RtGetHalTimerPeriodCounts

  Yes

RtGetLicenses

 

No

RtGetPhysicalAddress

 

No

RtGetProcessAffinityMask

3

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetProcessMSpace   Yes
RtGetProcessorInfo   Yes - the elapsed time for the call is less than 5 microseconds.

RtGetProxyThreadPriority (can only be called by Windows applications linked with RTX64)

  No

RtGetRtssTimeAsFileTime

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetThreadPriority

1, 3

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetThreadStack

 

No

RtGetThreadTimeQuantum

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetThreadTimes

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtGetTimer

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtInitializeFastSemaphore

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtIsDebuggerPresent

  No
RtIsDefaultLocalMemory   Yes - the elapsed time for the call is less than 5 microseconds.

RtIsRuntimeLicensed

 

No

RtIsTcpStackLicensed

 

No

RtIsInRtss

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtMapMemory

 

No
RtMonitorControl  

Yes - the elapsed time for the call is less than 5 microseconds.

RtOpenEvent

2

No

RtOpenMutex

2

No

RtOpenProcess

 

No

RtOpenSemaphore

2

No

RtOpenSharedMemory

 

No

RtOpenThread

  No

RtPrintf

3

No

RtPulseEvent

2

Yes - the elapsed time for the call is less than 5 microseconds.

RtQueryPciMsiCapability

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtQueryProcessMSpace   Yes, if DumpLevel is 0.
RtQuerySharedMemory   Yes

RtReadPortBufferUchar

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReadPortBufferUlong

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReadPortBufferUshort

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReadPortUchar

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReadPortUlong

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReadPortUshort

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReleaseAllFastSemaphore

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReleaseFastSemaphore

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtReleaseInterrupt

 

No

RtReleaseMutex

2

Yes, unless the mutex has a higher priority thread waiting on it.

RtReleaseSemaphore

2

Yes, unless the semaphore has a higher priority thread waiting on it.

RtReleaseShutdownHandler

 

No

RtResetEvent

2

Yes - the elapsed time for the call is less than 5 microseconds.

RtResetWatchdog

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtSetFlushTLBTickMod

 

Yes

RtSetBusDataByOffset

 

No

RtSetClockTime

 

No

RtSetEvent

2

Yes, unless the event has a higher priority thread waiting on it.

RtSetHalTimerPeriodCounts

  Yes

RtSetProcessAffinityMask

3

Yes

RtSetProxyThreadPriority (can only be called by Windows applications linked with RTX64)

  No

RtSetRtssTimeAsFileTime

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtSetThreadPriority

1, 3

Yes - the elapsed time for the call is less than 5 microseconds.

RtSetThreadTimeQuantum

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtSetTimer

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtSetTimerRelative

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtShrinkMSpace   No

RtSleepFt

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtTerminateProcess

 

No

RtTranslateBusAddress

 

No

RtUnmapMemory

 

No

RtWaitForMultipleObjects

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWaitForSingleObject

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWPrintf

3

No

RtWritePortBufferUchar

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWritePortBufferUlong

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWritePortBufferUshort

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWritePortUchar

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWritePortUlong

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWritePortUshort

 

Yes - the elapsed time for the call is less than 5 microseconds.

RtWtoi

3

Yes - the elapsed time for the call is less than 5 microseconds.

A Note about #pragma deprecated Functions in Rtapi.h

The functions listed under #pragma deprecated in the real-time API, Rtapi.h, are actually unsupported, not deprecated. Listing them this way ensures that a warning appears in Visual Studio when a developer attempts to use an unsupported function in Visual Studio.