Windows Compatibility API

Mono implements a small subset of the Win32 API for some file system interaction, I/O, thread and process operations.

On Windows, Mono uses directly the services provided by the operating system. On other operating system it uses its own implementation (referred to as the "io-layer" or "wapi").

Windows Compatibility API

BindIoCompletionCallback

CloseHandle

closesocket

CopyFile

CreateDirectory

CreateEvent

CreateFile

CreateMutex

CreatePipe

CreateProcess

CreateProcessWithLogonW

CreateSemaphore

CreateThread

DeleteCriticalSection

DeleteFile

DuplicateHandle

EnterCriticalSection

EnumProcesses

EnumProcessModules

errno_to_WSA

ExitThread

FileTimeToSystemTime

FindClose

FindFirstFile

FindNextFile

FlushFileBuffers

FormatMessage

GetCurrentDirectory

GetCurrentProcess

GetCurrentProcessId

GetCurrentThread

GetCurrentThreadId

GetDiskFreeSpaceEx

GetDriveType

GetExitCodeProcess

GetExitCodeThread

GetFileAttributesEx

GetFileAttributes

GetFileSize

GetFileTime

GetFileType

GetFileVersionInfo

GetFileVersionInfoSize

GetLastError

GetLogicalDriveStrings

GetModuleBaseName

GetModuleFileNameEx

GetModuleInformation

GetPriorityClass

GetProcessId

GetProcessTimes

GetProcessWorkingSetSize

GetStdHandle

GetSystemInfo

GetTempPath

GetThreadContext

GetTickCount

ImpersonateLoggedOnUser

InitializeCriticalSectionAndSpinCount

InitializeCriticalSection

ioctlsocket

LeaveCriticalSection

LockFile

MoveFile

OpenEvent

OpenMutex

OpenProcess

OpenSemaphore

OpenThread

PulseEvent

QueryPerformanceCounter

QueryPerformanceFrequency

QueueUserAPC

ReadFile

ReleaseMutex

ReleaseSemaphore

RemoveDirectory

ReplaceFile

ResetEvent

ResumeThread

RevertToSelf

SetCriticalSectionSpinCount

SetCurrentDirectory

SetEndOfFile

SetEvent

SetFileAttributes

SetFilePointer

SetFileTime

SetLastError

SetPriorityClass

SetProcessWorkingSetSize

ShellExecuteEx

SignalObjectAndWait

SleepEx

Sleep

SuspendThread

TerminateProcess

TlsAlloc

TlsFree

TlsGetValue

TlsSetValue

TransmitFile

TryEnterCriticalSection

UnlockFile

VerLanguageName

VerQueryValue

WaitForInputIdle

WaitForMultipleObjectsEx

WaitForMultipleObjects

WaitForSingleObjectEx

WaitForSingleObject

WriteFile

WSACleanup

WSAGetLastError

WSAIoctl

WSARecv

WSASend

WSASetLastError

WSAStartup

Extended APIs

The extended APIs provide access to a few internals of the WAPI stack that are not exposed through the standard Win32 APIs.

mono_once

wapi_clear_interruption

wapi_current_thread_desc

wapi_interrupt_thread

wapi_self_interrupt

wapi_thread_clear_wait_handle

wapi_thread_set_wait_handle