Windows-Supported API Functions

This topic lists the Windows-supported API functions.

Note: eRTOS only supports absolute pathnames.

Windows Function Description

AbnormalTermination

Indicates whether the try block of a try-finally statement terminated normally. The function can be called only from within the finally block of a try-finally statement.

CreateDirectory

Creates a new directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory.

CreateFile

Creates or opens a file. It then returns a handle that can be used to access the object.

CreateThread

Creates a thread to execute within the address space of the calling process.

DeleteCriticalSection

Releases all resources used by an unowned critical-section object.

DeleteFile

Deletes an existing file.

DllMain

An optional method of entry into a dynamic-link library (DLL).

EnterCriticalSection

Waits for ownership of the specified critical-section object. The function returns when the calling thread is granted ownership.

ExitProcess

Ends a process and all its threads.

ExitThread

Ends a thread.

FileTimeToLocalFileTime

Converts a file time to a local file time.

FileTimeToSystemTime Converts a file time to system time.

FreeLibrary

Decrements the reference count of the loaded dynamic-link library (DLL) module.

GetCurrentProcess

Returns a pseudo handle for the current process.

GetCurrentProcessId

Returns the process identifier of the calling process.

GetCurrentProcessorNumber

Returns the system-assigned number of the current processor on which the caller is running.

GetCurrentThread

Returns a pseudo handle for the current thread.

GetCurrentThreadId

Returns the thread identifier of the calling thread.

GetExitCodeThread

Retrieves the termination status of the specified thread.

GetModuleFileName

Retrieves a handle for each module in a specified process.

GetModuleHandle

Retrieves a module handle for the specified module. The module must have been loaded by the calling process.

GetModuleHandleEx

Retrieves a module handle for the specified module in a specified process.

GetLastError

Returns the calling thread's last-error code value.

GetLocalTime Retrieves the current local date and time.

GetProcAddress

Returns the address of the specified exported dynamic-link library (DLL) function.

GetProcessAffinityMask

Retrieves the process affinity mask for the specified process and the system affinity mask for Real-Time operating system.

GetProcessHeap

Obtains a handle to the heap of the calling process. This handle can then be used in calls to HeapAlloc, HeapReAlloc, HeapFree, and HeapSize.

GetSystemInfo Retrieves information about the current system.
GetSystemTime Retrieves the current system date and time in Coordinated Universal Time (UTC) format.
GetSystemTimeAsFileTime Retrieves the current system date and time in the 64-bit FILETIME format. The system time is expressed in Coordinated Universal Time (UTC).
GetSystemTimeAsFileTimePrecise Retrieves the current system date and time in the 64-bit FILETIME format. The system time is based on Coordinated Universal Time (UTC). This function is more precise than GetSystemTimeAsFileTime.
GetVersionEx Retrieves the operating system version.

HeapAlloc

Allocates a block of memory from a heap. The allocated memory is not movable.

HeapCreate

Creates a heap object that can be used by the calling process.

HeapDestroy

Destroys the specified heap object.

HeapFree

Frees a memory block allocated from a heap by HeapAlloc or HeapReAlloc.

HeapReAlloc

Reallocates a block of memory from a heap. This function enables you to resize a memory block and change other memory block properties.

HeapSize

Returns the size, in bytes, of a memory block allocated from a heap by HeapAlloc or HeapReAlloc.

InitializeCriticalSection

Initialize a Critical Section object.

InterlockedAdd

Performs an atomic addition operation on the specified LONG values.

InterlockedAdd64

Performs an atomic addition operation on the specified LONGLONG values.

InterlockedAnd

Performs an atomic AND operation on the specified LONG values.

InterlockedAnd8

Performs an atomic AND operation on the specified char values.

InterlockedAnd16

Performs an atomic AND operation on the specified SHORT values.

InterlockedAnd64

Performs an atomic AND operation on the specified LONGLONG values.

InterlockedBitTestAndReset

Tests the specified bit of the specified LONG value and sets it to 0. The operation is atomic.

InterlockedBitTestAndSet

Tests the specified bit of the specified LONG value and sets it to 1. The operation is atomic.

InterlockedCompare64Exchange128

Performs an atomic compare-and-exchange operation on the specified values. The function compares the specified 64-bit values and exchanges with the specified 128-bit value based on the outcome of the comparison. The operation is performed with release memory ordering semantics.

InterlockedCompareExchange

Performs an atomic compare-and-exchange operation on the specified values.

InterlockedCompareExchange16

Performs an atomic compare-and-exchange operation on the specified values. The function compares two specified 16-bit values and exchanges with another 16-bit value based on the outcome of the comparison.

InterlockedCompareExchange64

Performs an atomic compare-and-exchange operation on the specified values. The function compares two specified 64-bit values and exchanges with another 64-bit value based on the outcome of the comparison.

InterlockedCompareExchange128

Performs an atomic compare-and-exchange operation on the specified values. The function compares two specified 128-bit values and exchanges with another 128-bit value based on the outcome of the comparison.

InterlockedCompareExchangePointer

