Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenkefuncs.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0098 00002 00003 Copyright (c) Alex Ionescu. All rights reserved. 00004 00005 Header Name: 00006 00007 kefuncs.h 00008 00009 Abstract: 00010 00011 Functions definitions for the Kernel services. 00012 00013 Author: 00014 00015 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006 00016 00017 --*/ 00018 00019 #ifndef _KEFUNCS_H 00020 #define _KEFUNCS_H 00021 00022 // 00023 // Dependencies 00024 // 00025 #include <umtypes.h> 00026 #include <ketypes.h> 00027 00028 #ifndef NTOS_MODE_USER 00029 00030 // 00031 // APC Functions 00032 // 00033 VOID 00034 NTAPI 00035 KeInitializeApc( 00036 IN PKAPC Apc, 00037 IN PKTHREAD Thread, 00038 IN KAPC_ENVIRONMENT TargetEnvironment, 00039 IN PKKERNEL_ROUTINE KernelRoutine, 00040 IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL, 00041 IN PKNORMAL_ROUTINE NormalRoutine, 00042 IN KPROCESSOR_MODE Mode, 00043 IN PVOID Context 00044 ); 00045 00046 BOOLEAN 00047 NTAPI 00048 KeInsertQueueApc( 00049 IN PKAPC Apc, 00050 IN PVOID SystemArgument1, 00051 IN PVOID SystemArgument2, 00052 IN KPRIORITY PriorityBoost 00053 ); 00054 00055 VOID 00056 NTAPI 00057 KiDeliverApc( 00058 IN KPROCESSOR_MODE PreviousMode, 00059 IN PKEXCEPTION_FRAME ExceptionFrame, 00060 IN PKTRAP_FRAME TrapFrame 00061 ); 00062 00063 // 00064 // Process/Thread Functions 00065 // 00066 VOID 00067 NTAPI 00068 KeTerminateThread( 00069 IN KPRIORITY Increment 00070 ); 00071 00072 BOOLEAN 00073 NTAPI 00074 KeIsAttachedProcess( 00075 VOID 00076 ); 00077 00078 VOID 00079 NTAPI 00080 KeSetEventBoostPriority( 00081 IN PKEVENT Event, 00082 IN PKTHREAD *Thread OPTIONAL 00083 ); 00084 00085 KAFFINITY 00086 NTAPI 00087 KeSetAffinityThread( 00088 PKTHREAD Thread, 00089 KAFFINITY Affinity 00090 ); 00091 00092 PKPROCESS 00093 NTAPI 00094 KeGetCurrentProcess( 00095 VOID 00096 ); 00097 00098 BOOLEAN 00099 NTAPI 00100 KeAddSystemServiceTable( 00101 PULONG_PTR Base, 00102 PULONG Count OPTIONAL, 00103 ULONG Limit, 00104 PUCHAR Number, 00105 ULONG Index 00106 ); 00107 00108 // 00109 // Spinlock Functions 00110 // 00111 VOID 00112 FASTCALL 00113 KiAcquireSpinLock( 00114 PKSPIN_LOCK SpinLock 00115 ); 00116 00117 VOID 00118 FASTCALL 00119 KiReleaseSpinLock( 00120 PKSPIN_LOCK SpinLock 00121 ); 00122 00123 KIRQL 00124 FASTCALL 00125 KeAcquireQueuedSpinLockRaiseToSynch( 00126 IN KSPIN_LOCK_QUEUE_NUMBER LockNumber 00127 ); 00128 00129 BOOLEAN 00130 FASTCALL 00131 KeTryToAcquireQueuedSpinLockRaiseToSynch( 00132 IN KSPIN_LOCK_QUEUE_NUMBER LockNumber, 00133 IN PKIRQL OldIrql 00134 ); 00135 00136 VOID 00137 FASTCALL 00138 KeAcquireInStackQueuedSpinLockRaiseToSynch( 00139 IN PKSPIN_LOCK SpinLock, 00140 IN PKLOCK_QUEUE_HANDLE LockHandle 00141 ); 00142 00143 00144 // 00145 // Interrupt Functions 00146 // 00147 VOID 00148 NTAPI 00149 KeInitializeInterrupt( 00150 PKINTERRUPT InterruptObject, 00151 PKSERVICE_ROUTINE ServiceRoutine, 00152 PVOID ServiceContext, 00153 PKSPIN_LOCK SpinLock, 00154 ULONG Vector, 00155 KIRQL Irql, 00156 KIRQL SynchronizeIrql, 00157 KINTERRUPT_MODE InterruptMode, 00158 BOOLEAN ShareVector, 00159 CHAR ProcessorNumber, 00160 BOOLEAN FloatingSave 00161 ); 00162 00163 BOOLEAN 00164 NTAPI 00165 KeConnectInterrupt( 00166 PKINTERRUPT InterruptObject 00167 ); 00168 00169 BOOLEAN 00170 NTAPI 00171 KeDisconnectInterrupt( 00172 PKINTERRUPT InterruptObject 00173 ); 00174 00175 VOID 00176 NTAPI 00177 KiDispatchInterrupt( 00178 VOID 00179 ); 00180 00181 VOID 00182 NTAPI 00183 KiCoprocessorError( 00184 VOID 00185 ); 00186 00187 VOID 00188 KiUnexpectedInterrupt( 00189 VOID 00190 ); 00191 00192 VOID 00193 NTAPI 00194 KeEnterKernelDebugger( 00195 VOID 00196 ); 00197 00198 BOOLEAN 00199 NTAPI 00200 KeIsExecutingDpc( 00201 VOID 00202 ); 00203 00204 BOOLEAN 00205 NTAPI 00206 KiIpiServiceRoutine( 00207 IN PKTRAP_FRAME TrapFrame, 00208 IN PKEXCEPTION_FRAME ExceptionFrame 00209 ); 00210 00211 // 00212 // Generic DPC Routines 00213 // 00214 VOID 00215 NTAPI 00216 KeGenericCallDpc( 00217 IN PKDEFERRED_ROUTINE Routine, 00218 IN PVOID Context 00219 ); 00220 00221 VOID 00222 NTAPI 00223 KeSignalCallDpcDone( 00224 IN PVOID SystemArgument1 00225 ); 00226 00227 BOOLEAN 00228 NTAPI 00229 KeSignalCallDpcSynchronize( 00230 IN PVOID SystemArgument2 00231 ); 00232 00233 // 00234 // ARC Configuration Functions. Only enabled if you have ARC Support 00235 // 00236 #ifdef _ARC_ 00237 PCONFIGURATION_COMPONENT_DATA 00238 NTAPI 00239 KeFindConfigurationNextEntry( 00240 IN PCONFIGURATION_COMPONENT_DATA Child, 00241 IN CONFIGURATION_CLASS Class, 00242 IN CONFIGURATION_TYPE Type, 00243 IN PULONG ComponentKey OPTIONAL, 00244 IN PCONFIGURATION_COMPONENT_DATA *NextLink 00245 ); 00246 00247 PCONFIGURATION_COMPONENT_DATA 00248 NTAPI 00249 KeFindConfigurationEntry( 00250 IN PCONFIGURATION_COMPONENT_DATA Child, 00251 IN CONFIGURATION_CLASS Class, 00252 IN CONFIGURATION_TYPE Type, 00253 IN PULONG ComponentKey OPTIONAL 00254 ); 00255 #endif 00256 00257 // 00258 // Low-level Hardware/CPU Control Functions 00259 // 00260 VOID 00261 NTAPI 00262 KeFlushEntireTb( 00263 IN BOOLEAN Invalid, 00264 IN BOOLEAN AllProcessors 00265 ); 00266 00267 VOID 00268 NTAPI 00269 KeSetDmaIoCoherency( 00270 IN ULONG Coherency 00271 ); 00272 00273 VOID 00274 KeSetGdtSelector( 00275 ULONG Entry, 00276 ULONG Value1, 00277 ULONG Value2 00278 ); 00279 00280 VOID 00281 NTAPI 00282 KeSetProfileIrql( 00283 IN KIRQL ProfileIrql 00284 ); 00285 00286 VOID 00287 NTAPI 00288 KeSetTimeIncrement( 00289 IN ULONG MaxIncrement, 00290 IN ULONG MinIncrement 00291 ); 00292 00293 NTSTATUS 00294 NTAPI 00295 Ke386CallBios( 00296 IN ULONG BiosCommand, 00297 IN OUT PCONTEXT BiosArguments 00298 ); 00299 00300 // 00301 // Misc. Functions 00302 // 00303 NTSTATUS 00304 NTAPI 00305 KeUserModeCallback( 00306 IN ULONG FunctionID, 00307 IN PVOID InputBuffer, 00308 IN ULONG InputLength, 00309 OUT PVOID *OutputBuffer, 00310 OUT PULONG OutputLength 00311 ); 00312 00313 NTSTATUS 00314 NTAPI 00315 KeRaiseUserException( 00316 IN NTSTATUS ExceptionCode 00317 ); 00318 00319 #endif 00320 00321 // 00322 // Native Calls 00323 // 00324 NTSYSCALLAPI 00325 NTSTATUS 00326 NTAPI 00327 NtContinue( 00328 IN PCONTEXT Context, 00329 IN BOOLEAN TestAlert 00330 ); 00331 00332 NTSYSCALLAPI 00333 NTSTATUS 00334 NTAPI 00335 NtCallbackReturn( 00336 PVOID Result, 00337 ULONG ResultLength, 00338 NTSTATUS Status 00339 ); 00340 00341 NTSYSCALLAPI 00342 NTSTATUS 00343 NTAPI 00344 NtCreateProfile( 00345 OUT PHANDLE ProfileHandle, 00346 IN HANDLE ProcessHandle, 00347 IN PVOID ImageBase, 00348 IN ULONG ImageSize, 00349 IN ULONG Granularity, 00350 OUT PVOID Buffer, 00351 IN ULONG ProfilingSize, 00352 IN KPROFILE_SOURCE Source, 00353 IN KAFFINITY ProcessorMask 00354 ); 00355 00356 NTSYSCALLAPI 00357 NTSTATUS 00358 NTAPI 00359 NtDelayExecution( 00360 IN BOOLEAN Alertable, 00361 IN LARGE_INTEGER *Interval 00362 ); 00363 00364 NTSYSCALLAPI 00365 NTSTATUS 00366 NTAPI 00367 NtFlushInstructionCache( 00368 IN HANDLE ProcessHandle, 00369 IN PVOID BaseAddress, 00370 IN ULONG NumberOfBytesToFlush 00371 ); 00372 00373 ULONG 00374 NTAPI 00375 NtGetCurrentProcessorNumber( 00376 VOID 00377 ); 00378 00379 NTSYSCALLAPI 00380 NTSTATUS 00381 NTAPI 00382 NtGetContextThread( 00383 IN HANDLE ThreadHandle, 00384 OUT PCONTEXT Context 00385 ); 00386 00387 NTSYSCALLAPI 00388 ULONG 00389 NTAPI 00390 NtGetTickCount( 00391 VOID 00392 ); 00393 00394 NTSYSCALLAPI 00395 NTSTATUS 00396 NTAPI 00397 NtQueryIntervalProfile( 00398 IN KPROFILE_SOURCE ProfileSource, 00399 OUT PULONG Interval 00400 ); 00401 00402 NTSYSCALLAPI 00403 NTSTATUS 00404 NTAPI 00405 NtQueryPerformanceCounter( 00406 IN PLARGE_INTEGER Counter, 00407 IN PLARGE_INTEGER Frequency 00408 ); 00409 00410 NTSYSCALLAPI 00411 NTSTATUS 00412 NTAPI 00413 NtQuerySystemTime( 00414 OUT PLARGE_INTEGER CurrentTime 00415 ); 00416 00417 NTSYSCALLAPI 00418 NTSTATUS 00419 NTAPI 00420 NtQueryTimerResolution( 00421 OUT PULONG MinimumResolution, 00422 OUT PULONG MaximumResolution, 00423 OUT PULONG ActualResolution 00424 ); 00425 00426 NTSYSCALLAPI 00427 NTSTATUS 00428 NTAPI 00429 NtQueueApcThread( 00430 HANDLE ThreadHandle, 00431 PKNORMAL_ROUTINE ApcRoutine, 00432 PVOID NormalContext, 00433 PVOID SystemArgument1, 00434 PVOID SystemArgument2 00435 ); 00436 00437 NTSYSCALLAPI 00438 NTSTATUS 00439 NTAPI 00440 NtRaiseException( 00441 IN PEXCEPTION_RECORD ExceptionRecord, 00442 IN PCONTEXT Context, 00443 IN BOOLEAN SearchFrames 00444 ); 00445 00446 NTSYSCALLAPI 00447 NTSTATUS 00448 NTAPI 00449 NtSetContextThread( 00450 IN HANDLE ThreadHandle, 00451 IN PCONTEXT Context 00452 ); 00453 00454 NTSYSCALLAPI 00455 NTSTATUS 00456 NTAPI 00457 NtSetIntervalProfile( 00458 IN ULONG Interval, 00459 IN KPROFILE_SOURCE ClockSource 00460 ); 00461 00462 NTSYSCALLAPI 00463 NTSTATUS 00464 NTAPI 00465 NtSetLdtEntries( 00466 IN ULONG Selector1, 00467 IN LDT_ENTRY LdtEntry1, 00468 IN ULONG Selector2, 00469 IN LDT_ENTRY LdtEntry2 00470 ); 00471 00472 NTSYSCALLAPI 00473 NTSTATUS 00474 NTAPI 00475 NtSetSystemTime( 00476 IN PLARGE_INTEGER SystemTime, 00477 IN PLARGE_INTEGER NewSystemTime OPTIONAL 00478 ); 00479 00480 NTSYSCALLAPI 00481 NTSTATUS 00482 NTAPI 00483 NtSetTimerResolution( 00484 IN ULONG RequestedResolution, 00485 IN BOOLEAN SetOrUnset, 00486 OUT PULONG ActualResolution 00487 ); 00488 00489 NTSYSCALLAPI 00490 NTSTATUS 00491 NTAPI 00492 NtStartProfile( 00493 IN HANDLE ProfileHandle 00494 ); 00495 00496 NTSYSCALLAPI 00497 NTSTATUS 00498 NTAPI 00499 NtStopProfile( 00500 IN HANDLE ProfileHandle 00501 ); 00502 00503 NTSYSCALLAPI 00504 NTSTATUS 00505 NTAPI 00506 NtTestAlert( 00507 VOID 00508 ); 00509 00510 NTSYSCALLAPI 00511 NTSTATUS 00512 NTAPI 00513 NtVdmControl( 00514 ULONG ControlCode, 00515 PVOID ControlData 00516 ); 00517 00518 NTSYSCALLAPI 00519 NTSTATUS 00520 NTAPI 00521 NtW32Call( 00522 IN ULONG RoutineIndex, 00523 IN PVOID Argument, 00524 IN ULONG ArgumentLength, 00525 OUT PVOID* Result OPTIONAL, 00526 OUT PULONG ResultLength OPTIONAL 00527 ); 00528 00529 NTSYSCALLAPI 00530 NTSTATUS 00531 NTAPI 00532 NtYieldExecution( 00533 VOID 00534 ); 00535 00536 NTSYSAPI 00537 NTSTATUS 00538 NTAPI 00539 ZwContinue( 00540 IN PCONTEXT Context, 00541 IN BOOLEAN TestAlert 00542 ); 00543 00544 NTSYSAPI 00545 NTSTATUS 00546 NTAPI 00547 ZwCallbackReturn( 00548 PVOID Result, 00549 ULONG ResultLength, 00550 NTSTATUS Status 00551 ); 00552 00553 NTSYSAPI 00554 NTSTATUS 00555 NTAPI 00556 ZwCreateProfile( 00557 OUT PHANDLE ProfileHandle, 00558 IN HANDLE ProcessHandle, 00559 IN PVOID ImageBase, 00560 IN ULONG ImageSize, 00561 IN ULONG Granularity, 00562 OUT PVOID Buffer, 00563 IN ULONG ProfilingSize, 00564 IN KPROFILE_SOURCE Source, 00565 IN KAFFINITY ProcessorMask 00566 ); 00567 00568 NTSYSAPI 00569 NTSTATUS 00570 NTAPI 00571 ZwDelayExecution( 00572 IN BOOLEAN Alertable, 00573 IN LARGE_INTEGER *Interval 00574 ); 00575 00576 NTSYSAPI 00577 NTSTATUS 00578 NTAPI 00579 ZwFlushInstructionCache( 00580 IN HANDLE ProcessHandle, 00581 IN PVOID BaseAddress, 00582 IN ULONG NumberOfBytesToFlush 00583 ); 00584 00585 NTSYSAPI 00586 NTSTATUS 00587 NTAPI 00588 ZwGetContextThread( 00589 IN HANDLE ThreadHandle, 00590 OUT PCONTEXT Context 00591 ); 00592 00593 NTSYSAPI 00594 ULONG 00595 NTAPI 00596 ZwGetTickCount( 00597 VOID 00598 ); 00599 00600 NTSYSAPI 00601 NTSTATUS 00602 NTAPI 00603 ZwQueryIntervalProfile( 00604 IN KPROFILE_SOURCE ProfileSource, 00605 OUT PULONG Interval 00606 ); 00607 00608 NTSYSAPI 00609 NTSTATUS 00610 NTAPI 00611 ZwQueryPerformanceCounter( 00612 IN PLARGE_INTEGER Counter, 00613 IN PLARGE_INTEGER Frequency 00614 ); 00615 00616 NTSYSAPI 00617 NTSTATUS 00618 NTAPI 00619 ZwQuerySystemTime( 00620 OUT PLARGE_INTEGER CurrentTime 00621 ); 00622 00623 NTSYSAPI 00624 NTSTATUS 00625 NTAPI 00626 ZwQueryTimerResolution( 00627 OUT PULONG MinimumResolution, 00628 OUT PULONG MaximumResolution, 00629 OUT PULONG ActualResolution 00630 ); 00631 00632 NTSYSAPI 00633 NTSTATUS 00634 NTAPI 00635 ZwQueueApcThread( 00636 HANDLE ThreadHandle, 00637 PKNORMAL_ROUTINE ApcRoutine, 00638 PVOID NormalContext, 00639 PVOID SystemArgument1, 00640 PVOID SystemArgument2 00641 ); 00642 00643 NTSYSAPI 00644 NTSTATUS 00645 NTAPI 00646 ZwRaiseException( 00647 IN PEXCEPTION_RECORD ExceptionRecord, 00648 IN PCONTEXT Context, 00649 IN BOOLEAN SearchFrames 00650 ); 00651 00652 NTSYSAPI 00653 NTSTATUS 00654 NTAPI 00655 ZwSetContextThread( 00656 IN HANDLE ThreadHandle, 00657 IN PCONTEXT Context 00658 ); 00659 00660 NTSYSAPI 00661 NTSTATUS 00662 NTAPI 00663 ZwSetIntervalProfile( 00664 IN ULONG Interval, 00665 IN KPROFILE_SOURCE ClockSource 00666 ); 00667 00668 NTSYSAPI 00669 NTSTATUS 00670 NTAPI 00671 ZwSetLdtEntries( 00672 IN ULONG Selector1, 00673 IN LDT_ENTRY LdtEntry1, 00674 IN ULONG Selector2, 00675 IN LDT_ENTRY LdtEntry2 00676 ); 00677 00678 NTSYSAPI 00679 NTSTATUS 00680 NTAPI 00681 ZwSetSystemTime( 00682 IN PLARGE_INTEGER SystemTime, 00683 IN PLARGE_INTEGER NewSystemTime OPTIONAL 00684 ); 00685 00686 NTSYSAPI 00687 NTSTATUS 00688 NTAPI 00689 ZwSetTimerResolution( 00690 IN ULONG RequestedResolution, 00691 IN BOOLEAN SetOrUnset, 00692 OUT PULONG ActualResolution 00693 ); 00694 00695 NTSYSAPI 00696 NTSTATUS 00697 NTAPI 00698 ZwStartProfile( 00699 IN HANDLE ProfileHandle 00700 ); 00701 00702 NTSYSAPI 00703 NTSTATUS 00704 NTAPI 00705 ZwStopProfile( 00706 IN HANDLE ProfileHandle 00707 ); 00708 00709 NTSYSAPI 00710 NTSTATUS 00711 NTAPI 00712 ZwTestAlert( 00713 VOID 00714 ); 00715 00716 NTSYSAPI 00717 NTSTATUS 00718 NTAPI 00719 ZwVdmControl( 00720 ULONG ControlCode, 00721 PVOID ControlData 00722 ); 00723 00724 NTSYSAPI 00725 NTSTATUS 00726 NTAPI 00727 ZwW32Call( 00728 IN ULONG RoutineIndex, 00729 IN PVOID Argument, 00730 IN ULONG ArgumentLength, 00731 OUT PVOID* Result OPTIONAL, 00732 OUT PULONG ResultLength OPTIONAL 00733 ); 00734 00735 NTSYSAPI 00736 NTSTATUS 00737 NTAPI 00738 ZwYieldExecution( 00739 VOID 00740 ); 00741 #endif Generated on Thu May 24 2012 04:31:32 for ReactOS by
1.7.6.1
|