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

 

 

CloseHandle

 

 

CreateDirectory

 

 

CreateFile

 

 

CreateThread

 

 

DeleteCriticalSection

 

 

DeleteFile

 

 

DeviceIoControl

 

 

DllMain

 

 

EnterCriticalSection

 

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

ExitProcess

 

 

ExitThread

 

 

FileTimeToLocalFileTime

 

 

FileTimeToSystemTime

 

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

FreeLibrary

 

 

GetAdaptersAddresses

   

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.

GetExceptionCode

 

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

GetExceptionInformation

 

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.

GetLocalTime

   

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

 

 

GetSystemInfo

 

 

GetSystemTime

 

 

GetTimeZoneInformation

 

 

GetVersionEx

 

 

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

 

 

LocalFileTimeToFileTime

 

 

OutputDebugString

 

 

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.

RaiseException

 

 

ReadFile

 

 

RemoveDirectory

 

 

ResumeThread

 

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

RegCloseKey

   

RegCreateKey

   

RegCreateKeyEx

   

RegDeleteKey

   

RegDeleteKeyEx

   

RegDeleteValue

   

RegEnumKey

   

RegEnumKeyEx

   

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

 

 

SetUnhandledExceptionFilter

 

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

Sleep

 

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

SleepEx

 

 

SuspendThread

 

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

SystemTimeToFileTime

 

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    

UnhandledExceptionFilter

 

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

VirtualAlloc    
VirtualFree    

WriteFile