Performs an atomic compare-and-exchange operation on the specified values. The function compares two specified pointer values and exchanges with another pointer value based on the outcome of the comparison.

InterlockedDecrement

Decrements (decreases by one) the value of the specified 32-bit variable as an atomic operation.

InterlockedDecrement16

Decrements (decreases by one) the value of the specified 16-bit variable as an atomic operation.

InterlockedDecrement64

Decrements (decreases by one) the value of the specified 64-bit variable as an atomic operation.

InterlockedExchange

Sets a 32-bit variable to the specified value as an atomic operation.

InterlockedExchange8

Sets an 8-bit variable to the specified value as an atomic operation.

InterlockedExchange16

Sets a 16-bit variable to the specified value as an atomic operation.

InterlockedExchange64

Sets a 64-bit variable to the specified value as an atomic operation.

InterlockedExchangePointer

Atomically exchanges a pair of addresses.

InterlockedExchangeSubtract

Performs an atomic subtraction of two values.

InterlockedExchangeAdd

Performs an atomic addition of two 32-bit values.

InterlockedExchangeAdd64

Performs an atomic addition of two 64-bit values.

InterlockedIncrement

Increments (increases by one) the value of the specified 32-bit variable as an atomic operation.

InterlockedIncrement16

Increments (increases by one) the value of the specified 16-bit variable as an atomic operation.

InterlockedIncrement64

Increments (increases by one) the value of the specified 64-bit variable as an atomic operation.

InterlockedOr

Performs an atomic OR operation on the specified LONG values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedOr8

Performs an atomic OR operation on the specified char values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedOr16

Performs an atomic OR operation on the specified SHORT values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedOr64

Performs an atomic OR operation on the specified LONGLONG values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedXor

Performs an atomic XOR operation on the specified LONG values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedXor8

Performs an atomic XOR operation on the specified char values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedXor16

Performs an atomic XOR operation on the specified SHORT values. The function prevents more than one thread from using the same variable simultaneously.

InterlockedXor64

Performs an atomic XOR operation on the specified LONGLONG values. The function prevents more than one thread from using the same variable simultaneously.

LeaveCriticalSection

Releases ownership of the specified critical-section object.

LoadLibrary

Maps the specified executable module into the address space of the calling process.

LocalFileTimeToFileTime Converts a local file time to a file time based on the Coordinated Universal Time (UTC).

OutputDebugString

If the application has a debugger, the debugger displays the string. If the application has no debugger, OutputDebugString does nothing.

QueryPerformanceCounter

Retrieves the current value of the high-resolution performance counter.

QueryPerformanceFrequency

Retrieves the frequency of the high-resolution performance counter. The frequency cannot change while the system is running.

ReadFile

Reads data from a file, starting at the position indicated by the file pointer.

RegCloseKey

A handle to the specified registry key.

RegCreateKey

Creates the specified registry key.

RegCreateKeyEx

Creates the specified registry key.

RegDeleteKey

Deletes a subkey and its values. See the RegDeleteKeyEx function for more expanded options.

RegDeleteKeyEx

Deletes a subkey and its values from the registry. See RegDeleteKey for a basic version of this function.

RegDeleteValue

Removes the specified value from the specified registry key.

RegEnumValue

Enumerates the values for the specified open registry key.

RegOpenKey

Opens the specified registry key.

RegOpenKeyEx

Opens the specified registry key.

RegQueryValueEx

Retrieves the type and data associated with the value of a specified registry key.

RegSetValueEx

Sets the data for the specified value in the specified registry key.

RemoveDirectory

Deletes an existing empty directory.

ResumeThread

Subtracts one from a thread's suspend count.

SetEndOfFile

Function moves the end-of-file (EOF) position for the specified file to the current position of the file pointer.

SetFilePointer

Moves the file pointer of an open file.

SetLastError

Sets the last-error code for the calling thread.

SetProcessAffinityMask

Sets a processor affinity mask for the threads of the specified process.

SetThreadAffinityMask

Sets a processor affinity mask for the specified thread.

SetThreadIdealProcessor

Sets a preferred processor for a thread.

Sleep

Suspends the current thread for the specified time.

SleepEx

Suspends the current thread until the specified condition is met.

SuspendThread

Suspends the specified thread.

SystemTimeToFileTime Converts a system time to a file time.

TerminateThread

Terminates a thread.

TlsAlloc

Allocates a thread local storage (TLS) index.

TlsFree

Releases a thread local storage (TLS) index, making it available for reuse.

TlsGetValue

Retrieves the value in the calling thread's thread local storage (TLS) slot for a specified TLS index.

TlsSetValue

Stores a value in the calling thread's thread local storage (TLS) slot for a specified TLS index.

TryEnterCriticalSection Attempts to enter a critical section without blocking. If the call is successful, the calling thread takes ownership of the critical section.
VirtualAlloc Allocates memory in the eRTOS virtual address space. Memory allocated by this function is uninitialized.
VirtualFree Frees memory allocated with VirtualAlloc.

WriteFile

Writes data to a file (synchronous operations only).