[jit] Fix the saving of the 'cfg->ret_var_set' flag when inlining, it was set to...
[mono.git] / docs / sources / mono-api-wapi.html
1 <h2>Windows Compatibility API</h2>
2
3         <p>Mono implements a small subset of the Win32 API for some
4         file system interaction, I/O, thread and process operations.
5
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"). 
9
10 <h3>Windows Compatibility API</h3>
11
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></h4>
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></h4>
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></h4>
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></h4>
45 <h4><a name="api:GetDriveType">GetDriveType</a></h4>
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></h4>
54 <h4><a name="api:GetFileVersionInfoSize">GetFileVersionInfoSize</a></h4>
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></h4>
59 <h4><a name="api:GetModuleInformation">GetModuleInformation</a></h4>
60 <h4><a name="api:GetPriorityClass">GetPriorityClass</a></h4>
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></h4>
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></h4>
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></h4>
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></h4>
117 <h4><a name="api:VerQueryValue">VerQueryValue</a></h4>
118 <h4><a name="api:WaitForInputIdle">WaitForInputIdle</a></h4>
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>
131
132 <h3>Extended APIs</h3>
133
134         <p>The extended APIs provide access to a few internals of the
135         WAPI stack that are not exposed through the standard Win32
136         APIs.
137         
138 <h4><a name="api:mono_once">mono_once</a></h4>
139 <h4><a name="api:wapi_clear_interruption">wapi_clear_interruption</a></h4>
140 <h4><a name="api:wapi_current_thread_desc">wapi_current_thread_desc</a></h4>
141 <h4><a name="api:wapi_interrupt_thread">wapi_interrupt_thread</a></h4>
142 <h4><a name="api:wapi_self_interrupt">wapi_self_interrupt</a></h4>
143 <h4><a name="api:wapi_thread_clear_wait_handle">wapi_thread_clear_wait_handle</a></h4>
144 <h4><a name="api:wapi_thread_set_wait_handle">wapi_thread_set_wait_handle</a></h4>