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
Syntax
BindIoCompletionCallback

CloseHandle
Syntax
CloseHandle

closesocket
Syntax
closesocket

CopyFile
Syntax
CopyFile

CreateDirectory
Syntax
CreateDirectory

CreateEvent
Syntax
CreateEvent

CreateFile
Syntax
CreateFile

CreateMutex
Syntax
CreateMutex

CreatePipe
Syntax
CreatePipe

CreateProcess
Syntax
CreateProcess

CreateProcessWithLogonW
Syntax
CreateProcessWithLogonW

CreateSemaphore
Syntax
CreateSemaphore

CreateThread
Syntax
CreateThread

DeleteCriticalSection
Syntax
DeleteCriticalSection

DeleteFile
Syntax
DeleteFile

DuplicateHandle
Syntax
DuplicateHandle

EnterCriticalSection
Syntax
EnterCriticalSection

EnumProcesses
Syntax
EnumProcesses

EnumProcessModules
Syntax
EnumProcessModules

errno_to_WSA
Syntax
errno_to_WSA

ExitThread
Syntax
ExitThread

FileTimeToSystemTime
Syntax
FileTimeToSystemTime

FindClose
Syntax
FindClose

FindFirstFile
Syntax
FindFirstFile

FindNextFile
Syntax
FindNextFile

FlushFileBuffers
Syntax
FlushFileBuffers

FormatMessage
Syntax
FormatMessage

GetCurrentDirectory
Syntax
GetCurrentDirectory

GetCurrentProcess
Syntax
GetCurrentProcess

GetCurrentProcessId
Syntax
GetCurrentProcessId

GetCurrentThread
Syntax
GetCurrentThread

GetCurrentThreadId
Syntax
GetCurrentThreadId

GetDiskFreeSpaceEx
Syntax
GetDiskFreeSpaceEx

GetDriveType
Syntax
GetDriveType

GetExitCodeProcess
Syntax
GetExitCodeProcess

GetExitCodeThread
Syntax
GetExitCodeThread

GetFileAttributesEx
Syntax
GetFileAttributesEx

GetFileAttributes
Syntax
GetFileAttributes

GetFileSize
Syntax
GetFileSize

GetFileTime
Syntax
GetFileTime

GetFileType
Syntax
GetFileType

GetFileVersionInfo
Syntax
GetFileVersionInfo

GetFileVersionInfoSize
Syntax
GetFileVersionInfoSize

GetLastError
Syntax
GetLastError

GetLogicalDriveStrings
Syntax
GetLogicalDriveStrings

GetModuleBaseName
Syntax
GetModuleBaseName

GetModuleFileNameEx
Syntax
GetModuleFileNameEx

GetModuleInformation
Syntax
GetModuleInformation

GetPriorityClass
Syntax
GetPriorityClass

GetProcessId
Syntax
GetProcessId

GetProcessTimes
Syntax
GetProcessTimes

GetProcessWorkingSetSize
Syntax
GetProcessWorkingSetSize

GetStdHandle
Syntax
GetStdHandle

GetSystemInfo
Syntax
GetSystemInfo

GetTempPath
Syntax
GetTempPath

GetThreadContext
Syntax
GetThreadContext

GetTickCount
Syntax
GetTickCount

ImpersonateLoggedOnUser
Syntax
ImpersonateLoggedOnUser

InitializeCriticalSectionAndSpinCount
Syntax
InitializeCriticalSectionAndSpinCount

InitializeCriticalSection
Syntax
InitializeCriticalSection

ioctlsocket
Syntax
ioctlsocket

LeaveCriticalSection
Syntax
LeaveCriticalSection

LockFile
Syntax
LockFile

MoveFile
Syntax
MoveFile

OpenEvent
Syntax
OpenEvent

OpenMutex
Syntax
OpenMutex

OpenProcess
Syntax
OpenProcess

OpenSemaphore
Syntax
OpenSemaphore

OpenThread
Syntax
OpenThread

PulseEvent
Syntax
PulseEvent

QueryPerformanceCounter
Syntax
QueryPerformanceCounter

QueryPerformanceFrequency
Syntax
QueryPerformanceFrequency

QueueUserAPC
Syntax
QueueUserAPC

ReadFile
Syntax
ReadFile

ReleaseMutex
Syntax
ReleaseMutex

ReleaseSemaphore
Syntax
ReleaseSemaphore

RemoveDirectory
Syntax
RemoveDirectory

ReplaceFile
Syntax
ReplaceFile

ResetEvent
Syntax
ResetEvent

ResumeThread
Syntax
ResumeThread

RevertToSelf
Syntax
RevertToSelf

SetCriticalSectionSpinCount
Syntax
SetCriticalSectionSpinCount

SetCurrentDirectory
Syntax
SetCurrentDirectory

SetEndOfFile
Syntax
SetEndOfFile

SetEvent
Syntax
SetEvent

SetFileAttributes
Syntax
SetFileAttributes

SetFilePointer
Syntax
SetFilePointer

SetFileTime
Syntax
SetFileTime

SetLastError
Syntax
SetLastError

SetPriorityClass
Syntax
SetPriorityClass

SetProcessWorkingSetSize
Syntax
SetProcessWorkingSetSize

ShellExecuteEx
Syntax
ShellExecuteEx

SignalObjectAndWait
Syntax
SignalObjectAndWait

SleepEx
Syntax
SleepEx

Sleep
Syntax
Sleep

SuspendThread
Syntax
SuspendThread

TerminateProcess
Syntax
TerminateProcess

TlsAlloc
Syntax
TlsAlloc

TlsFree
Syntax
TlsFree

TlsGetValue
Syntax
TlsGetValue

TlsSetValue
Syntax
TlsSetValue

TransmitFile
Syntax
TransmitFile

TryEnterCriticalSection
Syntax
TryEnterCriticalSection

UnlockFile
Syntax
UnlockFile

VerLanguageName
Syntax
VerLanguageName

VerQueryValue
Syntax
VerQueryValue

WaitForInputIdle
Syntax
WaitForInputIdle

WaitForMultipleObjectsEx
Syntax
WaitForMultipleObjectsEx

WaitForMultipleObjects
Syntax
WaitForMultipleObjects

WaitForSingleObjectEx
Syntax
WaitForSingleObjectEx

WaitForSingleObject
Syntax
WaitForSingleObject

WriteFile
Syntax
WriteFile

WSACleanup
Syntax
WSACleanup

WSAGetLastError
Syntax
WSAGetLastError

WSAIoctl
Syntax
WSAIoctl

WSARecv
Syntax
WSARecv

WSASend
Syntax
WSASend

WSASetLastError
Syntax
WSASetLastError

WSAStartup
Syntax
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
Syntax
mono_once

wapi_clear_interruption
Syntax
wapi_clear_interruption

wapi_current_thread_desc
Syntax
wapi_current_thread_desc

wapi_interrupt_thread
Syntax
wapi_interrupt_thread

wapi_self_interrupt
Syntax
wapi_self_interrupt

wapi_thread_clear_wait_handle
Syntax
wapi_thread_clear_wait_handle