Matrix of Windows-Supported 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.

Windows function

Notes

Deterministic? ("No" if blank)

AbnormalTermination

 

 

CreateDirectory

 

 

CreateFile

 

 

CreateThread

 

 

DeleteCriticalSection

 

 

DeleteFile

 

 

DllMain

 

 

EnterCriticalSection

 

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

ExitProcess

 

 

ExitThread

 

 

FreeLibrary

 

 

GetCurrentProcess

 

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

GetCurrentProcessId

 

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

GetCurrentProcessorNumber

 

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

GetCurrentThread

 

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

GetCurrentThreadId

 

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

GetExitCodeThread

 

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

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

 

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

GetProcAddress

 

 

GetProcessAffinityMask

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi).

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

GetProcessHeap

 

 

HeapAlloc

 

 

HeapCreate

 

 

HeapDestroy

 

 

HeapFree

 

 

HeapReAlloc

 

 

HeapSize

 

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

InitializeCriticalSection

 

 

InterlockedAdd

 

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

InterlockedAdd64

 

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

InterlockedAnd

 

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

InterlockedAnd8

 

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

InterlockedAnd16

 

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

InterlockedAnd64

 

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

InterlockedBitTestAndReset

 

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

InterlockedBitTestAndSet

 

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

InterlockedCompare64Exchange128

 

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

InterlockedCompareExchange

 

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

InterlockedCompareExchange16

 

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

InterlockedCompareExchange64

 

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

InterlockedCompareExchange128

 

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

InterlockedCompareExchangePointer

 

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

InterlockedDecrement

 

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

InterlockedDecrement16

 

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

InterlockedDecrement64

 

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

InterlockedExchange

 

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

InterlockedExchange8

 

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

InterlockedExchange16

 

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

InterlockedExchange64

 

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

InterlockedExchangePointer

 

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

InterlockedExchangeSubtract

 

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

InterlockedExchangeAdd

 

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

InterlockedExchangeAdd64

 

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

InterlockedIncrement

 

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

InterlockedIncrement16

 

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

InterlockedIncrement64

 

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

InterlockedOr

 

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

InterlockedOr8

 

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

InterlockedOr16

 

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

InterlockedOr64

 

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

InterlockedXor

 

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

InterlockedXor8

 

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

InterlockedXor16

 

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

InterlockedXor64

 

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

LeaveCriticalSection

 

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

LoadLibrary

 

 

QueryPerformanceCounter

 

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

QueryPerformanceFrequency

 

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

ReadFile

 

 

RemoveDirectory

 

 

ResumeThread

 

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

RegCloseKey

 

 

RegCreateKey

 

 

RegCreateKeyEx

 

 

RegDeleteKey

 

 

RegDeleteKeyEx

 

 

RegDeleteValue

 

 

RegEnumValue

 

 

RegOpenKey

 

 

RegOpenKeyEx

 

 

RegQueryValueEx

 

 

RegSetValueEx

 

 

SetEndOfFile

 

 

SetFilePointer

 

 

SetLastError

 

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

SetProcessAffinityMask

The call is supported as both an Rt call and as a Windows call (for example, RtAtoi and Atoi).

 

SetThreadAffinityMask

 

 

SetThreadIdealProcessor

 

 

Sleep

 

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

SuspendThread

 

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

TerminateThread

 

 

TlsAlloc

 

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

TlsFree

 

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

TlsGetValue

 

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

TlsSetValue

 

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

TryEnterCriticalSection

 

 

VirtualAlloc

 

 

VirtualFree

 

 

WriteFile