From: Amine Khaldi Date: Fri, 5 Mar 2010 16:18:23 +0000 (+0000) Subject: - Move more stuff to wdm.h X-Git-Tag: backups/header-work@57446~245 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=42fde03fe1f136f275afdf8f83037393f1bbf8f1 - Move more stuff to wdm.h - Improve more Ke* definitions svn path=/branches/header-work/; revision=45871 --- diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index ba20571d9dd..caff531e69a 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -722,6 +722,11 @@ VOID IN PVOID Parameter3 ); +typedef +ULONG_PTR +(NTAPI *PKIPI_BROADCAST_WORKER)( + IN ULONG_PTR Argument); + typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK; typedef struct _KSPIN_LOCK_QUEUE { @@ -971,6 +976,33 @@ typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32; * Kernel Functions * ******************************************************************************/ +#if (NTDDI_VERSION >= NTDDI_WIN2K) && defined(SINGLE_GROUP_LEGACY_API) +NTKERNELAPI +KAFFINITY +KeQueryActiveProcessors ( + VOID); +#endif + +#if !defined(_M_AMD64) + +#if (NTDDI_VERSION >= NTDDI_WIN2K) + +NTKERNELAPI +ULONGLONG +NTAPI +KeQueryInterruptTime( + VOID); + +NTKERNELAPI +VOID +NTAPI +KeQuerySystemTime( + OUT PLARGE_INTEGER CurrentTime); + +#endif + +#endif // !_M_AMD64 + #if (NTDDI_VERSION >= NTDDI_WIN2K) NTKERNELAPI @@ -1071,6 +1103,185 @@ VOID NTAPI KeLeaveCriticalRegion(VOID); +NTHALAPI +LARGE_INTEGER +NTAPI +KeQueryPerformanceCounter( + OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL); + +NTKERNELAPI +KPRIORITY +NTAPI +KeQueryPriorityThread( + IN PRKTHREAD Thread); + +NTKERNELAPI +ULONG +NTAPI +KeQueryTimeIncrement( + VOID); + +NTKERNELAPI +LONG +NTAPI +KeReadStateEvent( + IN PRKEVENT Event); + +NTKERNELAPI +LONG +NTAPI +KeReadStateMutex( + IN PRKMUTEX Mutex); + + +NTKERNELAPI +LONG +NTAPI +KeReadStateSemaphore( + IN PRKSEMAPHORE Semaphore); + +NTKERNELAPI +BOOLEAN +NTAPI +KeReadStateTimer( + IN PKTIMER Timer); + +NTKERNELAPI +BOOLEAN +NTAPI +KeRegisterBugCheckCallback( + OUT PKBUGCHECK_CALLBACK_RECORD CallbackRecord, + IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine, + IN PVOID Buffer, + IN ULONG Length, + IN PUCHAR Component); + +NTKERNELAPI +LONG +NTAPI +KeReleaseMutex( + IN OUT PRKMUTEX Mutex, + IN BOOLEAN Wait); + +NTKERNELAPI +LONG +NTAPI +KeReleaseSemaphore( + IN OUT PRKSEMAPHORE Semaphore, + IN KPRIORITY Increment, + IN LONG Adjustment, + IN BOOLEAN Wait); + +NTKERNELAPI +PKDEVICE_QUEUE_ENTRY +NTAPI +KeRemoveByKeyDeviceQueue( + IN OUT PKDEVICE_QUEUE DeviceQueue, + IN ULONG SortKey); + +NTKERNELAPI +PKDEVICE_QUEUE_ENTRY +NTAPI +KeRemoveDeviceQueue( + IN OUT PKDEVICE_QUEUE DeviceQueue); + +NTKERNELAPI +BOOLEAN +NTAPI +KeRemoveEntryDeviceQueue( + IN OUT PKDEVICE_QUEUE DeviceQueue, + IN OUT PKDEVICE_QUEUE_ENTRY DeviceQueueEntry); + +NTKERNELAPI +BOOLEAN +NTAPI +KeRemoveQueueDpc( + IN OUT PRKDPC Dpc); + +NTKERNELAPI +LONG +NTAPI +KeResetEvent( + IN OUT PRKEVENT Event); + +NTKERNELAPI +LONG +NTAPI +KeSetEvent( + IN OUT PRKEVENT Event, + IN KPRIORITY Increment, + IN BOOLEAN Wait); + +NTKERNELAPI +VOID +NTAPI +KeSetImportanceDpc( + IN OUT PRKDPC Dpc, + IN KDPC_IMPORTANCE Importance); + +NTKERNELAPI +KPRIORITY +NTAPI +KeSetPriorityThread( + IN OUT PKTHREAD Thread, + IN KPRIORITY Priority); + +NTKERNELAPI +BOOLEAN +NTAPI +KeSetTimer( + IN OUT PKTIMER Timer, + IN LARGE_INTEGER DueTime, + IN PKDPC Dpc OPTIONAL); + +NTKERNELAPI +BOOLEAN +NTAPI +KeSetTimerEx( + IN OUT PKTIMER Timer, + IN LARGE_INTEGER DueTime, + IN LONG Period OPTIONAL, + IN PKDPC Dpc OPTIONAL); + +NTHALAPI +VOID +NTAPI +KeStallExecutionProcessor( + IN ULONG MicroSeconds); + +NTKERNELAPI +BOOLEAN +NTAPI +KeSynchronizeExecution( + IN OUT PKINTERRUPT Interrupt, + IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, + IN PVOID SynchronizeContext OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +KeWaitForMultipleObjects( + IN ULONG Count, + IN PVOID Object[], + IN WAIT_TYPE WaitType, + IN KWAIT_REASON WaitReason, + IN KPROCESSOR_MODE WaitMode, + IN BOOLEAN Alertable, + IN PLARGE_INTEGER Timeout OPTIONAL, + OUT PKWAIT_BLOCK WaitBlockArray OPTIONAL); + +#define KeWaitForMutexObject KeWaitForSingleObject + +NTKERNELAPI +NTSTATUS +NTAPI +KeWaitForSingleObject( + IN PVOID Object, + IN KWAIT_REASON WaitReason, + IN KPROCESSOR_MODE WaitMode, + IN BOOLEAN Alertable, + IN PLARGE_INTEGER Timeout OPTIONAL); + #endif #if (NTDDI_VERSION >= NTDDI_WINXP) @@ -1104,6 +1315,26 @@ ULONG NTAPI KeGetRecommendedSharedDataAlignment(VOID); +NTKERNELAPI +ULONG +NTAPI +KeQueryRuntimeThread( + IN PKTHREAD Thread, + OUT PULONG UserTime); + +NTKERNELAPI +VOID +FASTCALL +KeReleaseInStackQueuedSpinLockFromDpcLevel( + IN PKLOCK_QUEUE_HANDLE LockHandle); + +NTKERNELAPI +VOID +NTAPI +KeReleaseInterruptSpinLock( + IN OUT PKINTERRUPT Interrupt, + IN KIRQL OldIrql); + #endif #if (NTDDI_VERSION >= NTDDI_WINXPSP2) @@ -1116,6 +1347,44 @@ KeFlushQueuedDpcs( #endif +#if (NTDDI_VERSION >= NTDDI_WS03) + +NTKERNELAPI +PVOID +NTAPI +KeRegisterNmiCallback( + IN PNMI_CALLBACK CallbackRoutine, + IN PVOID Context OPTIONAL); + +NTKERNELAPI +NTSTATUS +NTAPI +KeDeregisterNmiCallback( + IN PVOID Handle +); + +NTKERNELAPI +ULONG_PTR +NTAPI +KeIpiGenericCall( + IN PKIPI_BROADCAST_WORKER BroadcastFunction, + IN ULONG_PTR Context +); + +#endif + +NTKERNELAPI +NTSTATUS +NTAPI +KeSaveFloatingPointState( + OUT PKFLOATING_SAVE FloatSave); + +NTKERNELAPI +NTSTATUS +NTAPI +KeRestoreFloatingPointState( + IN PKFLOATING_SAVE FloatSave); + #if defined(_IA64_) FORCEINLINE VOID @@ -1137,6 +1406,28 @@ NTAPI KeClearEvent( IN OUT PRKEVENT Event); +#if (NTDDI_VERSION >= NTDDI_WIN2K) && defined(SINGLE_GROUP_LEGACY_API) + +NTKERNELAPI +VOID +NTAPI +KeRevertToUserAffinityThread(VOID); + +NTKERNELAPI +VOID +NTAPI +KeSetSystemAffinityThread( + IN KAFFINITY Affinity); + +NTKERNELAPI +VOID +NTAPI +KeSetTargetProcessorDpc( + IN PRKDPC Dpc, + IN CCHAR Number); + +#endif + /* * VOID * KeFlushIoBuffers( @@ -9032,14 +9323,14 @@ extern ULONG NtGlobalFlag; #endif /* Thread Access Rights */ -#define THREAD_TERMINATE (0x0001) -#define THREAD_SUSPEND_RESUME (0x0002) +#define THREAD_TERMINATE (0x0001) +#define THREAD_SUSPEND_RESUME (0x0002) #define THREAD_ALERT (0x0004) -#define THREAD_GET_CONTEXT (0x0008) -#define THREAD_SET_CONTEXT (0x0010) -#define THREAD_SET_INFORMATION (0x0020) -#define THREAD_SET_LIMITED_INFORMATION (0x0400) -#define THREAD_QUERY_LIMITED_INFORMATION (0x0800) +#define THREAD_GET_CONTEXT (0x0008) +#define THREAD_SET_CONTEXT (0x0010) +#define THREAD_SET_INFORMATION (0x0020) +#define THREAD_SET_LIMITED_INFORMATION (0x0400) +#define THREAD_QUERY_LIMITED_INFORMATION (0x0800) #if (NTDDI_VERSION >= NTDDI_VISTA) #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFFF) @@ -9071,6 +9362,24 @@ typedef struct _QUOTA_LIMITS { #define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008 #define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010 +/* Exported object types */ +extern POBJECT_TYPE NTSYSAPI ExEventObjectType; +extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType; +extern POBJECT_TYPE NTSYSAPI IoFileObjectType; +extern POBJECT_TYPE NTSYSAPI PsThreadType; +extern POBJECT_TYPE NTSYSAPI SeTokenObjectType; +extern POBJECT_TYPE NTSYSAPI PsProcessType; + +#if defined(_IA64_) + +extern volatile LARGE_INTEGER KeTickCount; + +#elif defined(_X86_) + +extern volatile KSYSTEM_TIME KeTickCount; + +#endif + /* HACK HACK HACK - GCC (or perhaps LD) is messing this up */ #if defined(_NTSYSTEM_) || defined(__GNUC__) #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag diff --git a/include/ddk/winddk.h b/include/ddk/winddk.h index c3af405cb74..79e75b4be7b 100644 --- a/include/ddk/winddk.h +++ b/include/ddk/winddk.h @@ -103,11 +103,6 @@ typedef enum IrpForward // Irp is wmi irp, but targeted at another device object } SYSCTL_IRP_DISPOSITION, *PSYSCTL_IRP_DISPOSITION; -// -// Forwarder -// -struct _COMPRESSED_DATA_INFO; - #define KERNEL_STACK_SIZE 12288 #define KERNEL_LARGE_STACK_SIZE 61440 #define KERNEL_LARGE_STACK_COMMIT 12288 @@ -237,21 +232,14 @@ typedef enum _DPFLTR_TYPE /* end winnt.h */ -#define THREAD_ALERT (0x0004) - /* Exported object types */ extern POBJECT_TYPE NTSYSAPI ExDesktopObjectType; -extern POBJECT_TYPE NTSYSAPI ExEventObjectType; -extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType; extern POBJECT_TYPE NTSYSAPI ExWindowStationObjectType; extern ULONG NTSYSAPI IoDeviceHandlerObjectSize; extern POBJECT_TYPE NTSYSAPI IoDeviceHandlerObjectType; extern POBJECT_TYPE NTSYSAPI IoDeviceObjectType; extern POBJECT_TYPE NTSYSAPI IoDriverObjectType; -extern POBJECT_TYPE NTSYSAPI IoFileObjectType; -extern POBJECT_TYPE NTSYSAPI PsThreadType; extern POBJECT_TYPE NTSYSAPI LpcPortObjectType; -extern POBJECT_TYPE NTSYSAPI SeTokenObjectType; extern POBJECT_TYPE NTSYSAPI PsProcessType; #if (NTDDI_VERSION >= NTDDI_LONGHORN) @@ -267,8 +255,6 @@ extern NTSYSAPI CCHAR KeNumberProcessors; //FIXME: Note to Alex: I won't fix thi #define MAX_WOW64_SHARED_ENTRIES 16 -extern volatile KSYSTEM_TIME KeTickCount; - #define NX_SUPPORT_POLICY_ALWAYSOFF 0 #define NX_SUPPORT_POLICY_ALWAYSON 1 #define NX_SUPPORT_POLICY_OPTIN 2 @@ -2861,44 +2847,7 @@ KePulseEvent( IN KPRIORITY Increment, IN BOOLEAN Wait); -NTKERNELAPI -KAFFINITY -NTAPI -KeQueryActiveProcessors( - VOID -); - -NTHALAPI -LARGE_INTEGER -NTAPI -KeQueryPerformanceCounter( - OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL); - -NTKERNELAPI -KPRIORITY -NTAPI -KeQueryPriorityThread( - IN PRKTHREAD Thread); - -NTKERNELAPI -ULONG -NTAPI -KeQueryRuntimeThread( - IN PKTHREAD Thread, - OUT PULONG UserTime); - #if !defined(_M_AMD64) -NTKERNELAPI -ULONGLONG -NTAPI -KeQueryInterruptTime( - VOID); - -NTKERNELAPI -VOID -NTAPI -KeQuerySystemTime( - OUT PLARGE_INTEGER CurrentTime); NTKERNELAPI VOID @@ -2907,140 +2856,6 @@ KeQueryTickCount( OUT PLARGE_INTEGER TickCount); #endif -NTKERNELAPI -ULONG -NTAPI -KeQueryTimeIncrement( - VOID); - -NTKERNELAPI -LONG -NTAPI -KeReadStateEvent( - IN PRKEVENT Event); - -NTKERNELAPI -LONG -NTAPI -KeReadStateMutex( - IN PRKMUTEX Mutex); - - -NTKERNELAPI -LONG -NTAPI -KeReadStateSemaphore( - IN PRKSEMAPHORE Semaphore); - -NTKERNELAPI -BOOLEAN -NTAPI -KeReadStateTimer( - IN PKTIMER Timer); - -NTKERNELAPI -BOOLEAN -NTAPI -KeRegisterBugCheckCallback( - IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord, - IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine, - IN PVOID Buffer, - IN ULONG Length, - IN PUCHAR Component); - -NTKERNELAPI -PVOID -NTAPI -KeRegisterNmiCallback( - IN PNMI_CALLBACK CallbackRoutine, - IN PVOID Context -); - -NTKERNELAPI -NTSTATUS -NTAPI -KeDeregisterNmiCallback( - IN PVOID Handle -); - -NTKERNELAPI -VOID -FASTCALL -KeReleaseInStackQueuedSpinLockFromDpcLevel( - IN PKLOCK_QUEUE_HANDLE LockHandle); - -NTKERNELAPI -VOID -NTAPI -KeReleaseInterruptSpinLock( - IN PKINTERRUPT Interrupt, - IN KIRQL OldIrql); - -NTKERNELAPI -LONG -NTAPI -KeReleaseMutex( - IN PRKMUTEX Mutex, - IN BOOLEAN Wait); - -NTKERNELAPI -LONG -NTAPI -KeReleaseSemaphore( - IN PRKSEMAPHORE Semaphore, - IN KPRIORITY Increment, - IN LONG Adjustment, - IN BOOLEAN Wait); - -NTKERNELAPI -PKDEVICE_QUEUE_ENTRY -NTAPI -KeRemoveByKeyDeviceQueue( - IN PKDEVICE_QUEUE DeviceQueue, - IN ULONG SortKey); - -NTKERNELAPI -PKDEVICE_QUEUE_ENTRY -NTAPI -KeRemoveDeviceQueue( - IN PKDEVICE_QUEUE DeviceQueue); - -NTKERNELAPI -BOOLEAN -NTAPI -KeRemoveEntryDeviceQueue( - IN PKDEVICE_QUEUE DeviceQueue, - IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry); - -NTKERNELAPI -BOOLEAN -NTAPI -KeRemoveQueueDpc( - IN PRKDPC Dpc); - -NTKERNELAPI -LONG -NTAPI -KeResetEvent( - IN PRKEVENT Event); - -NTKERNELAPI -NTSTATUS -NTAPI -KeRestoreFloatingPointState( - IN PKFLOATING_SAVE FloatSave); - -NTKERNELAPI -VOID -NTAPI -KeRevertToUserAffinityThread(VOID); - -NTKERNELAPI -NTSTATUS -NTAPI -KeSaveFloatingPointState( - OUT PKFLOATING_SAVE FloatSave); - NTKERNELAPI LONG NTAPI @@ -3048,125 +2863,12 @@ KeSetBasePriorityThread( IN PRKTHREAD Thread, IN LONG Increment); -NTKERNELAPI -LONG -NTAPI -KeSetEvent( - IN PRKEVENT Event, - IN KPRIORITY Increment, - IN BOOLEAN Wait); - -NTKERNELAPI -VOID -NTAPI -KeSetImportanceDpc( - IN PRKDPC Dpc, - IN KDPC_IMPORTANCE Importance); - -NTKERNELAPI -KPRIORITY -NTAPI -KeSetPriorityThread( - IN PKTHREAD Thread, - IN KPRIORITY Priority); - -NTKERNELAPI -VOID -NTAPI -KeSetSystemAffinityThread( - IN KAFFINITY Affinity); - -NTKERNELAPI -VOID -NTAPI -KeSetTargetProcessorDpc( - IN PRKDPC Dpc, - IN CCHAR Number); - -NTKERNELAPI -BOOLEAN -NTAPI -KeSetTimer( - IN PKTIMER Timer, - IN LARGE_INTEGER DueTime, - IN PKDPC Dpc OPTIONAL); - -NTKERNELAPI -BOOLEAN -NTAPI -KeSetTimerEx( - IN PKTIMER Timer, - IN LARGE_INTEGER DueTime, - IN LONG Period OPTIONAL, - IN PKDPC Dpc OPTIONAL); - NTKERNELAPI VOID FASTCALL KeSetTimeUpdateNotifyRoutine( IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine); -NTHALAPI -VOID -NTAPI -KeStallExecutionProcessor( - IN ULONG MicroSeconds); - -NTKERNELAPI -BOOLEAN -NTAPI -KeSynchronizeExecution( - IN PKINTERRUPT Interrupt, - IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, - IN PVOID SynchronizeContext); - -NTKERNELAPI -NTSTATUS -NTAPI -KeWaitForMultipleObjects( - IN ULONG Count, - IN PVOID Object[], - IN WAIT_TYPE WaitType, - IN KWAIT_REASON WaitReason, - IN KPROCESSOR_MODE WaitMode, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL, - IN PKWAIT_BLOCK WaitBlockArray OPTIONAL); - -NTKERNELAPI -NTSTATUS -NTAPI -KeWaitForMutexObject( - IN PRKMUTEX Mutex, - IN KWAIT_REASON WaitReason, - IN KPROCESSOR_MODE WaitMode, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL); - -NTKERNELAPI -NTSTATUS -NTAPI -KeWaitForSingleObject( - IN PVOID Object, - IN KWAIT_REASON WaitReason, - IN KPROCESSOR_MODE WaitMode, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER Timeout OPTIONAL); - -typedef -ULONG_PTR -(NTAPI *PKIPI_BROADCAST_WORKER)( - IN ULONG_PTR Argument -); - -NTKERNELAPI -ULONG_PTR -NTAPI -KeIpiGenericCall( - IN PKIPI_BROADCAST_WORKER BroadcastFunction, - IN ULONG_PTR Context -); - #if defined(_X86_) NTHALAPI