## 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