ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

kefuncs.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.