Sync trunk.
[reactos.git] / include / ndk / umfuncs.h
1 /*++ NDK Version: 0098
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 umfuncs.h
8
9 Abstract:
10
11 Function definitions for Native DLL (ntdll) APIs exclusive to User Mode.
12
13 Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17 --*/
18
19 #ifndef _UMFUNCS_H
20 #define _UMFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <dbgktypes.h>
27
28 //
29 // Don't force inclusion of csrss header, leave this opaque.
30 //
31 struct _CSR_API_MESSAGE;
32 struct _CSR_CAPTURE_BUFFER;
33
34 //
35 // CSR Functions
36 //
37 PVOID
38 NTAPI
39 CsrAllocateCaptureBuffer(
40 ULONG ArgumentCount,
41 ULONG BufferSize
42 );
43
44 ULONG
45 NTAPI
46 CsrAllocateMessagePointer(
47 struct _CSR_CAPTURE_BUFFER *CaptureBuffer,
48 ULONG MessageLength,
49 PVOID *CaptureData
50 );
51
52 VOID
53 NTAPI
54 CsrCaptureMessageBuffer(
55 struct _CSR_CAPTURE_BUFFER *CaptureBuffer,
56 PVOID MessageString,
57 ULONG StringLength,
58 PVOID *CapturedData
59 );
60
61 NTSTATUS
62 NTAPI
63 CsrClientConnectToServer(
64 PWSTR ObjectDirectory,
65 ULONG ServerId,
66 PVOID ConnectionInfo,
67 PULONG ConnectionInfoSize,
68 PBOOLEAN ServerToServerCall
69 );
70
71 NTSTATUS
72 NTAPI
73 CsrClientCallServer(
74 struct _CSR_API_MESSAGE *Request,
75 struct _CSR_CAPTURE_BUFFER *CaptureBuffer OPTIONAL,
76 ULONG ApiNumber,
77 ULONG RequestLength
78 );
79
80 NTSTATUS
81 NTAPI
82 CsrIdentifyAlertableThread(
83 VOID
84 );
85
86 VOID
87 NTAPI
88 CsrFreeCaptureBuffer(
89 struct _CSR_CAPTURE_BUFFER *CaptureBuffer
90 );
91
92 HANDLE
93 NTAPI
94 CsrGetProcessId(
95 VOID
96 );
97
98 NTSTATUS
99 NTAPI
100 CsrNewThread(VOID);
101
102 NTSTATUS
103 NTAPI
104 CsrSetPriorityClass(
105 HANDLE Process,
106 PULONG PriorityClass
107 );
108
109 VOID
110 NTAPI
111 CsrProbeForRead(
112 IN PVOID Address,
113 IN ULONG Length,
114 IN ULONG Alignment
115 );
116
117 VOID
118 NTAPI
119 CsrProbeForWrite(
120 IN PVOID Address,
121 IN ULONG Length,
122 IN ULONG Alignment
123 );
124
125 //
126 // Debug Functions
127 //
128 NTSYSAPI
129 VOID
130 NTAPI
131 DbgBreakPointWithStatus(
132 IN ULONG Status
133 );
134
135 NTSTATUS
136 NTAPI
137 DbgUiConnectToDbg(
138 VOID
139 );
140
141 NTSTATUS
142 NTAPI
143 DbgUiContinue(
144 IN PCLIENT_ID ClientId,
145 IN NTSTATUS ContinueStatus
146 );
147
148 NTSTATUS
149 NTAPI
150 DbgUiDebugActiveProcess(
151 IN HANDLE Process
152 );
153
154 NTSTATUS
155 NTAPI
156 DbgUiStopDebugging(
157 IN HANDLE Process
158 );
159
160 NTSTATUS
161 NTAPI
162 DbgUiWaitStateChange(
163 IN PDBGUI_WAIT_STATE_CHANGE DbgUiWaitStateCange,
164 IN PLARGE_INTEGER TimeOut
165 );
166
167 NTSTATUS
168 NTAPI
169 DbgUiConvertStateChangeStructure(
170 IN PDBGUI_WAIT_STATE_CHANGE WaitStateChange,
171 IN PVOID DebugEvent
172 );
173
174 VOID
175 NTAPI
176 DbgUiRemoteBreakin(
177 VOID
178 );
179
180 NTSTATUS
181 NTAPI
182 DbgUiIssueRemoteBreakin(
183 IN HANDLE Process
184 );
185
186 HANDLE
187 NTAPI
188 DbgUiGetThreadDebugObject(
189 VOID
190 );
191
192 //
193 // Loader Functions
194 //
195
196 NTSTATUS
197 NTAPI
198 LdrAddRefDll(
199 IN ULONG Flags,
200 IN PVOID BaseAddress
201 );
202
203 NTSTATUS
204 NTAPI
205 LdrDisableThreadCalloutsForDll(
206 IN PVOID BaseAddress
207 );
208
209 NTSTATUS
210 NTAPI
211 LdrGetDllHandle(
212 IN PWSTR DllPath OPTIONAL,
213 IN PULONG DllCharacteristics,
214 IN PUNICODE_STRING DllName,
215 OUT PVOID *DllHandle
216 );
217
218 NTSTATUS
219 NTAPI
220 LdrFindEntryForAddress(
221 IN PVOID Address,
222 OUT PLDR_DATA_TABLE_ENTRY *Module
223 );
224
225 NTSTATUS
226 NTAPI
227 LdrGetProcedureAddress(
228 IN PVOID BaseAddress,
229 IN PANSI_STRING Name,
230 IN ULONG Ordinal,
231 OUT PVOID *ProcedureAddress
232 );
233
234 VOID
235 NTAPI
236 LdrInitializeThunk(
237 ULONG Unknown1,
238 ULONG Unknown2,
239 ULONG Unknown3,
240 ULONG Unknown4
241 );
242
243 NTSTATUS
244 NTAPI
245 LdrLoadDll(
246 IN PWSTR SearchPath OPTIONAL,
247 IN PULONG LoadFlags OPTIONAL,
248 IN PUNICODE_STRING Name,
249 OUT PVOID *BaseAddress OPTIONAL
250 );
251
252 PIMAGE_BASE_RELOCATION
253 NTAPI
254 LdrProcessRelocationBlock(
255 IN ULONG_PTR Address,
256 IN ULONG Count,
257 IN PUSHORT TypeOffset,
258 IN LONG_PTR Delta
259 );
260
261 NTSTATUS
262 NTAPI
263 LdrQueryImageFileExecutionOptions(
264 IN PUNICODE_STRING SubKey,
265 IN PCWSTR ValueName,
266 IN ULONG ValueSize,
267 OUT PVOID Buffer,
268 IN ULONG BufferSize,
269 OUT PULONG RetunedLength OPTIONAL
270 );
271
272 NTSTATUS
273 NTAPI
274 LdrQueryProcessModuleInformation(
275 IN PRTL_PROCESS_MODULES ModuleInformation OPTIONAL,
276 IN ULONG Size OPTIONAL,
277 OUT PULONG ReturnedSize
278 );
279
280 NTSTATUS
281 NTAPI
282 LdrShutdownProcess(
283 VOID
284 );
285
286 NTSTATUS
287 NTAPI
288 LdrShutdownThread(
289 VOID
290 );
291
292 NTSTATUS
293 NTAPI
294 LdrUnloadDll(
295 IN PVOID BaseAddress
296 );
297
298 NTSTATUS
299 NTAPI
300 LdrVerifyImageMatchesChecksum(
301 IN HANDLE FileHandle,
302 ULONG Unknown1,
303 ULONG Unknown2,
304 ULONG Unknown3
305 );
306
307 #endif