1 <h2>Windows Compatibility API
</h2>
3 <p>Mono implements a small subset of the Win32 API for some
4 file system interaction, I/O, thread and process operations.
6 <p>On Windows, Mono uses directly the services provided by the
7 operating system. On other operating system it uses its own
8 implementation (referred to as the
"io-layer" or
"wapi").
10 <h3>Windows Compatibility API
</h3>
12 <h4><a name=
"api:BindIoCompletionCallback">BindIoCompletionCallback
</a></h4>
13 <h4><a name=
"api:CloseHandle">CloseHandle
</a></h4>
14 <h4><a name=
"api:closesocket">closesocket
</a></h4>
15 <h4><a name=
"api:CopyFile">CopyFile
</a></h4>
16 <h4><a name=
"api:CreateDirectory">CreateDirectory
</a></h4>
17 <h4><a name=
"api:CreateEvent">CreateEvent
</a></h4>
18 <h4><a name=
"api:CreateFile">CreateFile
</a></h4>
19 <h4><a name=
"api:CreateMutex">CreateMutex
</a></h4>
20 <h4><a name=
"api:CreatePipe">CreatePipe
</a></h4>
21 <h4><a name=
"api:CreateProcess">CreateProcess
</a></h4>
22 <h4><a name=
"api:CreateProcessWithLogonW">CreateProcessWithLogonW
</a>
23 <h4><a name=
"api:CreateSemaphore">CreateSemaphore
</a></h4>
24 <h4><a name=
"api:CreateThread">CreateThread
</a></h4>
25 <h4><a name=
"api:DeleteCriticalSection">DeleteCriticalSection
</a></h4>
26 <h4><a name=
"api:DeleteFile">DeleteFile
</a></h4>
27 <h4><a name=
"api:DuplicateHandle">DuplicateHandle
</a>
28 <h4><a name=
"api:EnterCriticalSection">EnterCriticalSection
</a></h4>
29 <h4><a name=
"api:EnumProcesses">EnumProcesses
</a></h4>
30 <h4><a name=
"api:EnumProcessModules">EnumProcessModules
</a></h4>
31 <h4><a name=
"api:errno_to_WSA">errno_to_WSA
</a></h4>
32 <h4><a name=
"api:ExitThread">ExitThread
</a></h4>
33 <h4><a name=
"api:FileTimeToSystemTime">FileTimeToSystemTime
</a></h4>
34 <h4><a name=
"api:FindClose">FindClose
</a></h4>
35 <h4><a name=
"api:FindFirstFile">FindFirstFile
</a></h4>
36 <h4><a name=
"api:FindNextFile">FindNextFile
</a></h4>
37 <h4><a name=
"api:FlushFileBuffers">FlushFileBuffers
</a></h4>
38 <h4><a name=
"api:FormatMessage">FormatMessage
</a>
39 <h4><a name=
"api:GetCurrentDirectory">GetCurrentDirectory
</a></h4>
40 <h4><a name=
"api:GetCurrentProcess">GetCurrentProcess
</a></h4>
41 <h4><a name=
"api:GetCurrentProcessId">GetCurrentProcessId
</a></h4>
42 <h4><a name=
"api:GetCurrentThread">GetCurrentThread
</a></h4>
43 <h4><a name=
"api:GetCurrentThreadId">GetCurrentThreadId
</a></h4>
44 <h4><a name=
"api:GetDiskFreeSpaceEx">GetDiskFreeSpaceEx
</a>
45 <h4><a name=
"api:GetDriveType">GetDriveType
</a>
46 <h4><a name=
"api:GetExitCodeProcess">GetExitCodeProcess
</a></h4>
47 <h4><a name=
"api:GetExitCodeThread">GetExitCodeThread
</a></h4>
48 <h4><a name=
"api:GetFileAttributesEx">GetFileAttributesEx
</a></h4>
49 <h4><a name=
"api:GetFileAttributes">GetFileAttributes
</a></h4>
50 <h4><a name=
"api:GetFileSize">GetFileSize
</a></h4>
51 <h4><a name=
"api:GetFileTime">GetFileTime
</a></h4>
52 <h4><a name=
"api:GetFileType">GetFileType
</a></h4>
53 <h4><a name=
"api:GetFileVersionInfo">GetFileVersionInfo
</a>
54 <h4><a name=
"api:GetFileVersionInfoSize">GetFileVersionInfoSize
</a>
55 <h4><a name=
"api:GetLastError">GetLastError
</a></h4>
56 <h4><a name=
"api:GetLogicalDriveStrings">GetLogicalDriveStrings
</a></h4>
57 <h4><a name=
"api:GetModuleBaseName">GetModuleBaseName
</a></h4>
58 <h4><a name=
"api:GetModuleFileNameEx">GetModuleFileNameEx
</a>
59 <h4><a name=
"api:GetModuleInformation">GetModuleInformation
</a>
60 <h4><a name=
"api:GetPriorityClass">GetPriorityClass
</a>
61 <h4><a name=
"api:GetProcessId">GetProcessId
</a></h4>
62 <h4><a name=
"api:GetProcessTimes">GetProcessTimes
</a></h4>
63 <h4><a name=
"api:GetProcessWorkingSetSize">GetProcessWorkingSetSize
</a></h4>
64 <h4><a name=
"api:GetStdHandle">GetStdHandle
</a></h4>
65 <h4><a name=
"api:GetSystemInfo">GetSystemInfo
</a></h4>
66 <h4><a name=
"api:GetTempPath">GetTempPath
</a></h4>
67 <h4><a name=
"api:GetThreadContext">GetThreadContext
</a></h4>
68 <h4><a name=
"api:GetTickCount">GetTickCount
</a></h4>
69 <h4><a name=
"api:ImpersonateLoggedOnUser">ImpersonateLoggedOnUser
</a></h4>
70 <h4><a name=
"api:InitializeCriticalSectionAndSpinCount">InitializeCriticalSectionAndSpinCount
</a></h4>
71 <h4><a name=
"api:InitializeCriticalSection">InitializeCriticalSection
</a></h4>
72 <h4><a name=
"api:ioctlsocket">ioctlsocket
</a></h4>
73 <h4><a name=
"api:LeaveCriticalSection">LeaveCriticalSection
</a></h4>
74 <h4><a name=
"api:LockFile">LockFile
</a></h4>
75 <h4><a name=
"api:MoveFile">MoveFile
</a></h4>
76 <h4><a name=
"api:OpenEvent">OpenEvent
</a></h4>
77 <h4><a name=
"api:OpenMutex">OpenMutex
</a></h4>
78 <h4><a name=
"api:OpenProcess">OpenProcess
</a></h4>
79 <h4><a name=
"api:OpenSemaphore">OpenSemaphore
</a></h4>
80 <h4><a name=
"api:OpenThread">OpenThread
</a></h4>
81 <h4><a name=
"api:PulseEvent">PulseEvent
</a></h4>
82 <h4><a name=
"api:QueryPerformanceCounter">QueryPerformanceCounter
</a></h4>
83 <h4><a name=
"api:QueryPerformanceFrequency">QueryPerformanceFrequency
</a></h4>
84 <h4><a name=
"api:QueueUserAPC">QueueUserAPC
</a></h4>
85 <h4><a name=
"api:ReadFile">ReadFile
</a></h4>
86 <h4><a name=
"api:ReleaseMutex">ReleaseMutex
</a></h4>
87 <h4><a name=
"api:ReleaseSemaphore">ReleaseSemaphore
</a></h4>
88 <h4><a name=
"api:RemoveDirectory">RemoveDirectory
</a></h4>
89 <h4><a name=
"api:ReplaceFile">ReplaceFile
</a>
90 <h4><a name=
"api:ResetEvent">ResetEvent
</a></h4>
91 <h4><a name=
"api:ResumeThread">ResumeThread
</a></h4>
92 <h4><a name=
"api:RevertToSelf">RevertToSelf
</a></h4>
93 <h4><a name=
"api:SetCriticalSectionSpinCount">SetCriticalSectionSpinCount
</a></h4>
94 <h4><a name=
"api:SetCurrentDirectory">SetCurrentDirectory
</a></h4>
95 <h4><a name=
"api:SetEndOfFile">SetEndOfFile
</a></h4>
96 <h4><a name=
"api:SetEvent">SetEvent
</a></h4>
97 <h4><a name=
"api:SetFileAttributes">SetFileAttributes
</a></h4>
98 <h4><a name=
"api:SetFilePointer">SetFilePointer
</a></h4>
99 <h4><a name=
"api:SetFileTime">SetFileTime
</a></h4>
100 <h4><a name=
"api:SetLastError">SetLastError
</a></h4>
101 <h4><a name=
"api:SetPriorityClass">SetPriorityClass
</a>
102 <h4><a name=
"api:SetProcessWorkingSetSize">SetProcessWorkingSetSize
</a></h4>
103 <h4><a name=
"api:ShellExecuteEx">ShellExecuteEx
</a></h4>
104 <h4><a name=
"api:SignalObjectAndWait">SignalObjectAndWait
</a></h4>
105 <h4><a name=
"api:SleepEx">SleepEx
</a></h4>
106 <h4><a name=
"api:Sleep">Sleep
</a></h4>
107 <h4><a name=
"api:SuspendThread">SuspendThread
</a></h4>
108 <h4><a name=
"api:TerminateProcess">TerminateProcess
</a></h4>
109 <h4><a name=
"api:TlsAlloc">TlsAlloc
</a></h4>
110 <h4><a name=
"api:TlsFree">TlsFree
</a></h4>
111 <h4><a name=
"api:TlsGetValue">TlsGetValue
</a></h4>
112 <h4><a name=
"api:TlsSetValue">TlsSetValue
</a></h4>
113 <h4><a name=
"api:TransmitFile">TransmitFile
</a>
114 <h4><a name=
"api:TryEnterCriticalSection">TryEnterCriticalSection
</a></h4>
115 <h4><a name=
"api:UnlockFile">UnlockFile
</a></h4>
116 <h4><a name=
"api:VerLanguageName">VerLanguageName
</a>
117 <h4><a name=
"api:VerQueryValue">VerQueryValue
</a>
118 <h4><a name=
"api:WaitForInputIdle">WaitForInputIdle
</a>
119 <h4><a name=
"api:WaitForMultipleObjectsEx">WaitForMultipleObjectsEx
</a></h4>
120 <h4><a name=
"api:WaitForMultipleObjects">WaitForMultipleObjects
</a></h4>
121 <h4><a name=
"api:WaitForSingleObjectEx">WaitForSingleObjectEx
</a></h4>
122 <h4><a name=
"api:WaitForSingleObject">WaitForSingleObject
</a></h4>
123 <h4><a name=
"api:WriteFile">WriteFile
</a></h4>
124 <h4><a name=
"api:WSACleanup">WSACleanup
</a></h4>
125 <h4><a name=
"api:WSAGetLastError">WSAGetLastError
</a></h4>
126 <h4><a name=
"api:WSAIoctl">WSAIoctl
</a></h4>
127 <h4><a name=
"api:WSARecv">WSARecv
</a></h4>
128 <h4><a name=
"api:WSASend">WSASend
</a></h4>
129 <h4><a name=
"api:WSASetLastError">WSASetLastError
</a></h4>
130 <h4><a name=
"api:WSAStartup">WSAStartup
</a></h4>
132 <h3>Extended APIs
</h3>
134 <p>The extended APIs provide access to a few internals of the
135 WAPI stack that are not exposed through the standard Win32
138 <h4><a name=
"api:mono_once">mono_once
</a></h4>
139 <h4><a name=
"api:wapi_clear_interruption">wapi_clear_interruption
</a>
140 <h4><a name=
"api:wapi_current_thread_desc">wapi_current_thread_desc
</a>
141 <h4><a name=
"api:wapi_interrupt_thread">wapi_interrupt_thread
</a>
142 <h4><a name=
"api:wapi_self_interrupt">wapi_self_interrupt
</a>
143 <h4><a name=
"api:wapi_thread_clear_wait_handle">wapi_thread_clear_wait_handle
</a>
144 <h4><a name=
"api:wapi_thread_set_wait_handle">wapi_thread_set_wait_handle
</a>