- Move more stuff to wdm.h
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 16:18:23 +0000 (16:18 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 16:18:23 +0000 (16:18 +0000)
- Improve more Ke* definitions

svn path=/branches/header-work/; revision=45871

include/ddk/wdm.h
include/ddk/winddk.h

index ba20571..caff531 100644 (file)
@@ -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
index c3af405..79e75b4 100644 (file)
@@ -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