Several types of calls exist, and each kernel exchange object has calls of one or more type associated with it:
RT kernel objects provide these RT call levels:
Object | NTX | High level | Low level |
---|---|---|---|
Distributed System Management (DSM) | X | X | |
Exception handling | X | ||
Interrupts | X | ||
Mailboxes | X | X | X |
Message queues | X | X | |
Memory management | X | X | |
Object directories | X | X | |
Ports | X | X | |
Processes | X | X | |
Regions | X | ||
Scheduler | X | ||
Semaphores | X | X | X |
Status | X | X | |
System data | X | ||
Threads | X | ||
Time management | X | X |
Regarding INtime software system calls:
For example, no Windows object corresponds closely to an INtime software region, so these are left as regions. On the other hand, INtime software alarms are encapsulated as an object which somewhat correspond to a specialized Windows event object, so this is called AlarmEvent. It does not, however, perform all the same functions as a Windows event.
NTX calls allow Windows applications to operate on objects created by, stored in, and controlled by the INtime kernel. This allows Windows and INtime applications to communicate and coordinate their activities.
The NTX DLL converts in transit NTXHANDLES sent to the RT kernel to RTHANDLES, and vice-versa. This is necessary as the RT kernel cannot operate on NTXHANDLES and NTX can't operate on RTHANDLES.
If a handle passes from RT to Windows in data, ntxImportRtHandle must convert it. Object directories and object mailboxes are converted automatically.
For a complete list of NTX calls, see NTX calls.
High-level calls provide higher protection and validation features. Memory is allocated automatically from the process's pool. Each high level object consumes a slot from the system GDT (8000 objects maximum).
High-level system calls validate a call's parameters; a condition code returned by the call indicates whether you used invalid parameters. Condition codes for trying to read or write memory to which you have no access also exist.
High-level exchange objects validate parameters and are protected against unexpected deletion. High-level calls exist for these exchange objects:
For a complete list of high-level calls, see High-level calls.
Low-level calls provide higher performance, but lower protection and validation features. Low-level objects provide functionality beyond that of high-level objects.
You must allocate memory for low-level objects and may allocate memory beyond low-level object needs. You can use this additional memory to store application-specific state information associated with the object.
Low-level objects are not protected against unexpected deletion and do not validate parameters (if you need parameter validation, use high-level system calls). Low-level calls use the flat, 4 Gbyte addressing capabilities of the microprocessor. They do not use segmentation. Therefore, they do not consume a slot from the system GDT.
Use low-level objects in these situations:
Note: System calls that manipulate low-level objects assume that all memory reference pointers received are valid.
Low-level calls exist for these exchange objects:
For a complete list of low-level calls, see Low-level calls.
Distributed System Management (DSM) overview
ntxRegisterRtDependency
ntxUnregisterDependency
ntxRegisterSponsor
ntxUnregisterSponsor
ntxNotifyEvent
Mailboxes overview
ntxCreateRtMailbox
ntxDeleteRtMailbox
ntxReceiveRtData
ntxReceiveRtHandle
ntxSendRtData
ntxSendRtHandle
Memory overview
ntxAllocateRtMemory
ntxCopyRtData
ntxFreeRtMemory
ntxGetRtSize
ntxMapRtSharedMemory
ntxMapRtSharedMemoryEx
ntxUnmapRtSharedMemory
Object directories overview
ntxCatalogNtxHandle
ntxExportRtHandle
ntxGetRootRtProcess
ntxGetType
ntxImportRtHandle
ntxLookupNtxHandle
ntxUncatalogNtxHandle
Ports overview
ntxAttachRtPort
ntxBindRtPort
ntxCancelRtTransaction
ntxConnectRtPort
ntxCreateRtPort
ntxDeleteRtPort
ntxDetachRtPort
ntxGetRtPortAttributes
ntxGetRtServiceAttributes
ntxReceiveRtMessage
ntxReceiveRtReply
ntxReleaseRtBuffer
ntxRequestRtBuffer
ntxSendRtMessage
ntxSendRtMessageRSVP
ntxSetRtServiceAttributes
Processes overview
ntxCreateRtProcess
ntxNotifyEvent
ntxRegisterDependency
ntxRegisterSponsor
ntxUnregisterDependency
ntxUnregisterSponsor
Semaphores overview
ntxCreateRtSemaphore
ntxDeleteRtSemaphore
ntxReleaseRtSemaphore
ntxWaitForRtSemaphore
ntxFindINtimeNode
ntxGetLastRtError
ntxGetRtErrorName
ntxGetRtStatus
ntxLoadRtErrorString
ntxStartLocalRtNode
ntxStopLocalRtNode
ntxGetFirstLocation
ntxGetLocationByName
ntxGetNameOfLocation
ntxGetNextLocation
Distributed System Management (DSM) overview
RegisterRtDependency
UnregisterRtDependency
RegisterRtSponsor
UnregisterRtSponsor
RtNotifyEvent
Exception handling overview
_set_se_translator
AbnormalTermination
GetExceptionInformation
GetRtExceptionHandlerInfo
RaiseException
SetRtExceptionHandler
Interrupts overview
DisableRtInterrupt
EnableRtInterrupt
EnterRtInterrupt
GetRtInterruptLevel
ResetRtInterruptHandler
SetRtInterruptHandler
SetRtInterruptHandlerEx
SignalEndOfRtInterrupt
SignalRtInterruptThread
WaitForRtInterrupt
Mailboxes overview
CreateRtMailbox
DeleteRtMailbox
ReceiveRtData
ReceiveRtHandle
SendRtData
SendRtHandle
Memory management overview
AllocateRtMemory
CopyRtData
CreateRtHeap
CreateRtMemoryHandle
DeleteRtHeap
DeleteRtMemoryHandle
FreeRtMemory
GetRtBufferSize
GetRtHeapInfo
GetRtPhysicalAddress
GetRtSize
MapRtPhysicalMemory
MapRtSharedMemory
ReleaseRtBuffer
RequestRtBuffer
Object directories overview
CatalogRtHandle
GetRtHandleType
GetRtHandleTypeEx
InspectRtProcessDirectory
LookupRtHandle
UncatalogRtHandle
GetRtServiceAttributes
InstallRtServiceDescriptor
SetRtServiceAttributes
UninstallRtServiceDescriptor
AttachRtHeap
AttachRtPort
BindRtPort
ConnectRtPort
CreateRtPort
CreateRtPortEx
DeleteRtPort
DetachRtHeap
DetachRtPort
GetRtPortAttributes
CancelRtTransaction
ReceiveRtFragment
ReceiveRtMessage
ReceiveRtReply
SendRtMessage
SendRtMessageRSVP
SendRtReply
Processes overview
CreateRtProcess
DeleteRtProcess
ExitRtProcess
RegisterRtDependency
RegisterRtSponsor
RtNotifyEvent
UnregisterRtDependency
UnregisterRtSponsor
Regions overview
AcceptRtControl
CreateRtRegion
DeleteRtRegion
ReleaseRtControl
WaitForRtControl
Semaphores overview
CreateRtSemaphore
DeleteRtSemaphore
WaitForRtSemaphore
ReleaseRtSemaphore
Status calls overview
CopyRtSystemInfo
GetLastRtError
ReportRtEvent
SetLastRtError
GetCurrentRtDirectory
SetCurrentRtDirectory
GetFullRtPathName
System accounting overview
GetRtThreadAccounting
GetRtThreadInfo
GetRtThreadState
SetRtSystemAccountingMode
Threads overview
CreateRtThread
DeleteRtThread
GetRtThreadAccounting
GetRtThreadHandles
GetRtThreadInfo
GetRtThreadPriority
GetRtThreadState
SetRtProcessMaxPriority
SetRtSystemAccountingMode
SetRtThreadPriority
SuspendRtThread
ResumeRtThread
RtSleep
Time management overview
CreateRtAlarm
DeleteRtAlarm
ResetRtAlarm
WaitForRtAlarm
Time management overview
knGetKernelTime
knSetKernelTime
Mailboxes overview
knCreateRtMailbox
knDeleteRtMailbox
knSendRtData
knSendRtPriorityData
knWaitForRtData
Scheduling overview
knRtSleep
knStartRtScheduler
knStopRtScheduler
Sempahores overview
knCreateRtSemaphore
knDeleteRtSemaphore
knReleaseRtSemaphore
knWaitForRtSemaphore
C library
INtime C++ class library
RT service calls overview
DeliverMessage
DeliverStatus
DeliverTransaction
DequeueInputTransaction
DequeueOutputTransaction
EnterServiceRegion
ExitServiceRegion
EnqueueInputTransaction
EnqueueOutputTransaction
GetPortId
GetPortParameter
GetTransaction
LookupPortHandle
QueryInputTransactionQueue
QueryOutputTransactionQueue
ReleaseControlBuffer
ReleaseTransaction
RequestControlBuffer
RequestTransaction
SetPortParameter
RT service handlers overview
CancelTransaction
CreatePort
DeletePort
Finish
GetAttributes
GetFragment
Initialize
SendMessage
Service
SetAttributes
UpdateReceiveInfo
VerifyAddress
TCP/IP overview
accept
bind
byteorder
connect
gethostent
gethostname
getnetent
getpeername
getprotoent
getservent
getsockname
getsockopt
inet
listen
recv
send
select
shutdown
socket
PCI overview
PciClassName
PciDeviceName
PciFindDevice
PciFindClass
PciGetConfigRegister
PciInitialize
PciReadHeader
PciSetConfigRegister
PciVendorName
Registry overview
RtRegCloseKey
RtRegConnectRegistry
RtRegCreateKeyEx
RtRegDeleteKey
RtRegDeleteValue
RtRegEnumKeyEx
RtRegEnumValue
RtRegFlushKey
RtRegOpenKeyEx
RtRegQueryInfoKey
RtRegQueryValueEx
RtRegSetValueEx
COMM overview
ClearCommBreak
ClearCommError
CloseComm
EscapeCommFunction
FlushCommBuffers
GetCommConfig
GetCommMask
GetCommModemStatus
GetCommProperties
GetCommState
GetCommTimeouts
OpenComm
PurgeComm
ReadComm
ResetCommEvent
SetCommBreak
SetCommConfig
SetCommMask
SetCommState
SetCommTimeouts
SetupComm
TransmitCommChar
WaitCommEvent
WriteComm
COMM overview
COMMCONFIG
COMMPROP
COMMTIMEOUTS
COMSTAT
DCB
Registry overview
ntxCatalogNtxHandle
ntxCreateRtMailbox
ntxCreateRtProcess
ntxCreateRtSemaphore
ntxDeleteRtMailbox
ntxDeleteRtSemaphore
ntxGetFirstLocation
ntxGetLocationByName
ntxGetNameOfLocation
ntxGetNextLocation
ntxGetRootRtProcess
ntxGetRtErrorName
ntxGetRtSize
ntxGetRtStatus
ntxGetType
ntxImportRtHandle
ntxLoadRtErrorString
ntxLookupNtxHandle
ntxNotifyEvent
ntxReadRtxxx
ntxReceiveRtDataXxx
ntxReceiveRtHandle
ntxRegisterDependency
ntxRegisterSponsor
ntxReleaseRtsemaphore
ntxSendRtDataXxx
ntxSendRtHandle
ntxUncatalogNtxHandle
ntxUnregisterDependency
ntxUnregisterSponsor
ntxWaitForRtSemaphore
ntxWriteRtXxx
COMM overview
NTXEVENTINFO
NTXPROCATTRIBS
INScope overview
get_RT_trace_state
log_RT_event
pause_RT_trace
RT_I_am_alive
start_RT_trace
stop_RT_trace
inbyte, inhword, inword
outbyte, outhword, outword
CONTROLBUFFER
CPUFRAME
EVENTINFO
EXCEPTION
FILETIME
GENADDR
HEAPINFO
HWEXCEPTIONMSG
KNTIME
NTXEVENTINFO
NTXPROCATTRIBS
OBJECTDIR
PCIDEV
POOLINFO
PORTINFO
RECEIVEINFO
SERVICEATTRIBUTES
SERVICEDESC
SYSINFO
THREADACCOUNTING
THREADINFO_SNAPSHOT
THREADSTATE_SNAPSHOT
TRANSACTION