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 /******************************************************************************
00002  *                              Kernel Functions                              *
00003  ******************************************************************************/
00004 $if (_WDMDDK_)
00005 #if defined(_M_IX86)
00006 $include(x86/ke.h)
00007 #elif defined(_M_AMD64)
00008 $include(amd64/ke.h)
00009 #elif defined(_M_IA64)
00010 $include(ia64/ke.h)
00011 #elif defined(_M_PPC)
00012 $include(ppc/ke.h)
00013 #elif defined(_M_MIPS)
00014 $include(mips/ke.h)
00015 #elif defined(_M_ARM)
00016 $include(arm/ke.h)
00017 #else
00018 #error Unknown Architecture
00019 #endif
00020 
00021 NTKERNELAPI
00022 VOID
00023 NTAPI
00024 KeInitializeEvent(
00025   _Out_ PRKEVENT Event,
00026   _In_ EVENT_TYPE Type,
00027   _In_ BOOLEAN State);
00028 
00029 _IRQL_requires_max_(DISPATCH_LEVEL)
00030 NTKERNELAPI
00031 VOID
00032 NTAPI
00033 KeClearEvent(
00034   _Inout_ PRKEVENT Event);
00035 $endif (_WDMDDK_)
00036 $if (_NTDDK_)
00037 
00038 _IRQL_requires_min_(PASSIVE_LEVEL)
00039 _IRQL_requires_max_(DISPATCH_LEVEL)
00040 NTKERNELAPI
00041 VOID
00042 FASTCALL
00043 KeInvalidateRangeAllCaches(
00044   _In_ PVOID BaseAddress,
00045   _In_ ULONG Length);
00046 $endif (_NTDDK_)
00047 $if (_NTIFS_)
00048 
00049 NTSTATUS
00050 NTAPI
00051 KeGetProcessorNumberFromIndex(
00052   _In_ ULONG ProcIndex,
00053   _Out_ PPROCESSOR_NUMBER ProcNumber);
00054 
00055 ULONG
00056 NTAPI
00057 KeGetProcessorIndexFromNumber(
00058   _In_ PPROCESSOR_NUMBER ProcNumber);
00059 $endif (_NTIFS_)
00060 
00061 #if (NTDDI_VERSION >= NTDDI_WIN2K)
00062 
00063 $if (_WDMDDK_)
00064 #if defined(_NTDDK_) || defined(_NTIFS_)
00065 _Maybe_raises_SEH_exception_
00066 _IRQL_requires_max_(APC_LEVEL)
00067 NTKERNELAPI
00068 VOID
00069 NTAPI
00070 ProbeForRead(
00071   __in_data_source(USER_MODE) _In_reads_bytes_(Length) CONST VOID *Address, /* CONST is added */
00072   _In_ SIZE_T Length,
00073   _In_ ULONG Alignment);
00074 #endif /* defined(_NTDDK_) || defined(_NTIFS_) */
00075 
00076 _Maybe_raises_SEH_exception_
00077 _IRQL_requires_max_(APC_LEVEL)
00078 NTKERNELAPI
00079 VOID
00080 NTAPI
00081 ProbeForWrite(
00082   __in_data_source(USER_MODE) _Inout_updates_bytes_(Length) PVOID Address,
00083   _In_ SIZE_T Length,
00084   _In_ ULONG Alignment);
00085 
00086 $endif (_WDMDDK_)
00087 $if (_NTDDK_)
00088 NTKERNELAPI
00089 VOID
00090 NTAPI
00091 KeSetImportanceDpc(
00092   _Inout_ PRKDPC Dpc,
00093   _In_ KDPC_IMPORTANCE Importance);
00094 
00095 _IRQL_requires_max_(DISPATCH_LEVEL)
00096 NTKERNELAPI
00097 LONG
00098 NTAPI
00099 KePulseEvent(
00100   _Inout_ PRKEVENT Event,
00101   _In_ KPRIORITY Increment,
00102   _In_ BOOLEAN Wait);
00103 
00104 _IRQL_requires_min_(PASSIVE_LEVEL)
00105 _IRQL_requires_max_(DISPATCH_LEVEL)
00106 NTKERNELAPI
00107 LONG
00108 NTAPI
00109 KeSetBasePriorityThread(
00110   _Inout_ PRKTHREAD Thread,
00111   _In_ LONG Increment);
00112 
00113 _Acquires_lock_(_Global_critical_region_)
00114 _IRQL_requires_max_(APC_LEVEL)
00115 NTKERNELAPI
00116 VOID
00117 NTAPI
00118 KeEnterCriticalRegion(VOID);
00119 
00120 _Releases_lock_(_Global_critical_region_)
00121 _IRQL_requires_max_(APC_LEVEL)
00122 NTKERNELAPI
00123 VOID
00124 NTAPI
00125 KeLeaveCriticalRegion(VOID);
00126 
00127 NTKERNELAPI
00128 DECLSPEC_NORETURN
00129 VOID
00130 NTAPI
00131 KeBugCheck(
00132   _In_ ULONG BugCheckCode);
00133 $endif(_NTDDK_)
00134 $if (_WDMDDK_ || _NTDDK_)
00135 #if defined(SINGLE_GROUP_LEGACY_API)
00136 $endif (_WDMDDK_ || _NTDDK_)
00137 
00138 $if (_WDMDDK_)
00139 _IRQL_requires_min_(PASSIVE_LEVEL)
00140 _IRQL_requires_max_(APC_LEVEL)
00141 NTKERNELAPI
00142 VOID
00143 NTAPI
00144 KeRevertToUserAffinityThread(VOID);
00145 
00146 _IRQL_requires_min_(PASSIVE_LEVEL)
00147 _IRQL_requires_max_(APC_LEVEL)
00148 NTKERNELAPI
00149 VOID
00150 NTAPI
00151 KeSetSystemAffinityThread(
00152   _In_ KAFFINITY Affinity);
00153 
00154 NTKERNELAPI
00155 VOID
00156 NTAPI
00157 KeSetTargetProcessorDpc(
00158   _Inout_ PRKDPC Dpc,
00159   _In_ CCHAR Number);
00160 
00161 NTKERNELAPI
00162 KAFFINITY
00163 NTAPI
00164 KeQueryActiveProcessors(VOID);
00165 $endif (_WDMDDK_)
00166 $if (_NTDDK_)
00167 
00168 NTKERNELAPI
00169 VOID
00170 NTAPI
00171 KeSetTargetProcessorDpc(
00172   _Inout_ PRKDPC Dpc,
00173   _In_ CCHAR Number);
00174 
00175 NTKERNELAPI
00176 KAFFINITY
00177 NTAPI
00178 KeQueryActiveProcessors(VOID);
00179 $endif (_NTDDK_)
00180 $if (_WDMDDK_ || _NTDDK_)
00181 #endif /* defined(SINGLE_GROUP_LEGACY_API) */
00182 $endif (_WDMDDK_ || _NTDDK_)
00183 
00184 $if (_WDMDDK_)
00185 #if !defined(_M_AMD64)
00186 NTKERNELAPI
00187 ULONGLONG
00188 NTAPI
00189 KeQueryInterruptTime(VOID);
00190 
00191 NTKERNELAPI
00192 VOID
00193 NTAPI
00194 KeQuerySystemTime(
00195   _Out_ PLARGE_INTEGER CurrentTime);
00196 #endif /* !_M_AMD64 */
00197 
00198 #if !defined(_X86_) && !defined(_M_ARM)
00199 _Requires_lock_not_held_(*SpinLock)
00200 _Acquires_lock_(*SpinLock)
00201 _IRQL_requires_max_(DISPATCH_LEVEL)
00202 _IRQL_saves_
00203 _IRQL_raises_(DISPATCH_LEVEL)
00204 NTKERNELAPI
00205 KIRQL
00206 NTAPI
00207 KeAcquireSpinLockRaiseToDpc(
00208   _Inout_ PKSPIN_LOCK SpinLock);
00209 
00210 #define KeAcquireSpinLock(SpinLock, OldIrql) \
00211     *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock)
00212 
00213 _Requires_lock_not_held_(*SpinLock)
00214 _Acquires_lock_(*SpinLock)
00215 _IRQL_requires_min_(DISPATCH_LEVEL)
00216 NTKERNELAPI
00217 VOID
00218 NTAPI
00219 KeAcquireSpinLockAtDpcLevel(
00220   _Inout_ PKSPIN_LOCK SpinLock);
00221 
00222 _Requires_lock_held_(*SpinLock)
00223 _Releases_lock_(*SpinLock)
00224 _IRQL_requires_(DISPATCH_LEVEL)
00225 NTKERNELAPI
00226 VOID
00227 NTAPI
00228 KeReleaseSpinLock(
00229   _Inout_ PKSPIN_LOCK SpinLock,
00230   _In_ _IRQL_restores_ KIRQL NewIrql);
00231 
00232 _Requires_lock_held_(*SpinLock)
00233 _Releases_lock_(*SpinLock)
00234 _IRQL_requires_min_(DISPATCH_LEVEL)
00235 NTKERNELAPI
00236 VOID
00237 NTAPI
00238 KeReleaseSpinLockFromDpcLevel(
00239   _Inout_ PKSPIN_LOCK SpinLock);
00240 #endif /* !_X86_ */
00241 
00242 #if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
00243 NTKERNELAPI
00244 VOID
00245 NTAPI
00246 KeInitializeSpinLock(
00247   _Out_ PKSPIN_LOCK SpinLock);
00248 #else
00249 FORCEINLINE
00250 VOID
00251 KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
00252 {
00253   /* Clear the lock */
00254   *SpinLock = 0;
00255 }
00256 #endif
00257 
00258 NTKERNELAPI
00259 DECLSPEC_NORETURN
00260 VOID
00261 NTAPI
00262 KeBugCheckEx(
00263   _In_ ULONG BugCheckCode,
00264   _In_ ULONG_PTR BugCheckParameter1,
00265   _In_ ULONG_PTR BugCheckParameter2,
00266   _In_ ULONG_PTR BugCheckParameter3,
00267   _In_ ULONG_PTR BugCheckParameter4);
00268 
00269 _IRQL_requires_max_(DISPATCH_LEVEL)
00270 NTKERNELAPI
00271 BOOLEAN
00272 NTAPI
00273 KeCancelTimer(
00274   _Inout_ PKTIMER);
00275 
00276 _IRQL_requires_min_(PASSIVE_LEVEL)
00277 _IRQL_requires_max_(APC_LEVEL)
00278 NTKERNELAPI
00279 NTSTATUS
00280 NTAPI
00281 KeDelayExecutionThread(
00282   _In_ KPROCESSOR_MODE WaitMode,
00283   _In_ BOOLEAN Alertable,
00284   _In_ PLARGE_INTEGER Interval);
00285 
00286 _Must_inspect_result_
00287 NTKERNELAPI
00288 BOOLEAN
00289 NTAPI
00290 KeDeregisterBugCheckCallback(
00291   _Inout_ PKBUGCHECK_CALLBACK_RECORD CallbackRecord);
00292 
00293 _Acquires_lock_(_Global_critical_region_)
00294 _IRQL_requires_max_(APC_LEVEL)
00295 NTKERNELAPI
00296 VOID
00297 NTAPI
00298 KeEnterCriticalRegion(VOID);
00299 
00300 _IRQL_requires_max_(DISPATCH_LEVEL)
00301 NTKERNELAPI
00302 VOID
00303 NTAPI
00304 KeInitializeDeviceQueue(
00305   _Out_ PKDEVICE_QUEUE DeviceQueue);
00306 
00307 NTKERNELAPI
00308 VOID
00309 NTAPI
00310 KeInitializeDpc(
00311   _Out_ __drv_aliasesMem PRKDPC Dpc,
00312   _In_ PKDEFERRED_ROUTINE DeferredRoutine,
00313   _In_opt_ __drv_aliasesMem PVOID DeferredContext);
00314 
00315 NTKERNELAPI
00316 VOID
00317 NTAPI
00318 KeInitializeMutex(
00319   _Out_ PRKMUTEX Mutex,
00320   _In_ ULONG Level);
00321 
00322 _IRQL_requires_max_(PASSIVE_LEVEL)
00323 NTKERNELAPI
00324 VOID
00325 NTAPI
00326 KeInitializeSemaphore(
00327   _Out_ PRKSEMAPHORE Semaphore,
00328   _In_ LONG Count,
00329   _In_ LONG Limit);
00330 
00331 _IRQL_requires_max_(DISPATCH_LEVEL)
00332 NTKERNELAPI
00333 VOID
00334 NTAPI
00335 KeInitializeTimer(
00336   _Out_ PKTIMER Timer);
00337 
00338 _IRQL_requires_max_(DISPATCH_LEVEL)
00339 NTKERNELAPI
00340 VOID
00341 NTAPI
00342 KeInitializeTimerEx(
00343   _Out_ PKTIMER Timer,
00344   _In_ TIMER_TYPE Type);
00345 
00346 _IRQL_requires_(DISPATCH_LEVEL)
00347 NTKERNELAPI
00348 BOOLEAN
00349 NTAPI
00350 KeInsertByKeyDeviceQueue(
00351   _Inout_ PKDEVICE_QUEUE DeviceQueue,
00352   _Inout_ PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
00353   _In_ ULONG SortKey);
00354 
00355 _IRQL_requires_(DISPATCH_LEVEL)
00356 NTKERNELAPI
00357 BOOLEAN
00358 NTAPI
00359 KeInsertDeviceQueue(
00360   _Inout_ PKDEVICE_QUEUE DeviceQueue,
00361   _Inout_ PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
00362 
00363 NTKERNELAPI
00364 BOOLEAN
00365 NTAPI
00366 KeInsertQueueDpc(
00367   _Inout_ PRKDPC Dpc,
00368   _In_opt_ PVOID SystemArgument1,
00369   _In_opt_ PVOID SystemArgument2);
00370 
00371 _Releases_lock_(_Global_critical_region_)
00372 _IRQL_requires_max_(APC_LEVEL)
00373 NTKERNELAPI
00374 VOID
00375 NTAPI
00376 KeLeaveCriticalRegion(VOID);
00377 
00378 NTHALAPI
00379 LARGE_INTEGER
00380 NTAPI
00381 KeQueryPerformanceCounter(
00382   _Out_opt_ PLARGE_INTEGER PerformanceFrequency);
00383 
00384 _IRQL_requires_max_(PASSIVE_LEVEL)
00385 NTKERNELAPI
00386 KPRIORITY
00387 NTAPI
00388 KeQueryPriorityThread(
00389   _In_ PRKTHREAD Thread);
00390 
00391 NTKERNELAPI
00392 ULONG
00393 NTAPI
00394 KeQueryTimeIncrement(VOID);
00395 
00396 _IRQL_requires_max_(DISPATCH_LEVEL)
00397 NTKERNELAPI
00398 LONG
00399 NTAPI
00400 KeReadStateEvent(
00401   _In_ PRKEVENT Event);
00402 
00403 _IRQL_requires_max_(DISPATCH_LEVEL)
00404 NTKERNELAPI
00405 LONG
00406 NTAPI
00407 KeReadStateMutex(
00408   _In_ PRKMUTEX Mutex);
00409 
00410 _IRQL_requires_max_(DISPATCH_LEVEL)
00411 NTKERNELAPI
00412 LONG
00413 NTAPI
00414 KeReadStateSemaphore(
00415   _In_ PRKSEMAPHORE Semaphore);
00416 
00417 _IRQL_requires_max_(DISPATCH_LEVEL)
00418 NTKERNELAPI
00419 BOOLEAN
00420 NTAPI
00421 KeReadStateTimer(
00422   _In_ PKTIMER Timer);
00423 
00424 _Must_inspect_result_
00425 NTKERNELAPI
00426 BOOLEAN
00427 NTAPI
00428 KeRegisterBugCheckCallback(
00429   _Out_ PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
00430   _In_ PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
00431   _In_reads_bytes_opt_(Length) PVOID Buffer,
00432   _In_ ULONG Length,
00433   _In_ PUCHAR Component);
00434 
00435 _When_(Wait==0, _IRQL_requires_max_(DISPATCH_LEVEL))
00436 _When_(Wait==1, _IRQL_requires_max_(APC_LEVEL))
00437 NTKERNELAPI
00438 LONG
00439 NTAPI
00440 KeReleaseMutex(
00441   _Inout_ PRKMUTEX Mutex,
00442   _In_ BOOLEAN Wait);
00443 
00444 _When_(Wait==0, _IRQL_requires_max_(DISPATCH_LEVEL))
00445 _When_(Wait==1, _IRQL_requires_max_(APC_LEVEL))
00446 NTKERNELAPI
00447 LONG
00448 NTAPI
00449 KeReleaseSemaphore(
00450   _Inout_ PRKSEMAPHORE Semaphore,
00451   _In_ KPRIORITY Increment,
00452   _In_ LONG Adjustment,
00453   _In_ _Literal_ BOOLEAN Wait);
00454 
00455 _IRQL_requires_(DISPATCH_LEVEL)
00456 NTKERNELAPI
00457 PKDEVICE_QUEUE_ENTRY
00458 NTAPI
00459 KeRemoveByKeyDeviceQueue(
00460   _Inout_ PKDEVICE_QUEUE DeviceQueue,
00461   _In_ ULONG SortKey);
00462 
00463 _IRQL_requires_(DISPATCH_LEVEL)
00464 NTKERNELAPI
00465 PKDEVICE_QUEUE_ENTRY
00466 NTAPI
00467 KeRemoveDeviceQueue(
00468   _Inout_ PKDEVICE_QUEUE DeviceQueue);
00469 
00470 _IRQL_requires_max_(DISPATCH_LEVEL)
00471 NTKERNELAPI
00472 BOOLEAN
00473 NTAPI
00474 KeRemoveEntryDeviceQueue(
00475   _Inout_ PKDEVICE_QUEUE DeviceQueue,
00476   _Inout_ PKDEVICE_QUEUE_ENTRY DeviceQueueEntry);
00477 
00478 _IRQL_requires_max_(HIGH_LEVEL)
00479 NTKERNELAPI
00480 BOOLEAN
00481 NTAPI
00482 KeRemoveQueueDpc(
00483   _Inout_ PRKDPC Dpc);
00484 
00485 _IRQL_requires_max_(DISPATCH_LEVEL)
00486 NTKERNELAPI
00487 LONG
00488 NTAPI
00489 KeResetEvent(
00490   _Inout_ PRKEVENT Event);
00491 
00492 _When_(Wait==0, _IRQL_requires_max_(DISPATCH_LEVEL))
00493 _When_(Wait==1, _IRQL_requires_max_(APC_LEVEL))
00494 NTKERNELAPI
00495 LONG
00496 NTAPI
00497 KeSetEvent(
00498   _Inout_ PRKEVENT Event,
00499   _In_ KPRIORITY Increment,
00500   _In_ _Literal_ BOOLEAN Wait);
00501 
00502 NTKERNELAPI
00503 VOID
00504 NTAPI
00505 KeSetImportanceDpc(
00506   _Inout_ PRKDPC Dpc,
00507   _In_ KDPC_IMPORTANCE Importance);
00508 
00509 _IRQL_requires_min_(PASSIVE_LEVEL)
00510 _IRQL_requires_max_(DISPATCH_LEVEL)
00511 NTKERNELAPI
00512 KPRIORITY
00513 NTAPI
00514 KeSetPriorityThread(
00515   _Inout_ PKTHREAD Thread,
00516   _In_ KPRIORITY Priority);
00517 
00518 _IRQL_requires_max_(DISPATCH_LEVEL)
00519 NTKERNELAPI
00520 BOOLEAN
00521 NTAPI
00522 KeSetTimer(
00523   _Inout_ PKTIMER Timer,
00524   _In_ LARGE_INTEGER DueTime,
00525   _In_opt_ PKDPC Dpc);
00526 
00527 _IRQL_requires_max_(DISPATCH_LEVEL)
00528 NTKERNELAPI
00529 BOOLEAN
00530 NTAPI
00531 KeSetTimerEx(
00532   _Inout_ PKTIMER Timer,
00533   _In_ LARGE_INTEGER DueTime,
00534   _In_ LONG Period OPTIONAL,
00535   _In_opt_ PKDPC Dpc);
00536 
00537 NTHALAPI
00538 VOID
00539 NTAPI
00540 KeStallExecutionProcessor(
00541   _In_ ULONG MicroSeconds);
00542 
00543 _IRQL_requires_max_(HIGH_LEVEL)
00544 NTKERNELAPI
00545 BOOLEAN
00546 NTAPI
00547 KeSynchronizeExecution(
00548   _Inout_ PKINTERRUPT Interrupt,
00549   _In_ PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
00550   _In_opt_ __drv_aliasesMem PVOID SynchronizeContext);
00551 
00552 _IRQL_requires_min_(PASSIVE_LEVEL)
00553 _When_((Timeout==NULL || *Timeout!=0), _IRQL_requires_max_(APC_LEVEL))
00554 _When_((Timeout!=NULL && *Timeout==0), _IRQL_requires_max_(DISPATCH_LEVEL))
00555 NTKERNELAPI
00556 NTSTATUS
00557 NTAPI
00558 KeWaitForMultipleObjects(
00559   _In_ ULONG Count,
00560   _In_reads_(Count) PVOID Object[],
00561   _In_ __drv_strictTypeMatch(__drv_typeConst) WAIT_TYPE WaitType,
00562   _In_ __drv_strictTypeMatch(__drv_typeCond) KWAIT_REASON WaitReason,
00563   _In_ __drv_strictType(KPROCESSOR_MODE/enum _MODE,__drv_typeConst) KPROCESSOR_MODE WaitMode,
00564   _In_ BOOLEAN Alertable,
00565   _In_opt_ PLARGE_INTEGER Timeout,
00566   _Out_opt_ PKWAIT_BLOCK WaitBlockArray);
00567 
00568 #define KeWaitForMutexObject KeWaitForSingleObject
00569 
00570 _IRQL_requires_min_(PASSIVE_LEVEL)
00571 _When_((Timeout==NULL || *Timeout!=0), _IRQL_requires_max_(APC_LEVEL))
00572 _When_((Timeout!=NULL && *Timeout==0), _IRQL_requires_max_(DISPATCH_LEVEL))
00573 NTKERNELAPI
00574 NTSTATUS
00575 NTAPI
00576 KeWaitForSingleObject(
00577   _In_ _Points_to_data_ PVOID Object,
00578   _In_ __drv_strictTypeMatch(__drv_typeCond) KWAIT_REASON WaitReason,
00579   _In_ __drv_strictType(KPROCESSOR_MODE/enum _MODE,__drv_typeConst) KPROCESSOR_MODE WaitMode,
00580   _In_ BOOLEAN Alertable,
00581   _In_opt_ PLARGE_INTEGER Timeout);
00582 $endif (_WDMDDK_)
00583 $if (_NTIFS_)
00584 
00585 NTKERNELAPI
00586 VOID
00587 NTAPI
00588 KeInitializeMutant(
00589   _Out_ PRKMUTANT Mutant,
00590   _In_ BOOLEAN InitialOwner);
00591 
00592 _IRQL_requires_max_(DISPATCH_LEVEL)
00593 NTKERNELAPI
00594 LONG
00595 NTAPI
00596 KeReadStateMutant(
00597   _In_ PRKMUTANT Mutant);
00598 
00599 _When_(Wait==0, _IRQL_requires_max_(DISPATCH_LEVEL))
00600 _When_(Wait==1, _IRQL_requires_max_(APC_LEVEL))
00601 NTKERNELAPI
00602 LONG
00603 NTAPI
00604 KeReleaseMutant(
00605   _Inout_ PRKMUTANT Mutant,
00606   _In_ KPRIORITY Increment,
00607   _In_ BOOLEAN Abandoned,
00608   _In_ BOOLEAN Wait);
00609 
00610 NTKERNELAPI
00611 VOID
00612 NTAPI
00613 KeInitializeQueue(
00614   _Out_ PRKQUEUE Queue,
00615   _In_ ULONG Count);
00616 
00617 _IRQL_requires_max_(DISPATCH_LEVEL)
00618 NTKERNELAPI
00619 LONG
00620 NTAPI
00621 KeReadStateQueue(
00622   _In_ PRKQUEUE Queue);
00623 
00624 _IRQL_requires_min_(PASSIVE_LEVEL)
00625 _IRQL_requires_max_(DISPATCH_LEVEL)
00626 NTKERNELAPI
00627 LONG
00628 NTAPI
00629 KeInsertQueue(
00630   _Inout_ PRKQUEUE Queue,
00631   _Inout_ PLIST_ENTRY Entry);
00632 
00633 _IRQL_requires_min_(PASSIVE_LEVEL)
00634 _IRQL_requires_max_(DISPATCH_LEVEL)
00635 NTKERNELAPI
00636 LONG
00637 NTAPI
00638 KeInsertHeadQueue(
00639   _Inout_ PRKQUEUE Queue,
00640   _Inout_ PLIST_ENTRY Entry);
00641 
00642 _IRQL_requires_min_(PASSIVE_LEVEL)
00643 _When_((Timeout==NULL || *Timeout!=0), _IRQL_requires_max_(APC_LEVEL))
00644 _When_((Timeout!=NULL && *Timeout==0), _IRQL_requires_max_(DISPATCH_LEVEL))
00645 NTKERNELAPI
00646 PLIST_ENTRY
00647 NTAPI
00648 KeRemoveQueue(
00649   _Inout_ PRKQUEUE Queue,
00650   _In_ KPROCESSOR_MODE WaitMode,
00651   _In_opt_ PLARGE_INTEGER Timeout);
00652 
00653 _IRQL_requires_max_(APC_LEVEL)
00654 NTKERNELAPI
00655 VOID
00656 NTAPI
00657 KeAttachProcess(
00658   _Inout_ PKPROCESS Process);
00659 
00660 _IRQL_requires_max_(APC_LEVEL)
00661 NTKERNELAPI
00662 VOID
00663 NTAPI
00664 KeDetachProcess(VOID);
00665 
00666 _IRQL_requires_max_(DISPATCH_LEVEL)
00667 NTKERNELAPI
00668 PLIST_ENTRY
00669 NTAPI
00670 KeRundownQueue(
00671   _Inout_ PRKQUEUE Queue);
00672 
00673 _IRQL_requires_max_(APC_LEVEL)
00674 NTKERNELAPI
00675 VOID
00676 NTAPI
00677 KeStackAttachProcess(
00678   _Inout_ PKPROCESS Process,
00679   _Out_ PKAPC_STATE ApcState);
00680 
00681 _IRQL_requires_max_(APC_LEVEL)
00682 NTKERNELAPI
00683 VOID
00684 NTAPI
00685 KeUnstackDetachProcess(
00686   _In_ PKAPC_STATE ApcState);
00687 
00688 _IRQL_requires_min_(PASSIVE_LEVEL)
00689 _IRQL_requires_max_(DISPATCH_LEVEL)
00690 NTKERNELAPI
00691 UCHAR
00692 NTAPI
00693 KeSetIdealProcessorThread(
00694   _Inout_ PKTHREAD Thread,
00695   _In_ UCHAR Processor);
00696 
00697 _IRQL_requires_max_(APC_LEVEL)
00698 NTKERNELAPI
00699 BOOLEAN
00700 NTAPI
00701 KeSetKernelStackSwapEnable(
00702   _In_ BOOLEAN Enable);
00703 
00704 #if defined(_X86_)
00705 _Requires_lock_not_held_(*SpinLock)
00706 _Acquires_lock_(*SpinLock)
00707 _IRQL_raises_(SYNCH_LEVEL)
00708 _IRQL_saves_
00709 NTHALAPI
00710 KIRQL
00711 FASTCALL
00712 KeAcquireSpinLockRaiseToSynch(
00713   _Inout_ PKSPIN_LOCK SpinLock);
00714 #else
00715 _Requires_lock_not_held_(*SpinLock)
00716 _Acquires_lock_(*SpinLock)
00717 _IRQL_raises_(SYNCH_LEVEL)
00718 _IRQL_saves_
00719 NTKERNELAPI
00720 KIRQL
00721 KeAcquireSpinLockRaiseToSynch(
00722   _Inout_ PKSPIN_LOCK SpinLock);
00723 #endif
00724 $endif (_NTIFS_)
00725 
00726 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
00727 
00728 #if (NTDDI_VERSION >= NTDDI_WINXP)
00729 
00730 $if (_WDMDDK_)
00731 _Requires_lock_not_held_(*LockHandle)
00732 _Acquires_lock_(*LockHandle)
00733 _Post_same_lock_(*SpinLock, *LockHandle)
00734 _IRQL_requires_max_(DISPATCH_LEVEL)
00735 _IRQL_saves_global_(QueuedSpinLock,LockHandle)
00736 _IRQL_raises_(DISPATCH_LEVEL)
00737 _DECL_HAL_KE_IMPORT
00738 VOID
00739 FASTCALL
00740 KeAcquireInStackQueuedSpinLock(
00741   _Inout_ PKSPIN_LOCK SpinLock,
00742   _Out_ PKLOCK_QUEUE_HANDLE LockHandle);
00743 
00744 _Requires_lock_not_held_(*LockHandle)
00745 _Acquires_lock_(*LockHandle)
00746 _Post_same_lock_(*SpinLock, *LockHandle)
00747 _IRQL_requires_min_(DISPATCH_LEVEL)
00748 NTKERNELAPI
00749 VOID
00750 FASTCALL
00751 KeAcquireInStackQueuedSpinLockAtDpcLevel(
00752   _Inout_ PKSPIN_LOCK SpinLock,
00753   _Out_ PKLOCK_QUEUE_HANDLE LockHandle);
00754 
00755 _Requires_lock_not_held_(*Interrupt->ActualLock)
00756 _Acquires_lock_(*Interrupt->ActualLock)
00757 _IRQL_requires_max_(HIGH_LEVEL)
00758 _IRQL_saves_
00759 _IRQL_raises_(HIGH_LEVEL)
00760 NTKERNELAPI
00761 KIRQL
00762 NTAPI
00763 KeAcquireInterruptSpinLock(
00764   _Inout_ PKINTERRUPT Interrupt);
00765 
00766 _IRQL_requires_min_(PASSIVE_LEVEL)
00767 _IRQL_requires_max_(DISPATCH_LEVEL)
00768 NTKERNELAPI
00769 BOOLEAN
00770 NTAPI
00771 KeAreApcsDisabled(VOID);
00772 
00773 NTKERNELAPI
00774 ULONG
00775 NTAPI
00776 KeGetRecommendedSharedDataAlignment(VOID);
00777 
00778 _IRQL_requires_max_(PASSIVE_LEVEL)
00779 NTKERNELAPI
00780 ULONG
00781 NTAPI
00782 KeQueryRuntimeThread(
00783   _In_ PKTHREAD Thread,
00784   _Out_ PULONG UserTime);
00785 
00786 _Requires_lock_held_(*LockHandle)
00787 _Releases_lock_(*LockHandle)
00788 _IRQL_requires_(DISPATCH_LEVEL)
00789 NTKERNELAPI
00790 VOID
00791 FASTCALL
00792 KeReleaseInStackQueuedSpinLockFromDpcLevel(
00793   _In_ PKLOCK_QUEUE_HANDLE LockHandle);
00794 
00795 _Requires_lock_held_(*Interrupt->ActualLock)
00796 _Releases_lock_(*Interrupt->ActualLock)
00797 _IRQL_requires_(HIGH_LEVEL)
00798 NTKERNELAPI
00799 VOID
00800 NTAPI
00801 KeReleaseInterruptSpinLock(
00802   _Inout_ PKINTERRUPT Interrupt,
00803   _In_ _IRQL_restores_ KIRQL OldIrql);
00804 
00805 _IRQL_requires_(DISPATCH_LEVEL)
00806 NTKERNELAPI
00807 PKDEVICE_QUEUE_ENTRY
00808 NTAPI
00809 KeRemoveByKeyDeviceQueueIfBusy(
00810   _Inout_ PKDEVICE_QUEUE DeviceQueue,
00811   _In_ ULONG SortKey);
00812 
00813 _Requires_lock_held_(*LockHandle)
00814 _Releases_lock_(*LockHandle)
00815 _IRQL_requires_(DISPATCH_LEVEL)
00816 _IRQL_restores_global_(QueuedSpinLock,LockHandle)
00817 _DECL_HAL_KE_IMPORT
00818 VOID
00819 FASTCALL
00820 KeReleaseInStackQueuedSpinLock(
00821   _In_ PKLOCK_QUEUE_HANDLE LockHandle);
00822 $endif (_WDMDDK_)
00823 $if (_NTDDK_)
00824 _IRQL_requires_min_(PASSIVE_LEVEL)
00825 _IRQL_requires_max_(DISPATCH_LEVEL)
00826 NTKERNELAPI
00827 BOOLEAN
00828 NTAPI
00829 KeAreApcsDisabled(VOID);
00830 $endif (_NTDDK_)
00831 $if (_NTIFS_)
00832 
00833 _Requires_lock_not_held_(Number)
00834 _Acquires_lock_(Number)
00835 _IRQL_raises_(DISPATCH_LEVEL)
00836 _DECL_HAL_KE_IMPORT
00837 KIRQL
00838 FASTCALL
00839 KeAcquireQueuedSpinLock(
00840   _In_ KSPIN_LOCK_QUEUE_NUMBER Number);
00841 
00842 _Requires_lock_held_(Number)
00843 _Releases_lock_(Number)
00844 _DECL_HAL_KE_IMPORT
00845 VOID
00846 FASTCALL
00847 KeReleaseQueuedSpinLock(
00848   _In_ KSPIN_LOCK_QUEUE_NUMBER Number,
00849   _In_ KIRQL OldIrql);
00850 
00851 _Must_inspect_result_
00852 _Post_satisfies_(return == 1 || return == 0)
00853 _DECL_HAL_KE_IMPORT
00854 LOGICAL
00855 FASTCALL
00856 KeTryToAcquireQueuedSpinLock(
00857   _In_ KSPIN_LOCK_QUEUE_NUMBER Number,
00858   _Out_ _At_(*OldIrql, _IRQL_saves_) PKIRQL OldIrql);
00859 $endif (_NTIFS_)
00860 
00861 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
00862 
00863 $if (_WDMDDK_)
00864 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
00865 
00866 _Must_inspect_result_
00867 NTKERNELAPI
00868 BOOLEAN
00869 NTAPI
00870 KeDeregisterBugCheckReasonCallback(
00871   _Inout_ PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord);
00872 
00873 _Must_inspect_result_
00874 NTKERNELAPI
00875 BOOLEAN
00876 NTAPI
00877 KeRegisterBugCheckReasonCallback(
00878   _Out_ PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord,
00879   _In_ PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine,
00880   _In_ KBUGCHECK_CALLBACK_REASON Reason,
00881   _In_ PUCHAR Component);
00882 
00883 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP1) */
00884 
00885 #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
00886 _IRQL_requires_max_(APC_LEVEL)
00887 NTKERNELAPI
00888 VOID
00889 NTAPI
00890 KeFlushQueuedDpcs(VOID);
00891 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
00892 $endif (_WDMDDK_)
00893 $if (_WDMDDK_ || _NTDDK_)
00894 #if (NTDDI_VERSION >= NTDDI_WS03)
00895 $endif (_WDMDDK_ || _NTDDK_)
00896 
00897 $if (_WDMDDK_)
00898 _IRQL_requires_max_(APC_LEVEL)
00899 NTKERNELAPI
00900 PVOID
00901 NTAPI
00902 KeRegisterNmiCallback(
00903   _In_ PNMI_CALLBACK CallbackRoutine,
00904   _In_opt_ PVOID Context);
00905 
00906 _IRQL_requires_max_(APC_LEVEL)
00907 NTKERNELAPI
00908 NTSTATUS
00909 NTAPI
00910 KeDeregisterNmiCallback(
00911   _In_ PVOID Handle);
00912 
00913 NTKERNELAPI
00914 VOID
00915 NTAPI
00916 KeInitializeThreadedDpc(
00917   _Out_ PRKDPC Dpc,
00918   _In_ PKDEFERRED_ROUTINE DeferredRoutine,
00919   _In_opt_ PVOID DeferredContext);
00920 
00921 _IRQL_requires_min_(PASSIVE_LEVEL)
00922 _IRQL_requires_max_(IPI_LEVEL-1)
00923 NTKERNELAPI
00924 ULONG_PTR
00925 NTAPI
00926 KeIpiGenericCall(
00927   _In_ PKIPI_BROADCAST_WORKER BroadcastFunction,
00928   _In_ ULONG_PTR Context);
00929 
00930 _Requires_lock_not_held_(*SpinLock)
00931 _Acquires_lock_(*SpinLock)
00932 _IRQL_requires_max_(DISPATCH_LEVEL)
00933 _IRQL_saves_
00934 NTKERNELAPI
00935 KIRQL
00936 FASTCALL
00937 KeAcquireSpinLockForDpc(
00938   _Inout_ PKSPIN_LOCK SpinLock);
00939 
00940 _Requires_lock_held_(*SpinLock)
00941 _Releases_lock_(*SpinLock)
00942 _IRQL_requires_(DISPATCH_LEVEL)
00943 NTKERNELAPI
00944 VOID
00945 FASTCALL
00946 KeReleaseSpinLockForDpc(
00947   _Inout_ PKSPIN_LOCK SpinLock,
00948   _In_ _IRQL_restores_ KIRQL OldIrql);
00949 
00950 _Must_inspect_result_
00951 NTKERNELAPI
00952 BOOLEAN
00953 FASTCALL
00954 KeTestSpinLock(
00955   _In_ PKSPIN_LOCK SpinLock);
00956 $endif (_WDMDDK_)
00957 
00958 $if (_NTDDK_)
00959 NTKERNELAPI
00960 BOOLEAN
00961 NTAPI
00962 KeInvalidateAllCaches(VOID);
00963 $endif (_NTDDK_)
00964 $if (_WDMDDK_ || _NTDDK_)
00965 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
00966 $endif (_WDMDDK_ || _NTDDK_)
00967 $if (_WDMDDK_ || _NTDDK_)
00968 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
00969 $endif (_WDMDDK_ || _NTDDK_)
00970 
00971 $if (_WDMDDK_)
00972 _Must_inspect_result_
00973 _IRQL_requires_min_(DISPATCH_LEVEL)
00974 _Post_satisfies_(return == 1 || return == 0)
00975 NTKERNELAPI
00976 BOOLEAN
00977 FASTCALL
00978 KeTryToAcquireSpinLockAtDpcLevel(
00979   _Inout_ _Requires_lock_not_held_(*_Curr_)
00980   _When_(return!=0, _Acquires_lock_(*_Curr_))
00981     PKSPIN_LOCK SpinLock);
00982 
00983 _IRQL_requires_min_(PASSIVE_LEVEL)
00984 _IRQL_requires_max_(DISPATCH_LEVEL)
00985 NTKERNELAPI
00986 BOOLEAN
00987 NTAPI
00988 KeAreAllApcsDisabled(VOID);
00989 
00990 _Acquires_lock_(_Global_critical_region_)
00991 _Requires_lock_not_held_(*Mutex)
00992 _Acquires_lock_(*Mutex)
00993 _IRQL_requires_max_(APC_LEVEL)
00994 _IRQL_requires_min_(PASSIVE_LEVEL)
00995 NTKERNELAPI
00996 VOID
00997 FASTCALL
00998 KeAcquireGuardedMutex(
00999   _Inout_ PKGUARDED_MUTEX GuardedMutex);
01000 
01001 _Requires_lock_not_held_(*FastMutex)
01002 _Acquires_lock_(*FastMutex)
01003 _IRQL_requires_max_(APC_LEVEL)
01004 _IRQL_requires_min_(PASSIVE_LEVEL)
01005 NTKERNELAPI
01006 VOID
01007 FASTCALL
01008 KeAcquireGuardedMutexUnsafe(
01009   _Inout_ PKGUARDED_MUTEX GuardedMutex);
01010 
01011 _Acquires_lock_(_Global_critical_region_)
01012 _IRQL_requires_max_(APC_LEVEL)
01013 NTKERNELAPI
01014 VOID
01015 NTAPI
01016 KeEnterGuardedRegion(VOID);
01017 
01018 _Releases_lock_(_Global_critical_region_)
01019 _IRQL_requires_max_(APC_LEVEL)
01020 NTKERNELAPI
01021 VOID
01022 NTAPI
01023 KeLeaveGuardedRegion(VOID);
01024 
01025 _IRQL_requires_max_(APC_LEVEL)
01026 _IRQL_requires_min_(PASSIVE_LEVEL)
01027 NTKERNELAPI
01028 VOID
01029 FASTCALL
01030 KeInitializeGuardedMutex(
01031   _Out_ PKGUARDED_MUTEX GuardedMutex);
01032 
01033 _Requires_lock_held_(*FastMutex)
01034 _Releases_lock_(*FastMutex)
01035 _IRQL_requires_max_(APC_LEVEL)
01036 NTKERNELAPI
01037 VOID
01038 FASTCALL
01039 KeReleaseGuardedMutexUnsafe(
01040   _Inout_ PKGUARDED_MUTEX GuardedMutex);
01041 
01042 _Releases_lock_(_Global_critical_region_)
01043 _Requires_lock_held_(*Mutex)
01044 _Releases_lock_(*Mutex)
01045 _IRQL_requires_max_(APC_LEVEL)
01046 NTKERNELAPI
01047 VOID
01048 FASTCALL
01049 KeReleaseGuardedMutex(
01050   _Inout_ PKGUARDED_MUTEX GuardedMutex);
01051 
01052 _Must_inspect_result_
01053 _Success_(return != FALSE)
01054 _IRQL_requires_max_(APC_LEVEL)
01055 _Post_satisfies_(return == 1 || return == 0)
01056 NTKERNELAPI
01057 BOOLEAN
01058 FASTCALL
01059 KeTryToAcquireGuardedMutex(
01060   _When_ (return, _Requires_lock_not_held_(*_Curr_) _Acquires_exclusive_lock_(*_Curr_)) _Acquires_lock_(_Global_critical_region_)
01061   _Inout_ PKGUARDED_MUTEX GuardedMutex);
01062 $endif (_WDMDDK_)
01063 $if (_NTDDK_)
01064 _Must_inspect_result_
01065 _IRQL_requires_max_(APC_LEVEL)
01066 NTKERNELAPI
01067 NTSTATUS
01068 NTAPI
01069 KeExpandKernelStackAndCallout(
01070   _In_ PEXPAND_STACK_CALLOUT Callout,
01071   _In_opt_ PVOID Parameter,
01072   _In_ SIZE_T Size);
01073 
01074 _Acquires_lock_(_Global_critical_region_)
01075 _IRQL_requires_max_(APC_LEVEL)
01076 NTKERNELAPI
01077 VOID
01078 NTAPI
01079 KeEnterGuardedRegion(VOID);
01080 
01081 _Releases_lock_(_Global_critical_region_)
01082 _IRQL_requires_max_(APC_LEVEL)
01083 NTKERNELAPI
01084 VOID
01085 NTAPI
01086 KeLeaveGuardedRegion(VOID);
01087 $endif (_NTDDK_)
01088 $if (_WDMDDK_ || _NTDDK_)
01089 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
01090 $endif (_WDMDDK_ || _NTDDK_)
01091 
01092 #if (NTDDI_VERSION >= NTDDI_VISTA)
01093 $if (_WDMDDK_)
01094 _Requires_lock_not_held_(*LockHandle)
01095 _Acquires_lock_(*LockHandle)
01096 _Post_same_lock_(*SpinLock, *LockHandle)
01097 _IRQL_requires_max_(DISPATCH_LEVEL)
01098 _IRQL_saves_global_(QueuedSpinLock,LockHandle)
01099 NTKERNELAPI
01100 VOID
01101 FASTCALL
01102 KeAcquireInStackQueuedSpinLockForDpc(
01103   _Inout_ PKSPIN_LOCK SpinLock,
01104   _Out_ PKLOCK_QUEUE_HANDLE LockHandle);
01105 
01106 _Requires_lock_held_(*LockHandle)
01107 _Releases_lock_(*LockHandle)
01108 _IRQL_requires_(DISPATCH_LEVEL)
01109 _IRQL_restores_global_(QueuedSpinLock,LockHandle)
01110 NTKERNELAPI
01111 VOID
01112 FASTCALL
01113 KeReleaseInStackQueuedSpinLockForDpc(
01114   _In_ PKLOCK_QUEUE_HANDLE LockHandle);
01115 
01116 _IRQL_requires_(DISPATCH_LEVEL)
01117 NTKERNELAPI
01118 NTSTATUS
01119 NTAPI
01120 KeQueryDpcWatchdogInformation(
01121   _Out_ PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
01122 $endif (_WDMDDK_)
01123 $if (_WDMDDK_ || _NTDDK_)
01124 #if defined(SINGLE_GROUP_LEGACY_API)
01125 $endif (_WDMDDK_ || _NTDDK_)
01126 
01127 $if (_WDMDDK_)
01128 _IRQL_requires_min_(PASSIVE_LEVEL)
01129 _IRQL_requires_max_(APC_LEVEL)
01130 NTKERNELAPI
01131 KAFFINITY
01132 NTAPI
01133 KeSetSystemAffinityThreadEx(
01134   _In_ KAFFINITY Affinity);
01135 
01136 _IRQL_requires_min_(PASSIVE_LEVEL)
01137 _IRQL_requires_max_(APC_LEVEL)
01138 NTKERNELAPI
01139 VOID
01140 NTAPI
01141 KeRevertToUserAffinityThreadEx(
01142   _In_ KAFFINITY Affinity);
01143 
01144 NTKERNELAPI
01145 ULONG
01146 NTAPI
01147 KeQueryActiveProcessorCount(
01148   _Out_opt_ PKAFFINITY ActiveProcessors);
01149 
01150 NTKERNELAPI
01151 ULONG
01152 NTAPI
01153 KeQueryMaximumProcessorCount(VOID);
01154 $endif (_WDMDDK_)
01155 $if (_NTDDK_)
01156 NTKERNELAPI
01157 ULONG
01158 NTAPI
01159 KeQueryActiveProcessorCount(
01160   _Out_opt_ PKAFFINITY ActiveProcessors);
01161 
01162 NTKERNELAPI
01163 ULONG
01164 NTAPI
01165 KeQueryMaximumProcessorCount(VOID);
01166 $endif (_NTDDK_)
01167 $if (_WDMDDK_ || _NTDDK_)
01168 #endif /* SINGLE_GROUP_LEGACY_API */
01169 $endif (_WDMDDK_ || _NTDDK_)
01170 $if (_NTIFS_)
01171 _IRQL_requires_max_(DISPATCH_LEVEL)
01172 NTKERNELAPI
01173 VOID
01174 KeQueryOwnerMutant(
01175   _In_ PKMUTANT Mutant,
01176   _Out_ PCLIENT_ID ClientId);
01177 
01178 _IRQL_requires_min_(PASSIVE_LEVEL)
01179 _When_((Timeout==NULL || *Timeout!=0), _IRQL_requires_max_(APC_LEVEL))
01180 _When_((Timeout!=NULL && *Timeout==0), _IRQL_requires_max_(DISPATCH_LEVEL))
01181 NTKERNELAPI
01182 ULONG
01183 NTAPI
01184 KeRemoveQueueEx(
01185   _Inout_ PKQUEUE Queue,
01186   _In_ KPROCESSOR_MODE WaitMode,
01187   _In_ BOOLEAN Alertable,
01188   _In_opt_ PLARGE_INTEGER Timeout,
01189   _Out_writes_to_(Count, return) PLIST_ENTRY *EntryArray,
01190   _In_ ULONG Count);
01191 $endif (_NTIFS_)
01192 
01193 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
01194 
01195 $if (_WDMDDK_)
01196 #if (NTDDI_VERSION >= NTDDI_WS08)
01197 
01198 _IRQL_requires_max_(APC_LEVEL)
01199 PVOID
01200 NTAPI
01201 KeRegisterProcessorChangeCallback(
01202   _In_ PPROCESSOR_CALLBACK_FUNCTION CallbackFunction,
01203   _In_opt_ PVOID CallbackContext,
01204   _In_ ULONG Flags);
01205 
01206 _IRQL_requires_max_(APC_LEVEL)
01207 VOID
01208 NTAPI
01209 KeDeregisterProcessorChangeCallback(
01210   _In_ PVOID CallbackHandle);
01211 
01212 #endif /* (NTDDI_VERSION >= NTDDI_WS08) */
01213 $endif (_WDMDDK_)
01214 $if (_WDMDDK_ || _NTDDK_)
01215 #if (NTDDI_VERSION >= NTDDI_WIN7)
01216 $endif (_WDMDDK_ || _NTDDK_)
01217 
01218 $if (_WDMDDK_)
01219 _IRQL_requires_max_(DISPATCH_LEVEL)
01220 _IRQL_requires_min_(PASSIVE_LEVEL)
01221 _IRQL_requires_same_
01222 ULONG64
01223 NTAPI
01224 KeQueryTotalCycleTimeProcess(
01225   _Inout_ PKPROCESS Process,
01226   _Out_ PULONG64 CycleTimeStamp);
01227 
01228 _IRQL_requires_max_(APC_LEVEL)
01229 _IRQL_requires_min_(PASSIVE_LEVEL)
01230 _IRQL_requires_same_
01231 ULONG64
01232 NTAPI
01233 KeQueryTotalCycleTimeThread(
01234   _Inout_ PKTHREAD Thread,
01235   _Out_ PULONG64 CycleTimeStamp);
01236 
01237 _Must_inspect_result_
01238 NTKERNELAPI
01239 NTSTATUS
01240 NTAPI
01241 KeSetTargetProcessorDpcEx(
01242   _Inout_ PKDPC Dpc,
01243   _In_ PPROCESSOR_NUMBER ProcNumber);
01244 
01245 _IRQL_requires_min_(PASSIVE_LEVEL)
01246 _IRQL_requires_max_(APC_LEVEL)
01247 NTKERNELAPI
01248 VOID
01249 NTAPI
01250 KeSetSystemGroupAffinityThread(
01251   _In_ PGROUP_AFFINITY Affinity,
01252   _Out_opt_ PGROUP_AFFINITY PreviousAffinity);
01253 
01254 _IRQL_requires_min_(PASSIVE_LEVEL)
01255 _IRQL_requires_max_(APC_LEVEL)
01256 NTKERNELAPI
01257 VOID
01258 NTAPI
01259 KeRevertToUserGroupAffinityThread(
01260   _In_ PGROUP_AFFINITY PreviousAffinity);
01261 
01262 _IRQL_requires_max_(DISPATCH_LEVEL)
01263 NTKERNELAPI
01264 BOOLEAN
01265 NTAPI
01266 KeSetCoalescableTimer(
01267   _Inout_ PKTIMER Timer,
01268   _In_ LARGE_INTEGER DueTime,
01269   _In_ ULONG Period,
01270   _In_ ULONG TolerableDelay,
01271   _In_opt_ PKDPC Dpc);
01272 
01273 NTKERNELAPI
01274 ULONGLONG
01275 NTAPI
01276 KeQueryUnbiasedInterruptTime(VOID);
01277 
01278 NTKERNELAPI
01279 ULONG
01280 NTAPI
01281 KeQueryActiveProcessorCountEx(
01282   _In_ USHORT GroupNumber);
01283 
01284 NTKERNELAPI
01285 ULONG
01286 NTAPI
01287 KeQueryMaximumProcessorCountEx(
01288   _In_ USHORT GroupNumber);
01289 
01290 NTKERNELAPI
01291 USHORT
01292 NTAPI
01293 KeQueryActiveGroupCount(VOID);
01294 
01295 NTKERNELAPI
01296 USHORT
01297 NTAPI
01298 KeQueryMaximumGroupCount(VOID);
01299 
01300 NTKERNELAPI
01301 KAFFINITY
01302 NTAPI
01303 KeQueryGroupAffinity(
01304   _In_ USHORT GroupNumber);
01305 
01306 NTKERNELAPI
01307 ULONG
01308 NTAPI
01309 KeGetCurrentProcessorNumberEx(
01310   _Out_opt_ PPROCESSOR_NUMBER ProcNumber);
01311 
01312 NTKERNELAPI
01313 VOID
01314 NTAPI
01315 KeQueryNodeActiveAffinity(
01316   _In_ USHORT NodeNumber,
01317   _Out_opt_ PGROUP_AFFINITY Affinity,
01318   _Out_opt_ PUSHORT Count);
01319 
01320 NTKERNELAPI
01321 USHORT
01322 NTAPI
01323 KeQueryNodeMaximumProcessorCount(
01324   _In_ USHORT NodeNumber);
01325 
01326 NTKERNELAPI
01327 USHORT
01328 NTAPI
01329 KeQueryHighestNodeNumber(VOID);
01330 
01331 NTKERNELAPI
01332 USHORT
01333 NTAPI
01334 KeGetCurrentNodeNumber(VOID);
01335 
01336 _IRQL_requires_max_(DISPATCH_LEVEL)
01337 NTKERNELAPI
01338 NTSTATUS
01339 NTAPI
01340 KeQueryLogicalProcessorRelationship(
01341   _In_opt_ PPROCESSOR_NUMBER ProcessorNumber OPTIONAL,
01342   _In_ LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
01343   _Out_writes_bytes_opt_(*Length) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information,
01344   _Inout_ PULONG Length);
01345 
01346 _Must_inspect_result_
01347 _IRQL_requires_max_(DISPATCH_LEVEL)
01348 _Ret_range_(<=, 0)
01349 _When_(return==0, _Kernel_float_saved_)
01350 NTKERNELAPI
01351 NTSTATUS
01352 NTAPI
01353 KeSaveExtendedProcessorState(
01354   _In_ ULONG64 Mask,
01355   _Out_ _Requires_lock_not_held_(*_Curr_)
01356   _When_(return==0, _Acquires_lock_(*_Curr_))
01357     PXSTATE_SAVE XStateSave);
01358 
01359 _Kernel_float_restored_
01360 NTKERNELAPI
01361 VOID
01362 NTAPI
01363 KeRestoreExtendedProcessorState(
01364   _In_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_)
01365     PXSTATE_SAVE XStateSave);
01366 
01367 NTSTATUS
01368 NTAPI
01369 KeGetProcessorNumberFromIndex(
01370   _In_ ULONG ProcIndex,
01371   _Out_ PPROCESSOR_NUMBER ProcNumber);
01372 
01373 ULONG
01374 NTAPI
01375 KeGetProcessorIndexFromNumber(
01376   _In_ PPROCESSOR_NUMBER ProcNumber);
01377 $endif (_WDMDDK_)
01378 $if (_NTDDK_)
01379 NTKERNELAPI
01380 ULONG
01381 NTAPI
01382 KeQueryActiveProcessorCountEx(
01383   _In_ USHORT GroupNumber);
01384 
01385 NTKERNELAPI
01386 ULONG
01387 NTAPI
01388 KeQueryMaximumProcessorCountEx(
01389   _In_ USHORT GroupNumber);
01390 
01391 NTKERNELAPI
01392 USHORT
01393 NTAPI
01394 KeQueryActiveGroupCount(VOID);
01395 
01396 NTKERNELAPI
01397 USHORT
01398 NTAPI
01399 KeQueryMaximumGroupCount(VOID);
01400 
01401 NTKERNELAPI
01402 KAFFINITY
01403 NTAPI
01404 KeQueryGroupAffinity(
01405   _In_ USHORT GroupNumber);
01406 
01407 NTKERNELAPI
01408 ULONG
01409 NTAPI
01410 KeGetCurrentProcessorNumberEx(
01411   _Out_opt_ PPROCESSOR_NUMBER ProcNumber);
01412 
01413 NTKERNELAPI
01414 VOID
01415 NTAPI
01416 KeQueryNodeActiveAffinity(
01417   _In_ USHORT NodeNumber,
01418   _Out_opt_ PGROUP_AFFINITY Affinity,
01419   _Out_opt_ PUSHORT Count);
01420 
01421 NTKERNELAPI
01422 USHORT
01423 NTAPI
01424 KeQueryNodeMaximumProcessorCount(
01425   _In_ USHORT NodeNumber);
01426 
01427 NTKERNELAPI
01428 USHORT
01429 NTAPI
01430 KeQueryHighestNodeNumber(VOID);
01431 
01432 NTKERNELAPI
01433 USHORT
01434 NTAPI
01435 KeGetCurrentNodeNumber(VOID);
01436 
01437 _IRQL_requires_max_(DISPATCH_LEVEL)
01438 NTKERNELAPI
01439 NTSTATUS
01440 NTAPI
01441 KeQueryLogicalProcessorRelationship(
01442   _In_opt_ PPROCESSOR_NUMBER ProcessorNumber,
01443   _In_ LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType,
01444   _Out_writes_bytes_opt_(*Length) PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Information,
01445   _Inout_ PULONG Length);
01446 
01447 _IRQL_requires_max_(APC_LEVEL)
01448 NTKERNELAPI
01449 NTSTATUS
01450 NTAPI
01451 KeSetHardwareCounterConfiguration(
01452   _In_reads_(Count) PHARDWARE_COUNTER CounterArray,
01453   _In_ ULONG Count);
01454 
01455 _IRQL_requires_max_(APC_LEVEL)
01456 NTKERNELAPI
01457 NTSTATUS
01458 NTAPI
01459 KeQueryHardwareCounterConfiguration(
01460   _Out_writes_to_(MaximumCount, *Count) PHARDWARE_COUNTER CounterArray,
01461   _In_ ULONG MaximumCount,
01462   _Out_ PULONG Count);
01463 $endif (_NTDDK_)
01464 $if (_WDMDDK_ || _NTDDK_)
01465 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
01466 $endif (_WDMDDK_ || _NTDDK_)
01467 $if (_WDMDDK_)
01468 #if !defined(_IA64_)
01469 NTHALAPI
01470 VOID
01471 NTAPI
01472 KeFlushWriteBuffer(VOID);
01473 #endif
01474 
01475 /* VOID
01476  * KeInitializeCallbackRecord(
01477  *   IN PKBUGCHECK_CALLBACK_RECORD  CallbackRecord)
01478  */
01479 #define KeInitializeCallbackRecord(CallbackRecord) \
01480   CallbackRecord->State = BufferEmpty;
01481 
01482 #if defined(_PREFAST_)
01483 
01484 void __PREfastPagedCode(void);
01485 void __PREfastPagedCodeLocked(void);
01486 #define PAGED_CODE() __PREfastPagedCode();
01487 #define PAGED_CODE_LOCKED() __PREfastPagedCodeLocked();
01488 
01489 #elif DBG
01490 
01491 #if (NTDDI_VERSION >= NTDDI_VISTA)
01492 #define PAGED_ASSERT( exp ) NT_ASSERT( exp )
01493 #else
01494 #define PAGED_ASSERT( exp ) ASSERT( exp )
01495 #endif
01496 
01497 #define PAGED_CODE() { \
01498   if (KeGetCurrentIrql() > APC_LEVEL) { \
01499     KdPrint( ("NTDDK: Pageable code called at IRQL > APC_LEVEL (%d)\n", KeGetCurrentIrql() )); \
01500     PAGED_ASSERT(FALSE); \
01501   } \
01502 }
01503 
01504 #define PAGED_CODE_LOCKED() NOP_FUNCTION;
01505 
01506 #else
01507 
01508 #define PAGED_CODE() NOP_FUNCTION;
01509 #define PAGED_CODE_LOCKED() NOP_FUNCTION;
01510 
01511 #endif /* DBG */
01512 
01513 $endif (_WDMDDK_)

Generated on Thu May 24 2012 04:31:33 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.