INtime SDK Help
System calls
INtime SDK v7 > References > System calls

Overview

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:

NTX calls

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.

Handle conversion

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 (validating) 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 (non-validating) 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.

System calls by type

NTX calls

DSM calls

Distributed System Management (DSM) overview
ntxRegisterRtDependency
ntxUnregisterDependency
ntxRegisterSponsor
ntxUnregisterSponsor
ntxNotifyEvent

Mailbox calls

Mailboxes overview
ntxCreateRtMailbox
ntxDeleteRtMailbox
ntxReceiveRtData
ntxReceiveRtHandle
ntxSendRtData
ntxSendRtHandle

Message queue calls

Message queue overview
ntxCancelRtLongDataMessage
ntxCreateRtQueue
ntxDeleteRtQueue
ntxFlushRtQueue
ntxGetRtLongDataMessage
ntxGetRtQueueInfo
ntxReceiveRtDataMessage
ntxSendRtShortDataMessage
ntxSendRtLongDataMessage

Memory calls

Memory overview
ntxAllocateRtMemory
ntxCopyRtData
ntxFreeRtMemory
ntxGetRtSize
ntxMapRtSharedMemory
ntxMapRtSharedMemoryEx
ntxUnmapRtSharedMemory

Object directory calls

Object directories overview
ntxCatalogNtxHandle
ntxExportRtHandle
ntxGetRootRtProcess
ntxGetType
ntxImportRtHandle
ntxLookupNtxHandle
ntxUncatalogNtxHandle

Port calls (deprecated)

Ports overview
ntxAttachRtPort
ntxBindRtPort
ntxCancelRtTransaction
ntxConnectRtPort
ntxCreateRtPort
ntxDeleteRtPort
ntxDetachRtPort
ntxGetRtPortAttributes
ntxGetRtServiceAttributes
ntxReceiveRtMessage
ntxReceiveRtReply
ntxReleaseRtBuffer
ntxRequestRtBuffer
ntxSendRtMessage
ntxSendRtMessageRSVP
ntxSetRtServiceAttributes

Process calls

Processes overview
ntxCreateRtProcess
ntxNotifyEvent
ntxRegisterDependency
ntxRegisterSponsor
ntxUnregisterDependency
ntxUnregisterSponsor

Semaphore calls

Semaphores overview
ntxCreateRtSemaphore
ntxDeleteRtSemaphore
ntxReleaseRtSemaphore
ntxWaitForRtSemaphore

Status calls

ntxFindINtimeNode
ntxGetLastRtError
ntxGetRtErrorName
ntxGetRtStatus
ntxLoadRtErrorString
ntxStartLocalRtNode
ntxStopLocalRtNode

System data calls

ntxGetFirstLocation
ntxGetLocationByName
ntxGetNameOfLocation
ntxGetNextLocation

High-level (validating) calls

DSM calls

Distributed System Management (DSM) overview
RegisterRtDependency
UnregisterRtDependency
RegisterRtSponsor
UnregisterRtSponsor
RtNotifyEvent

Exception handler calls

Exception handling overview
_set_se_translator
AbnormalTermination
GetExceptionInformation
GetRtExceptionHandlerInfo
RaiseException
SetRtExceptionHandler

Interrupt calls

Interrupts overview
DisableRtInterrupt
EnableRtInterrupt
EnterRtInterrupt
GetRtInterruptLevel
ResetRtInterruptHandler
SetRtInterruptHandler
SetRtInterruptHandlerEx
SignalEndOfRtInterrupt
SignalRtInterruptThread
WaitForRtInterrupt

Mailbox calls

Mailboxes overview
CreateRtMailbox
DeleteRtMailbox
ReceiveRtData
ReceiveRtHandle
SendRtData
SendRtHandle

Message queue calls

Message queue overview
CancelRtLongDataMessage
CreateRtQueue
DeleteRtQueue
FlushRtQueue
GetRtLongDataMessage
GetRtQueueInfo
ReceiveRtDataMessage
SendRtLongDataMessage
SendRtShortDataMessage

Memory calls

Memory management overview
AllocateRtMemory
CopyRtData
CreateRtHeap
CreateRtMemoryHandle
DeleteRtHeap
DeleteRtMemoryHandle
FreeRtMemory
GetRtBufferSize
GetRtHeapInfo
GetRtPhysicalAddress
GetRtSize
MapRtPhysicalMemory
MapRtSharedMemory
ReleaseRtBuffer
RequestRtBuffer

Object directory calls

Object directories overview
CatalogRtHandle
GetRtHandleType
GetRtHandleTypeEx
InspectRtProcessDirectory
LookupRtHandle
UncatalogRtHandle

Port calls (deprecated)

Ports overview

Port calls: Service support (deprecated)

GetRtServiceAttributes
InstallRtServiceDescriptor
SetRtServiceAttributes
UninstallRtServiceDescriptor

