3c0d719156efb4aa9f0fa613aed3ab16a35733cc
[reactos.git] / reactos / include / ndk / kefuncs.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/kefuncs.h
4 * PURPOSE: Prototypes for Kernel Functions not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _KEFUNCS_H
10 #define _KEFUNCS_H
11
12 /* DEPENDENCIES **************************************************************/
13 #include "ketypes.h"
14
15 /* FUNCTION TYPES ************************************************************/
16
17 /* PROTOTYPES ****************************************************************/
18
19 VOID
20 STDCALL
21 KeInitializeApc(
22 IN PKAPC Apc,
23 IN PKTHREAD Thread,
24 IN KAPC_ENVIRONMENT TargetEnvironment,
25 IN PKKERNEL_ROUTINE KernelRoutine,
26 IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL,
27 IN PKNORMAL_ROUTINE NormalRoutine,
28 IN KPROCESSOR_MODE Mode,
29 IN PVOID Context
30 );
31
32 VOID
33 STDCALL
34 KeEnterKernelDebugger(VOID);
35
36 VOID
37 FASTCALL
38 KiAcquireSpinLock(
39 PKSPIN_LOCK SpinLock
40 );
41
42 VOID
43 FASTCALL
44 KiReleaseSpinLock(
45 PKSPIN_LOCK SpinLock
46 );
47
48 VOID
49 STDCALL
50 KiDeliverApc(
51 IN KPROCESSOR_MODE PreviousMode,
52 IN PVOID Reserved,
53 IN PKTRAP_FRAME TrapFrame
54 );
55
56 VOID
57 STDCALL
58 KiDispatchInterrupt(VOID);
59
60
61 BOOLEAN
62 STDCALL
63 KeAreApcsDisabled(
64 VOID
65 );
66
67 VOID
68 STDCALL
69 KeFlushQueuedDpcs(
70 VOID
71 );
72
73 ULONG
74 STDCALL
75 KeGetRecommendedSharedDataAlignment(
76 VOID
77 );
78
79 ULONG
80 STDCALL
81 KeQueryRuntimeThread(
82 IN PKTHREAD Thread,
83 OUT PULONG UserTime
84 );
85
86 BOOLEAN
87 STDCALL
88 KeSetKernelStackSwapEnable(
89 IN BOOLEAN Enable
90 );
91
92 BOOLEAN
93 STDCALL
94 KeDeregisterBugCheckReasonCallback(
95 IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
96 );
97
98 BOOLEAN
99 STDCALL
100 KeRegisterBugCheckReasonCallback(
101 IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
102 IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
103 IN KBUGCHECK_CALLBACK_REASON Reason,
104 IN PUCHAR Component
105 );
106
107 VOID
108 STDCALL
109 KeTerminateThread(
110 IN KPRIORITY Increment
111 );
112
113 BOOLEAN
114 STDCALL
115 KeIsAttachedProcess(VOID);
116
117 BOOLEAN
118 STDCALL
119 KeIsExecutingDpc(
120 VOID
121 );
122
123 VOID
124 STDCALL
125 KeSetEventBoostPriority(
126 IN PKEVENT Event,
127 IN PKTHREAD *Thread OPTIONAL
128 );
129
130 PCONFIGURATION_COMPONENT_DATA
131 STDCALL
132 KeFindConfigurationNextEntry(
133 IN PCONFIGURATION_COMPONENT_DATA Child,
134 IN CONFIGURATION_CLASS Class,
135 IN CONFIGURATION_TYPE Type,
136 IN PULONG ComponentKey OPTIONAL,
137 IN PCONFIGURATION_COMPONENT_DATA *NextLink
138 );
139
140 PCONFIGURATION_COMPONENT_DATA
141 STDCALL
142 KeFindConfigurationEntry(
143 IN PCONFIGURATION_COMPONENT_DATA Child,
144 IN CONFIGURATION_CLASS Class,
145 IN CONFIGURATION_TYPE Type,
146 IN PULONG ComponentKey OPTIONAL
147 );
148
149 VOID
150 STDCALL
151 KeFlushEntireTb(
152 IN BOOLEAN Unknown,
153 IN BOOLEAN CurrentCpuOnly
154 );
155
156 VOID
157 STDCALL
158 KeRevertToUserAffinityThread(
159 VOID
160 );
161
162 VOID
163 STDCALL
164 KiCoprocessorError(
165 VOID
166 );
167
168 VOID
169 STDCALL
170 KiUnexpectedInterrupt(
171 VOID
172 );
173
174 VOID
175 STDCALL
176 KeSetDmaIoCoherency(
177 IN ULONG Coherency
178 );
179
180 VOID
181 STDCALL
182 KeSetProfileIrql(
183 IN KIRQL ProfileIrql
184 );
185
186 NTSTATUS
187 STDCALL
188 KeSetAffinityThread(
189 PKTHREAD Thread,
190 KAFFINITY Affinity
191 );
192
193 VOID
194 STDCALL
195 KeSetSystemAffinityThread(
196 IN KAFFINITY Affinity
197 );
198
199 NTSTATUS
200 STDCALL
201 KeUserModeCallback(
202 IN ULONG FunctionID,
203 IN PVOID InputBuffer,
204 IN ULONG InputLength,
205 OUT PVOID *OutputBuffer,
206 OUT PULONG OutputLength
207 );
208
209 VOID
210 STDCALL
211 KeSetTimeIncrement(
212 IN ULONG MaxIncrement,
213 IN ULONG MinIncrement
214 );
215
216 VOID
217 STDCALL
218 KeInitializeInterrupt(
219 PKINTERRUPT InterruptObject,
220 PKSERVICE_ROUTINE ServiceRoutine,
221 PVOID ServiceContext,
222 PKSPIN_LOCK SpinLock,
223 ULONG Vector,
224 KIRQL Irql,
225 KIRQL SynchronizeIrql,
226 KINTERRUPT_MODE InterruptMode,
227 BOOLEAN ShareVector,
228 CHAR ProcessorNumber,
229 BOOLEAN FloatingSave
230 );
231
232 BOOLEAN
233 STDCALL
234 KeConnectInterrupt(
235 PKINTERRUPT InterruptObject
236 );
237
238 BOOLEAN
239 STDCALL
240 KeDisconnectInterrupt(
241 PKINTERRUPT InterruptObject
242 );
243
244 PKPROCESS
245 STDCALL
246 KeGetCurrentProcess(
247 VOID
248 );
249
250 VOID
251 KeSetGdtSelector(
252 ULONG Entry,
253 ULONG Value1,
254 ULONG Value2
255 );
256
257 LONG
258 STDCALL
259 KeReadStateMutant(
260 IN PKMUTANT Mutant
261 );
262
263 VOID
264 STDCALL
265 KeInitializeMutant(
266 IN PKMUTANT Mutant,
267 IN BOOLEAN InitialOwner
268 );
269
270 LONG
271 STDCALL
272 KeReleaseMutant(
273 IN PKMUTANT Mutant,
274 IN KPRIORITY Increment,
275 IN BOOLEAN Abandon,
276 IN BOOLEAN Wait
277 );
278
279 NTSTATUS
280 STDCALL
281 KeRaiseUserException(
282 IN NTSTATUS ExceptionCode
283 );
284
285 VOID
286 STDCALL
287 KeFlushWriteBuffer(VOID);
288
289 #endif