More NDK Fixes Modified: trunk/reactos/include/ndk/extypes.h Modified: trunk/reactos/include/ndk/haltypes.h Modified: trunk/reactos/include/ndk/kefuncs.h Modified: trunk/reactos/include/ndk/ketypes.h Modified: trunk/reactos/include/ndk/rtltypes.h Modified: trunk/reactos/include/ndk/zwfuncs.h Modified: trunk/reactos/include/ndk/zwtypes.h _____
Modified: trunk/reactos/include/ndk/extypes.h --- trunk/reactos/include/ndk/extypes.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/extypes.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -14,6 +14,8 @@
/* EXPORTED DATA *************************************************************/ extern POBJECT_TYPE NTOSAPI ExIoCompletionType; +extern NTOSAPI POBJECT_TYPE ExMutantObjectType; +extern NTOSAPI POBJECT_TYPE ExTimerType;
/* CONSTANTS *****************************************************************/
@@ -45,5 +47,59 @@
/* TYPES *********************************************************************/
+typedef struct _EX_QUEUE_WORKER_INFO +{ + UCHAR QueueDisabled:1; + UCHAR MakeThreadsAsNecessary:1; + UCHAR WaitMode:1; + ULONG WorkerCount:29; +} EX_QUEUE_WORKER_INFO, *PEX_QUEUE_WORKER_INFO; + +typedef struct _EX_WORK_QUEUE +{ + KQUEUE WorkerQueue; + ULONG DynamicThreadCount; + ULONG WorkItemsProcessed; + ULONG WorkItemsProcessedLastPass; + ULONG QueueDepthLastPass; + EX_QUEUE_WORKER_INFO Info; +} EX_WORK_QUEUE, *PEX_WORK_QUEUE; + +typedef struct _HANDLE_TABLE_ENTRY_INFO +{ + ULONG AuditMask; +} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO; + +typedef struct _HANDLE_TABLE_ENTRY +{ + union + { + PVOID Object; + ULONG_PTR ObAttributes; + PHANDLE_TABLE_ENTRY_INFO InfoTable; + ULONG_PTR Value; + } u1; + union + { + ULONG GrantedAccess; + USHORT GrantedAccessIndex; + LONG NextFreeTableEntry; + } u2; +} HANDLE_TABLE_ENTRY, *PHANDLE_TABLE_ENTRY; + +typedef struct _HANDLE_TABLE +{ + ULONG Flags; + LONG HandleCount; + PHANDLE_TABLE_ENTRY **Table; + PEPROCESS QuotaProcess; + HANDLE UniqueProcessId; + LONG FirstFreeTableEntry; + LONG NextIndexNeedingPool; + ERESOURCE HandleTableLock; + LIST_ENTRY HandleTableList; + KEVENT HandleContentionEvent; +} HANDLE_TABLE; + #endif
_____
Modified: trunk/reactos/include/ndk/haltypes.h --- trunk/reactos/include/ndk/haltypes.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/haltypes.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -10,7 +10,7 @@
#define _HALTYPES_H
/* DEPENDENCIES **************************************************************/ -#include <ddk/ntdddisk.h> +//#include <ddk/ntdddisk.h>
/* EXPORTED DATA *************************************************************/ extern ULONG NTOSAPI KdComPortInUse; @@ -48,7 +48,7 @@ ULONG Reserved; } LOADER_MODULE, *PLOADER_MODULE;
-typedef struct _LOADER_PARAMETER_BLOCK +typedef struct _LOADER_PARAMETER_BLOCK { ULONG Flags; ULONG MemLower; @@ -64,6 +64,9 @@ ULONG DrivesAddr; ULONG ConfigTable; ULONG BootLoaderName; + ULONG PageDirectoryStart; + ULONG PageDirectoryEnd; + ULONG KernelBase; } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
#endif _____
Modified: trunk/reactos/include/ndk/kefuncs.h --- trunk/reactos/include/ndk/kefuncs.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/kefuncs.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -123,23 +123,23 @@
IN PKTHREAD *Thread OPTIONAL );
-PVOID +PCONFIGURATION_COMPONENT_DATA STDCALL -KeFindConfigurationEntry( - IN PVOID Unknown, - IN ULONG Class, +KeFindConfigurationNextEntry( + IN PCONFIGURATION_COMPONENT_DATA Child, + IN CONFIGURATION_CLASS Class, IN CONFIGURATION_TYPE Type, - IN PULONG RegKey + IN PULONG ComponentKey OPTIONAL, + IN PCONFIGURATION_COMPONENT_DATA *NextLink ); - -PVOID + +PCONFIGURATION_COMPONENT_DATA STDCALL -KeFindConfigurationNextEntry( - IN PVOID Unknown, - IN ULONG Class, +KeFindConfigurationEntry( + IN PCONFIGURATION_COMPONENT_DATA Child, + IN CONFIGURATION_CLASS Class, IN CONFIGURATION_TYPE Type, - IN PULONG RegKey, - IN PVOID *NextLink + IN PULONG ComponentKey OPTIONAL );
VOID _____
Modified: trunk/reactos/include/ndk/ketypes.h --- trunk/reactos/include/ndk/ketypes.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/ketypes.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -11,11 +11,22 @@
/* DEPENDENCIES **************************************************************/ #include "haltypes.h" +#include <arc/arc.h>
/* CONSTANTS *****************************************************************/ #define SSDT_MAX_ENTRIES 4 #define PROCESSOR_FEATURE_MAX 64
+#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT) + +#define THREAD_WAIT_OBJECTS 4 + +/* FIXME: Create an ASM Offset File */ +#define KTSS_ESP0 (0x4) +#define KTSS_CR3 (0x1C) +#define KTSS_EFLAGS (0x24) +#define KTSS_IOMAPBASE (0x66) + /* EXPORTED DATA *************************************************************/ extern CHAR NTOSAPI KeNumberProcessors; extern LOADER_PARAMETER_BLOCK NTOSAPI KeLoaderBlock; @@ -32,6 +43,15 @@
/* TYPES *********************************************************************/
+typedef struct _CONFIGURATION_COMPONENT_DATA +{ + struct _CONFIGURATION_COMPONENT_DATA *Parent; + struct _CONFIGURATION_COMPONENT_DATA *Child; + struct _CONFIGURATION_COMPONENT_DATA *Sibling; + CONFIGURATION_COMPONENT Component; +} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA; + + typedef enum _KAPC_ENVIRONMENT { OriginalApcEnvironment, @@ -120,6 +140,99 @@ } HighWord; } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
+ +#include <pshpack1.h> + +typedef struct _KTSSNOIOPM +{ + USHORT PreviousTask; + USHORT Reserved1; + ULONG Esp0; + USHORT Ss0; + USHORT Reserved2; + ULONG Esp1; + USHORT Ss1; + USHORT Reserved3; + ULONG Esp2; + USHORT Ss2; + USHORT Reserved4; + ULONG Cr3; + ULONG Eip; + ULONG Eflags; + ULONG Eax; + ULONG Ecx; + ULONG Edx; + ULONG Ebx; + ULONG Esp; + ULONG Ebp; + ULONG Esi; + ULONG Edi; + USHORT Es; + USHORT Reserved5; + USHORT Cs; + USHORT Reserved6; + USHORT Ss; + USHORT Reserved7; + USHORT Ds; + USHORT Reserved8; + USHORT Fs; + USHORT Reserved9; + USHORT Gs; + USHORT Reserved10; + USHORT Ldt; + USHORT Reserved11; + USHORT Trap; + USHORT IoMapBase; + /* no interrupt redirection map */ + UCHAR IoBitmap[1]; +} KTSSNOIOPM; + +typedef struct _KTSS +{ + USHORT PreviousTask; + USHORT Reserved1; + ULONG Esp0; + USHORT Ss0; + USHORT Reserved2; + ULONG Esp1; + USHORT Ss1; + USHORT Reserved3; + ULONG Esp2; + USHORT Ss2; + USHORT Reserved4; + ULONG Cr3; + ULONG Eip; + ULONG Eflags; + ULONG Eax; + ULONG Ecx; + ULONG Edx; + ULONG Ebx; + ULONG Esp; + ULONG Ebp; + ULONG Esi; + ULONG Edi; + USHORT Es; + USHORT Reserved5; + USHORT Cs; + USHORT Reserved6; + USHORT Ss; + USHORT Reserved7; + USHORT Ds; + USHORT Reserved8; + USHORT Fs; + USHORT Reserved9; + USHORT Gs; + USHORT Reserved10; + USHORT Ldt; + USHORT Reserved11; + USHORT Trap; + USHORT IoMapBase; + /* no interrupt redirection map */ + UCHAR IoBitmap[8193]; +} KTSS; + +#include <poppack.h> + /* i386 Doesn't have Exception Frames */ typedef struct _KEXCEPTION_FRAME {
@@ -157,6 +270,43 @@ KEVENT HighEvent; } KEVENT_PAIR, *PKEVENT_PAIR;
-/* FIXME: Add KOBJECTS Here */ +typedef enum _KOBJECTS { + EventNotificationObject = 0, + EventSynchronizationObject = 1, + MutantObject = 2, + ProcessObject = 3, + QueueObject = 4, + SemaphoreObject = 5, + ThreadObject = 6, + GateObject = 7, + TimerNotificationObject = 8, + TimerSynchronizationObject = 9, + Spare2Object = 10, + Spare3Object = 11, + Spare4Object = 12, + Spare5Object = 13, + Spare6Object = 14, + Spare7Object = 15, + Spare8Object = 16, + Spare9Object = 17, + ApcObject = 18, + DpcObject = 19, + DeviceQueueObject = 20, + EventPairObject = 21, + InterruptObject = 22, + ProfileObject = 23, + ThreadedDpcObject = 24, + MaximumKernelObject = 25 +} KOBJECTS;
+typedef enum _KTHREAD_STATE { + Initialized, + Ready, + Running, + Standby, + Terminated, + Waiting, + Transition, + DeferredReady, +} KTHREAD_STATE, *PKTHREAD_STATE; #endif _____
Modified: trunk/reactos/include/ndk/rtltypes.h --- trunk/reactos/include/ndk/rtltypes.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/rtltypes.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -21,6 +21,9 @@
#define PEB_BASE (0x7FFDF000)
+#define EXCEPTION_CONTINUE_SEARCH 0 +#define EXCEPTION_EXECUTE_HANDLER 1 + #define EXCEPTION_UNWINDING 0x02 #define EXCEPTION_EXIT_UNWIND 0x04 #define EXCEPTION_STACK_INVALID 0x8 @@ -93,7 +96,7 @@ { USHORT Length; USHORT Flags; - UCHAR Text[1]; + CHAR Text[1]; } RTL_MESSAGE_RESOURCE_ENTRY, *PRTL_MESSAGE_RESOURCE_ENTRY;
typedef struct _RTL_MESSAGE_RESOURCE_BLOCK _____
Modified: trunk/reactos/include/ndk/zwfuncs.h --- trunk/reactos/include/ndk/zwfuncs.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/zwfuncs.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -2494,6 +2494,18 @@
NTSTATUS STDCALL +NtResumeProcess( + IN HANDLE ProcessHandle +); + +NTSTATUS +STDCALL +ZwResumeProcess( + IN HANDLE ProcessHandle +); + +NTSTATUS +STDCALL NtSaveKey( IN HANDLE KeyHandle, IN HANDLE FileHandle @@ -3246,6 +3258,18 @@ IN PULONG PreviousSuspendCount );
+NTSTATUS +STDCALL +NtSuspendProcess( + IN HANDLE ProcessHandle +); + +NTSTATUS +STDCALL +ZwSuspendProcess( + IN HANDLE ProcessHandle +); + NTSTATUS STDCALL NtTerminateThread( @@ -3482,7 +3506,7 @@ NTSTATUS STDCALL NtDelayExecution( - IN ULONG Alertable, + IN BOOLEAN Alertable, IN LARGE_INTEGER *Interval );
@@ -3603,12 +3627,12 @@ NTSTATUS STDCALL NtRaiseHardError( - IN NTSTATUS Status, - ULONG Unknown2, - ULONG Unknown3, - ULONG Unknown4, - ULONG Unknown5, - ULONG Unknown6 + IN NTSTATUS ErrorStatus, + IN ULONG NumberOfParameters, + IN PUNICODE_STRING UnicodeStringParameterMask OPTIONAL, + IN PVOID *Parameters, + IN HARDERROR_RESPONSE_OPTION ResponseOption, + OUT PHARDERROR_RESPONSE Response );
NTSTATUS _____
Modified: trunk/reactos/include/ndk/zwtypes.h --- trunk/reactos/include/ndk/zwtypes.h 2005-06-19 04:49:14 UTC (rev 16074) +++ trunk/reactos/include/ndk/zwtypes.h 2005-06-19 07:03:18 UTC (rev 16075) @@ -17,6 +17,8 @@
/* CONSTANTS *****************************************************************/ #define MAX_BUS_NAME 24
+#define EVENT_PAIR_ALL_ACCESS (0x1F0000L) + /* ENUMERATIONS **************************************************************/
typedef enum _PLUGPLAY_BUS_CLASS