Port calls: Port object management (deprecated)

AttachRtHeap
AttachRtPort
BindRtPort
ConnectRtPort
CreateRtPort
CreateRtPortEx
DeleteRtPort
DetachRtHeap
DetachRtPort
GetRtPortAttributes

Port calls: Message transmission (deprecated)

CancelRtTransaction
ReceiveRtFragment
ReceiveRtMessage
ReceiveRtReply
SendRtMessage
SendRtMessageRSVP
SendRtReply

Process calls

Processes overview
CreateRtProcess
DeleteRtProcess
ExitRtProcess
RegisterRtDependency
RegisterRtSponsor
RtNotifyEvent
UnregisterRtDependency
UnregisterRtSponsor

Region calls

Regions overview
AcceptRtControl
CreateRtRegion
DeleteRtRegion
ReleaseRtControl
WaitForRtControl

Semaphore calls

Semaphores overview
CreateRtSemaphore
DeleteRtSemaphore
WaitForRtSemaphore
ReleaseRtSemaphore

Status calls

Status calls overview
CopyRtSystemInfo
GetLastRtError
ReportRtEvent
SetLastRtError
GetCurrentRtDirectory
SetCurrentRtDirectory
GetFullRtPathName

System accounting calls

System accounting overview
GetRtThreadAccounting
GetRtThreadInfo
GetRtThreadState
SetRtSystemAccountingMode

Thread calls

Threads overview
CreateRtThread
DeleteRtThread
GetRtThreadAccounting
GetRtThreadHandles
GetRtThreadInfo
GetRtThreadPriority
GetRtThreadState
SetRtProcessMaxPriority
SetRtSystemAccountingMode
SetRtThreadPriority
SuspendRtThread
ResumeRtThread
RtSleep

Time management calls

Time management overview
CreateRtAlarm
DeleteRtAlarm
ResetRtAlarm
WaitForRtAlarm


 

Low-level (non-validating) calls

Time management calls

Time management overview
knGetKernelTime
knSetKernelTime

Mailbox calls

Mailboxes overview
knCreateRtMailbox
knDeleteRtMailbox
knSendRtData
knSendRtPriorityData
knWaitForRtData

Schedule calls

Scheduling overview
knRtSleep
knStartRtScheduler
knStopRtScheduler

Semaphore calls

Semaphores overview
knCreateRtSemaphore
knDeleteRtSemaphore
knReleaseRtSemaphore
knWaitForRtSemaphore

C/C++ calls

C library
INtime C++ class library

RT services (deprecated)

RT service calls

RT service calls overview
DeliverMessage
DeliverStatus
DeliverTransaction
DequeueInputTransaction
DequeueOutputTransaction
EnterServiceRegion
ExitServiceRegion
EnqueueInputTransaction
EnqueueOutputTransaction
GetPortId
GetPortParameter
GetTransaction
LookupPortHandle
QueryInputTransactionQueue
QueryOutputTransactionQueue
ReleaseControlBuffer
ReleaseTransaction
RequestControlBuffer
RequestTransaction
SetPortParameter

Service handlers

RT service handlers overview
CancelTransaction
CreatePort
DeletePort
Finish
GetAttributes
GetFragment
Initialize
SendMessage
Service
SetAttributes
UpdateReceiveInfo
VerifyAddress

TCP/IP calls

TCP/IP overview
accept
bind
byteorder
connect
gethostent
gethostname
getnetent
getpeername
getprotoent
getservent
getsockname
getsockopt
inet
listen
recv
send
select
shutdown
socket

PCI calls

PCI overview
PciClassName
PciDeviceName
PciFindDevice
PciFindClass
PciGetConfigRegister
PciInitialize
PciReadHeader
PciSetConfigRegister
PciVendorName

Registry calls

Registry overview
RtRegCloseKey
RtRegConnectRegistry
RtRegCreateKeyEx
RtRegDeleteKey
RtRegDeleteValue
RtRegEnumKeyEx
RtRegEnumValue
RtRegFlushKey
RtRegOpenKeyEx
RtRegQueryInfoKey
RtRegQueryValueEx
RtRegSetValueEx

Serial Communication (COMM) calls

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

Serial Communication (COMM) calls: Drivers

ComEdgePort
ComPc
ComRocket

Serial Communication (COMM) calls: Utilities

ComList

Serial Communication (COMM) calls: Structures

COMM overview
COMMCONFIG
COMMPROP
COMMTIMEOUTS
COMSTAT
DCB

INtimeDotNet calls

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

INtimeDotNet calls: Structures

COMM overview
NTXEVENTINFO
NTXPROCATTRIBS

INscope calls

INScope overview
get_RT_trace_state
log_RT_event
pause_RT_trace
RT_I_am_alive
start_RT_trace
stop_RT_trace

Input/Output calls

inbyte, inhword, inword
outbyte, outhword, outword

Structures

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