3 Copyright (c) Alex Ionescu. All rights reserved.
11 Functions definitions for the Kernel services.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
28 #ifndef NTOS_MODE_USER
38 IN KAPC_ENVIRONMENT TargetEnvironment
,
39 IN PKKERNEL_ROUTINE KernelRoutine
,
40 IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL
,
41 IN PKNORMAL_ROUTINE NormalRoutine
,
42 IN KPROCESSOR_MODE Mode
,
49 IN KPROCESSOR_MODE PreviousMode
,
51 IN PKTRAP_FRAME TrapFrame
55 // Process/Thread Functions
60 IN KPRIORITY Increment
71 KeSetEventBoostPriority(
73 IN PKTHREAD
*Thread OPTIONAL
91 KeAddSystemServiceTable(
93 PULONG Count OPTIONAL
,
100 // Spinlock Functions
115 // Interrupt Functions
119 KeInitializeInterrupt(
120 PKINTERRUPT InterruptObject
,
121 PKSERVICE_ROUTINE ServiceRoutine
,
122 PVOID ServiceContext
,
123 PKSPIN_LOCK SpinLock
,
126 KIRQL SynchronizeIrql
,
127 KINTERRUPT_MODE InterruptMode
,
129 CHAR ProcessorNumber
,
136 PKINTERRUPT InterruptObject
141 KeDisconnectInterrupt(
142 PKINTERRUPT InterruptObject
159 KiUnexpectedInterrupt(
165 KeEnterKernelDebugger(
176 // ARC Configuration Functions
178 PCONFIGURATION_COMPONENT_DATA
180 KeFindConfigurationNextEntry(
181 IN PCONFIGURATION_COMPONENT_DATA Child
,
182 IN CONFIGURATION_CLASS Class
,
183 IN CONFIGURATION_TYPE Type
,
184 IN PULONG ComponentKey OPTIONAL
,
185 IN PCONFIGURATION_COMPONENT_DATA
*NextLink
188 PCONFIGURATION_COMPONENT_DATA
190 KeFindConfigurationEntry(
191 IN PCONFIGURATION_COMPONENT_DATA Child
,
192 IN CONFIGURATION_CLASS Class
,
193 IN CONFIGURATION_TYPE Type
,
194 IN PULONG ComponentKey OPTIONAL
198 // Low-level Hardware/CPU Control Functions
204 IN BOOLEAN CurrentCpuOnly
229 IN ULONG MaxIncrement
,
230 IN ULONG MinIncrement
240 IN PVOID InputBuffer
,
241 IN ULONG InputLength
,
242 OUT PVOID
*OutputBuffer
,
243 OUT PULONG OutputLength
248 KeRaiseUserException(
249 IN NTSTATUS ExceptionCode
275 OUT PHANDLE ProfileHandle
,
276 IN HANDLE ProcessHandle
,
279 IN ULONG Granularity
,
281 IN ULONG ProfilingSize
,
282 IN KPROFILE_SOURCE Source
,
283 IN KAFFINITY ProcessorMask
289 IN BOOLEAN Alertable
,
290 IN LARGE_INTEGER
*Interval
295 NtFlushInstructionCache(
296 IN HANDLE ProcessHandle
,
297 IN PVOID BaseAddress
,
298 IN ULONG NumberOfBytesToFlush
304 IN HANDLE ThreadHandle
,
316 NtQueryIntervalProfile(
317 IN KPROFILE_SOURCE ProfileSource
,
323 NtQueryPerformanceCounter(
324 IN PLARGE_INTEGER Counter
,
325 IN PLARGE_INTEGER Frequency
331 OUT PLARGE_INTEGER CurrentTime
336 NtQueryTimerResolution(
337 OUT PULONG MinimumResolution
,
338 OUT PULONG MaximumResolution
,
339 OUT PULONG ActualResolution
346 PKNORMAL_ROUTINE ApcRoutine
,
348 PVOID SystemArgument1
,
349 PVOID SystemArgument2
355 IN PEXCEPTION_RECORD ExceptionRecord
,
357 IN BOOLEAN SearchFrames
363 IN HANDLE ThreadHandle
,
369 NtSetIntervalProfile(
371 KPROFILE_SOURCE ClockSource
386 IN PLARGE_INTEGER SystemTime
,
387 IN PLARGE_INTEGER NewSystemTime OPTIONAL
392 NtSetTimerResolution(
393 IN ULONG RequestedResolution
,
394 IN BOOLEAN SetOrUnset
,
395 OUT PULONG ActualResolution
401 IN HANDLE ProfileHandle
407 IN HANDLE ProfileHandle
426 IN ULONG RoutineIndex
,
428 IN ULONG ArgumentLength
,
429 OUT PVOID
* Result OPTIONAL
,
430 OUT PULONG ResultLength OPTIONAL
457 OUT PHANDLE ProfileHandle
,
458 IN HANDLE ProcessHandle
,
461 IN ULONG Granularity
,
463 IN ULONG ProfilingSize
,
464 IN KPROFILE_SOURCE Source
,
465 IN KAFFINITY ProcessorMask
471 IN BOOLEAN Alertable
,
472 IN LARGE_INTEGER
*Interval
477 ZwFlushInstructionCache(
478 IN HANDLE ProcessHandle
,
479 IN PVOID BaseAddress
,
480 IN ULONG NumberOfBytesToFlush
486 IN HANDLE ThreadHandle
,
498 ZwQueryIntervalProfile(
499 IN KPROFILE_SOURCE ProfileSource
,
505 ZwQueryPerformanceCounter(
506 IN PLARGE_INTEGER Counter
,
507 IN PLARGE_INTEGER Frequency
513 OUT PLARGE_INTEGER CurrentTime
518 ZwQueryTimerResolution(
519 OUT PULONG MinimumResolution
,
520 OUT PULONG MaximumResolution
,
521 OUT PULONG ActualResolution
528 PKNORMAL_ROUTINE ApcRoutine
,
530 PVOID SystemArgument1
,
531 PVOID SystemArgument2
537 IN PEXCEPTION_RECORD ExceptionRecord
,
539 IN BOOLEAN SearchFrames
545 IN HANDLE ThreadHandle
,
551 ZwSetIntervalProfile(
553 KPROFILE_SOURCE ClockSource
568 IN PLARGE_INTEGER SystemTime
,
569 IN PLARGE_INTEGER NewSystemTime OPTIONAL
574 ZwSetTimerResolution(
575 IN ULONG RequestedResolution
,
576 IN BOOLEAN SetOrUnset
,
577 OUT PULONG ActualResolution
583 IN HANDLE ProfileHandle
589 IN HANDLE ProfileHandle
608 IN ULONG RoutineIndex
,
610 IN ULONG ArgumentLength
,
611 OUT PVOID
* Result OPTIONAL
,
612 OUT PULONG ResultLength OPTIONAL