- Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h
authorAlex Ionescu <aionescu@gmail.com>
Tue, 22 Nov 2005 04:57:45 +0000 (04:57 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Tue, 22 Nov 2005 04:57:45 +0000 (04:57 +0000)
- Remove FASTCALL define from windef.h and add it to winddk.h
- Move EXCEPTION_ defines to crt/except.h
- Remove public GUIDs from sysguid.h and move from NDK to public umpnpmgr lib headers (since no other component but it + kernel uses them)
- Make include/ndk an include path. The NDK is now used like the DDK, so including ndk/foo.h should be replaced by include foo.h just like for PSDK or DDK.
- Don't include misc.h in usermode.
- Protect some stuff in helper.h against multiple definitions.
- Sync with NDK 1.00 Beta 1 to prepare for public NDK release.

svn path=/trunk/; revision=19450

56 files changed:
reactos/ReactOS.xml
reactos/hal/halx86/mp/mps.S
reactos/include/libs/umpnpmgr/sysguid.h [moved from reactos/include/ndk/sysguid.h with 77% similarity]
reactos/include/ndk/arch/ketypes.h
reactos/include/ndk/arch/mmtypes.h
reactos/include/ndk/asm.h
reactos/include/ndk/cctypes.h
reactos/include/ndk/cmtypes.h
reactos/include/ndk/dbgktypes.h
reactos/include/ndk/exfuncs.h
reactos/include/ndk/extypes.h
reactos/include/ndk/fixmes.txt
reactos/include/ndk/halfuncs.h
reactos/include/ndk/haltypes.h
reactos/include/ndk/i386/floatsave.h [deleted file]
reactos/include/ndk/i386/ketypes.h
reactos/include/ndk/i386/mmtypes.h
reactos/include/ndk/i386/segment.h [deleted file]
reactos/include/ndk/ifssupp.h
reactos/include/ndk/inbvfuncs.h
reactos/include/ndk/iofuncs.h
reactos/include/ndk/iotypes.h
reactos/include/ndk/kdfuncs.h
reactos/include/ndk/kdtypes.h
reactos/include/ndk/kefuncs.h
reactos/include/ndk/ketypes.h
reactos/include/ndk/ldrfuncs.h
reactos/include/ndk/ldrtypes.h
reactos/include/ndk/lpctypes.h
reactos/include/ndk/mmfuncs.h
reactos/include/ndk/mmtypes.h
reactos/include/ndk/ntndk.h
reactos/include/ndk/obfuncs.h
reactos/include/ndk/obtypes.h
reactos/include/ndk/potypes.h
reactos/include/ndk/psfuncs.h
reactos/include/ndk/pstypes.h
reactos/include/ndk/readme.txt [new file with mode: 0644]
reactos/include/ndk/rtlfuncs.h
reactos/include/ndk/rtltypes.h
reactos/include/ndk/sefuncs.h
reactos/include/ndk/setypes.h
reactos/include/ndk/umfuncs.h
reactos/include/ndk/umtypes.h
reactos/include/ndk/zwfuncs.h
reactos/include/reactos/helper.h
reactos/include/win32k/misc.h
reactos/lib/rtl/atom.c
reactos/ntoskrnl/include/ntoskrnl.h
reactos/ntoskrnl/ke/i386/irqhand.s
reactos/services/umpnpmgr/umpnpmgr.c
reactos/w32api/include/crt/excpt.h
reactos/w32api/include/ddk/winddk.h
reactos/w32api/include/winbase.h
reactos/w32api/include/windef.h
reactos/w32api/include/winnt.h

index d4db64c..b5a5384 100644 (file)
@@ -35,6 +35,7 @@
        <include>include/libs</include>
        <include>include/drivers</include>
        <include>include/subsys</include>
+       <include>include/ndk</include>
        <include>w32api/include</include>
        <include>w32api/include/crt</include>
        <include>w32api/include/ddk</include>
index efc5d10..386efb4 100644 (file)
@@ -11,7 +11,7 @@
 
 /* INCLUDES ******************************************************************/
 
-#include <ndk/i386/segment.h>
+#include <ndk/asm.h>
 
 /* FUNCTIONS *****************************************************************/
 
similarity index 77%
rename from reactos/include/ndk/sysguid.h
rename to reactos/include/libs/umpnpmgr/sysguid.h
index 25f55d0..bdc0287 100644 (file)
@@ -1,10 +1,9 @@
 /*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/sysguid.h
- * PURPOSE:         GUIDs not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS UserMode PnP
+ * FILE:            ntoskrnl/rtl/libsupp.c
+ * PURPOSE:         GUIDs shared between umpnpmgr and the Kernel PnP Manager
+ * PROGRAMMERS:     Eric Kohl
  */
 
 #ifndef _SYSGUID_H
@@ -14,16 +13,10 @@ DEFINE_GUID(GUID_DEVICE_STANDBY_VETOED,
   0x03B21C13, 0x18D6, 0x11D3, 0x97, 0xDB, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E);
 DEFINE_GUID(GUID_DEVICE_KERNEL_INITIATED_EJECT,
   0x14689B54, 0x0703, 0x11D3, 0x97, 0xD2, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E);
-DEFINE_GUID(GUID_DEVICE_THERMAL_ZONE,
-  0x4AFA3D51, 0x74A7, 0x11D0, 0xBE, 0x5E, 0x00, 0xA0, 0xC9, 0x06, 0x28, 0x57);
-DEFINE_GUID(GUID_DEVICE_SYS_BUTTON,
-  0x4AFA3D53, 0x74A7, 0x11D0, 0xBE, 0x5E, 0x00, 0xA0, 0xC9, 0x06, 0x28, 0x57);
 DEFINE_GUID(GUID_DEVICE_REMOVAL_VETOED,
   0x60DBD5FA, 0xDDD2, 0x11D2, 0x97, 0xB8, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E);
 DEFINE_GUID(GUID_DEVICE_HIBERNATE_VETOED,
   0x61173AD9, 0x194F, 0x11D3, 0x97, 0xDC, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E);
-DEFINE_GUID(GUID_DEVICE_BATTERY,
-  0x72631E54, 0x78A4, 0x11D0, 0xBC, 0xF7, 0x00, 0xAA, 0x00, 0xB7, 0xB3, 0x2A);
 DEFINE_GUID(GUID_DEVICE_SAFE_REMOVAL,
   0x8FBEF967, 0xD6C5, 0x11D2, 0x97, 0xB5, 0x00, 0xA0, 0xC9, 0x40, 0x52, 0x2E);
 
index c47934e..76e3b3d 100644 (file)
@@ -1,15 +1,27 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/arch/ketypes.h
- * PURPOSE:         Architecture-specific definitions for Kernel Types
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ketypes.h (ARCH)
+
+Abstract:
+
+    Portability file to choose the correct Architecture-specific file.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _ARCH_KETYPES_H
 #define _ARCH_KETYPES_H
 
-/* Shared structures needed by Arch-specific headers */
+//
+// FIXME: Find a solution to take these out of here!
+//
 typedef struct _KDPC_DATA
 {
     LIST_ENTRY DpcListHead;
@@ -24,8 +36,11 @@ typedef struct _PP_LOOKASIDE_LIST
     struct _GENERAL_LOOKASIDE *L;
 } PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
 
+//
+// Include the right file for this architecture.
+//
 #ifdef _M_IX86
-#include <ndk/i386/ketypes.h>
+#include <i386/ketypes.h>
 #else
 #error "Unknown processor"
 #endif
index 5eb7bba..632cbfb 100644 (file)
@@ -1,16 +1,29 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/arch/mmtypes.h
- * PURPOSE:         Architecture-specific definitions for Memory Manager Types
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    mmtypes.h (ARCH)
+
+Abstract:
+
+    Portability file to choose the correct Architecture-specific file.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _ARCH_MMTYPES_H
 #define _ARCH_MMTYPES_H
 
+//
+// Include the right file for this architecture.
+//
 #ifdef _M_IX86
-#include "./../i386/mmtypes.h"
+#include <i386/mmtypes.h>
 #else
 #error "Unknown processor"
 #endif
index 708ebac..218dd6e 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/asm.h
- * PURPOSE:         Defintions for Structures used in Assembly Code
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 07/19/05
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    asm.h
+
+Abstract:
+
+    ASM Offsets for dealing with de-referencing structures in registers.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _ASM_H
 #define _ASM_H
 
-/* DEPENDENCIES **************************************************************/
-
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
-
-/*
- * Definitions for the offsets of members in the KV86M_REGISTERS
- */
-#define KV86M_REGISTERS_EBP             0x0
-#define KV86M_REGISTERS_EDI             0x4
-#define KV86M_REGISTERS_ESI             0x8
-#define KV86M_REGISTERS_EDX             0xC
-#define KV86M_REGISTERS_ECX             0x10
-#define KV86M_REGISTERS_EBX             0x14
-#define KV86M_REGISTERS_EAX             0x18
-#define KV86M_REGISTERS_DS              0x1C
-#define KV86M_REGISTERS_ES              0x20
-#define KV86M_REGISTERS_FS              0x24
-#define KV86M_REGISTERS_GS              0x28
-#define KV86M_REGISTERS_EIP             0x2C
-#define KV86M_REGISTERS_CS              0x30
-#define KV86M_REGISTERS_EFLAGS          0x34
-#define KV86M_REGISTERS_ESP             0x38
-#define KV86M_REGISTERS_SS              0x3C
-
-#define TF_SAVED_EXCEPTION_STACK        0x8C
-#define TF_REGS                         0x90
-#define TF_ORIG_EBP                     0x94
-
-/* TSS Offsets */
-#define KTSS_ESP0                       0x4
-#define KTSS_CR3                        0x1C
-#define KTSS_EFLAGS                     0x24
-#define KTSS_IOMAPBASE                  0x66
-
-/*
- * Defines for accessing KPCR and KTHREAD structure members
- */
-#define KTHREAD_DEBUG_ACTIVE            0x03
-#define KTHREAD_INITIAL_STACK           0x18
-#define KTHREAD_STACK_LIMIT             0x1C
-#define KTHREAD_TEB                     0x74
-#define KTHREAD_KERNEL_STACK            0x20
-#define KTHREAD_NPX_STATE               0x4D
-#define KTHREAD_STATE                   0x4C
-#define KTHREAD_ALERTED                 0x5E
-#define KTHREAD_APCSTATE_PROCESS        0x28 + 0x10
-#define KTHREAD_PENDING_USER_APC        0x28 + 0x16
-#define KTHREAD_PENDING_KERNEL_APC      0x28 + 0x15
-#define KTHREAD_CONTEXT_SWITCHES        0x48
-#define KTHREAD_WAIT_IRQL               0x4E
-#define KTHREAD_SERVICE_TABLE           0x118
-#define KTHREAD_PREVIOUS_MODE           0xD7
-#define KTHREAD_TRAP_FRAME              0x110
-#define KTHREAD_CALLBACK_STACK          0x114
-
-#define KPROCESS_DIRECTORY_TABLE_BASE   0x18
-#define KPROCESS_LDT_DESCRIPTOR0        0x20
-#define KPROCESS_LDT_DESCRIPTOR1        0x24
-#define KPROCESS_IOPM_OFFSET            0x30
-
-#define KPCR_EXCEPTION_LIST             0x0
-#define KPCR_INITIAL_STACK              0x4
-#define KPCR_STACK_LIMIT                0x8
-#define KPCR_TEB                        0x18
-#define KPCR_SELF                       0x1C
-#define KPCR_GDT                        0x3C
-#define KPCR_TSS                        0x40
-#define KPCR_CURRENT_THREAD             0x124
-#define KPCR_NPX_THREAD                 0x2F4
-
-/* FPU Save Area Offsets */
-#define FN_CONTROL_WORD                 0x0
-#define FN_STATUS_WORD                  0x4
-#define FN_TAG_WORD                     0x8
-#define FN_DATA_SELECTOR                0x18
-#define FN_CR0_NPX_STATE                0x20C
-#define SIZEOF_FX_SAVE_AREA             528
-
-/* Trap Frame Offsets */
-#define KTRAP_FRAME_DEBUGEBP            0x0
-#define KTRAP_FRAME_DEBUGEIP            0x4
-#define KTRAP_FRAME_DEBUGARGMARK        0x8
-#define KTRAP_FRAME_DEBUGPOINTER        0xC
-#define KTRAP_FRAME_TEMPCS              0x10
-#define KTRAP_FRAME_TEMPESP             0x14
-#define KTRAP_FRAME_DR0                 0x18
-#define KTRAP_FRAME_DR1                 0x1C
-#define KTRAP_FRAME_DR2                 0x20
-#define KTRAP_FRAME_DR3                 0x24
-#define KTRAP_FRAME_DR6                 0x28
-#define KTRAP_FRAME_DR7                 0x2C
-#define KTRAP_FRAME_GS                  0x30
-#define KTRAP_FRAME_RESERVED1           0x32
-#define KTRAP_FRAME_ES                  0x34
-#define KTRAP_FRAME_RESERVED2           0x36
-#define KTRAP_FRAME_DS                  0x38
-#define KTRAP_FRAME_RESERVED3           0x3A
-#define KTRAP_FRAME_EDX                 0x3C
-#define KTRAP_FRAME_ECX                 0x40
-#define KTRAP_FRAME_EAX                 0x44
-#define KTRAP_FRAME_PREVIOUS_MODE       0x48
-#define KTRAP_FRAME_EXCEPTION_LIST      0x4C
-#define KTRAP_FRAME_FS                  0x50
-#define KTRAP_FRAME_RESERVED4           0x52
-#define KTRAP_FRAME_EDI                 0x54
-#define KTRAP_FRAME_ESI                 0x58
-#define KTRAP_FRAME_EBX                 0x5C
-#define KTRAP_FRAME_EBP                 0x60
-#define KTRAP_FRAME_ERROR_CODE          0x64
-#define KTRAP_FRAME_EIP                 0x68
-#define KTRAP_FRAME_CS                  0x6C
-#define KTRAP_FRAME_EFLAGS              0x70
-#define KTRAP_FRAME_ESP                 0x74
-#define KTRAP_FRAME_SS                  0x78
-#define KTRAP_FRAME_RESERVED5           0x7A
-#define KTRAP_FRAME_V86_ES              0x7C
-#define KTRAP_FRAME_RESERVED6           0x7E
-#define KTRAP_FRAME_V86_DS              0x80
-#define KTRAP_FRAME_RESERVED7           0x82
-#define KTRAP_FRAME_V86_FS              0x84
-#define KTRAP_FRAME_RESERVED8           0x86
-#define KTRAP_FRAME_V86_GS              0x88
-#define KTRAP_FRAME_RESERVED9           0x8A
-#define KTRAP_FRAME_SIZE                0x8C
-
-/* User Shared Data */
-#define KERNEL_USER_SHARED_DATA         0x7FFE0000
-#define KUSER_SHARED_PROCESSOR_FEATURES KERNEL_USER_SHARED_DATA + 0x274
-#define KUSER_SHARED_SYSCALL            KERNEL_USER_SHARED_DATA + 0x300
-#define KUSER_SHARED_SYSCALL_RET        KERNEL_USER_SHARED_DATA + 0x304
-#define PROCESSOR_FEATURE_FXSR          KUSER_SHARED_PROCESSOR_FEATURES + 0x4
-
-/* CONTEXT CONSTANTS */
-#define CONTEXT_FLAGS                   0x0
-#define CONTEXT_DR6                     0x14
-#define CONTEXT_FLOAT_SAVE              0x1C
-#define CONTEXT_SEGGS                   0x8C
-#define CONTEXT_SEGFS                   0x90
-#define CONTEXT_SEGES                   0x94
-#define CONTEXT_SEGDS                   0x98
-#define CONTEXT_EDI                     0x9C
-#define CONTEXT_ESI                     0xA0
-#define CONTEXT_EBX                     0xA4
-#define CONTEXT_EDX                     0xA8
-#define CONTEXT_ECX                     0xAC
-#define CONTEXT_EAX                     0xB0
-#define CONTEXT_EBP                     0xB4
-#define CONTEXT_EIP                     0xB8
-#define CONTEXT_SEGCS                   0xBC
-#define CONTEXT_EFLAGS                  0xC0
-#define CONTEXT_ESP                     0xC4
-#define CONTEXT_SEGSS                   0xC8
-#define CONTEXT_FLOAT_SAVE_CONTROL_WORD CONTEXT_FLOAT_SAVE + FN_CONTROL_WORD
-#define CONTEXT_FLOAT_SAVE_STATUS_WORD  CONTEXT_FLOAT_SAVE + FN_STATUS_WORD
-#define CONTEXT_FLOAT_SAVE_TAG_WORD     CONTEXT_FLOAT_SAVE + FN_TAG_WORD
-
-/* EXCEPTION_RECORD Constants */
-#define EXCEPTION_RECORD_EXCEPTION_CODE     0x0
-#define EXCEPTION_RECORD_EXCEPTION_FLAGS    0x4
-#define EXCEPTION_RECORD_EXCEPTION_RECORD   0x8
-#define EXCEPTION_RECORD_EXCEPTION_ADDRESS  0xC
-#define EXCEPTION_RECORD_NUMBER_PARAMETERS  0x10
-#define SIZEOF_EXCEPTION_RECORD             0x14
-
-/* TEB CONSTANTS */
-#define TEB_EXCEPTION_LIST              0x0
-#define TEB_STACK_BASE                  0x4
-#define TEB_STACK_LIMIT                 0x8
-#define TEB_FIBER_DATA                  0x10
-#define TEB_PEB                         0x30
-#define TEB_EXCEPTION_CODE              0x1A4
-#define TEB_ACTIVATION_CONTEXT_STACK_POINTER 0x1A8
-#define TEB_DEALLOCATION_STACK          0xE0C
-#define TEB_GUARANTEED_STACK_BYTES      0xF78
-#define TEB_FLS_DATA                    0xFB4
-
-/* PEB CONSTANTS */
-#define PEB_KERNEL_CALLBACK_TABLE       0x2C
-
-/* FIBER CONSTANTS */
-#define FIBER_PARAMETER                 0x0
-#define FIBER_EXCEPTION_LIST            0x4
-#define FIBER_STACK_BASE                0x8
-#define FIBER_STACK_LIMIT               0xC
-#define FIBER_DEALLOCATION_STACK        0x10
-#define FIBER_CONTEXT                   0x14
-#define FIBER_GUARANTEED_STACK_BYTES    0x2E0
-#define FIBER_FLS_DATA                  0x2E4
-#define FIBER_ACTIVATION_CONTEXT_STACK  0x2E8
-#define FIBER_CONTEXT_FLAGS             FIBER_CONTEXT + CONTEXT_FLAGS
-#define FIBER_CONTEXT_EAX               FIBER_CONTEXT + CONTEXT_EAX
-#define FIBER_CONTEXT_EBX               FIBER_CONTEXT + CONTEXT_EBX
-#define FIBER_CONTEXT_ECX               FIBER_CONTEXT + CONTEXT_ECX
-#define FIBER_CONTEXT_EDX               FIBER_CONTEXT + CONTEXT_EDX
-#define FIBER_CONTEXT_ESI               FIBER_CONTEXT + CONTEXT_ESI
-#define FIBER_CONTEXT_EDI               FIBER_CONTEXT + CONTEXT_EDI
-#define FIBER_CONTEXT_EBP               FIBER_CONTEXT + CONTEXT_EBP
-#define FIBER_CONTEXT_ESP               FIBER_CONTEXT + CONTEXT_ESP
-#define FIBER_CONTEXT_DR6               FIBER_CONTEXT + CONTEXT_DR6
-#define FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD    FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_STATUS_WORD 
+//
+// FIXME: Use real names.
+//
+#define KERNEL_CS                               (0x8)
+#define KERNEL_DS                               (0x10)
+#define USER_CS                                 (0x18 + 0x3)
+#define USER_DS                                 (0x20 + 0x3)
+#define TSS_SELECTOR                            (0x28)
+#define PCR_SELECTOR                            (0x30)
+#define TEB_SELECTOR                            (0x38 + 0x3)
+#define LDT_SELECTOR                            (0x48)
+#define TRAP_TSS_SELECTOR                       (0x50)
+
+//
+// KV86M_REGISTERS Offsets
+//
+#define KV86M_REGISTERS_EBP                     0x0
+#define KV86M_REGISTERS_EDI                     0x4
+#define KV86M_REGISTERS_ESI                     0x8
+#define KV86M_REGISTERS_EDX                     0xC
+#define KV86M_REGISTERS_ECX                     0x10
+#define KV86M_REGISTERS_EBX                     0x14
+#define KV86M_REGISTERS_EAX                     0x18
+#define KV86M_REGISTERS_DS                      0x1C
+#define KV86M_REGISTERS_ES                      0x20
+#define KV86M_REGISTERS_FS                      0x24
+#define KV86M_REGISTERS_GS                      0x28
+#define KV86M_REGISTERS_EIP                     0x2C
+#define KV86M_REGISTERS_CS                      0x30
+#define KV86M_REGISTERS_EFLAGS                  0x34
+#define KV86M_REGISTERS_ESP                     0x38
+#define KV86M_REGISTERS_SS                      0x3C
+#define TF_SAVED_EXCEPTION_STACK                0x8C
+#define TF_REGS                                 0x90
+#define TF_ORIG_EBP                             0x94
+
+//
+// TSS Offsets
+//
+#define KTSS_ESP0                               0x4
+#define KTSS_CR3                                0x1C
+#define KTSS_EFLAGS                             0x24
+#define KTSS_IOMAPBASE                          0x66
+
+//
+// KTHREAD Offsets
+//
+#define KTHREAD_DEBUG_ACTIVE                    0x03
+#define KTHREAD_INITIAL_STACK                   0x18
+#define KTHREAD_STACK_LIMIT                     0x1C
+#define KTHREAD_TEB                             0x74
+#define KTHREAD_KERNEL_STACK                    0x20
+#define KTHREAD_NPX_STATE                       0x4D
+#define KTHREAD_STATE                           0x4C
+#define KTHREAD_ALERTED                         0x5E
+#define KTHREAD_APCSTATE_PROCESS                0x28 + 0x10
+#define KTHREAD_PENDING_USER_APC                0x28 + 0x16
+#define KTHREAD_PENDING_KERNEL_APC              0x28 + 0x15
+#define KTHREAD_CONTEXT_SWITCHES                0x48
+#define KTHREAD_WAIT_IRQL                       0x4E
+#define KTHREAD_SERVICE_TABLE                   0x118
+#define KTHREAD_PREVIOUS_MODE                   0xD7
+#define KTHREAD_TRAP_FRAME                      0x110
+#define KTHREAD_CALLBACK_STACK                  0x114
+
+//
+// KPROCESS Offsets
+//
+#define KPROCESS_DIRECTORY_TABLE_BASE           0x18
+#define KPROCESS_LDT_DESCRIPTOR0                0x20
+#define KPROCESS_LDT_DESCRIPTOR1                0x24
+#define KPROCESS_IOPM_OFFSET                    0x30
+
+//
+// KPCR Offsets
+//
+#define KPCR_EXCEPTION_LIST                     0x0
+#define KPCR_INITIAL_STACK                      0x4
+#define KPCR_STACK_LIMIT                        0x8
+#define KPCR_TEB                                0x18
+#define KPCR_SELF                               0x1C
+#define KPCR_GDT                                0x3C
+#define KPCR_TSS                                0x40
+#define KPCR_CURRENT_THREAD                     0x124
+#define KPCR_NPX_THREAD                         0x2F4
+
+//
+// FPU Save Area Offsets
+//
+#define FN_CONTROL_WORD                         0x0
+#define FN_STATUS_WORD                          0x4
+#define FN_TAG_WORD                             0x8
+#define FN_DATA_SELECTOR                        0x18
+#define FN_CR0_NPX_STATE                        0x20C
+#define SIZEOF_FX_SAVE_AREA                     528
+
+//
+// Trap Frame Offsets
+//
+#define KTRAP_FRAME_DEBUGEBP                    0x0
+#define KTRAP_FRAME_DEBUGEIP                    0x4
+#define KTRAP_FRAME_DEBUGARGMARK                0x8
+#define KTRAP_FRAME_DEBUGPOINTER                0xC
+#define KTRAP_FRAME_TEMPCS                      0x10
+#define KTRAP_FRAME_TEMPESP                     0x14
+#define KTRAP_FRAME_DR0                         0x18
+#define KTRAP_FRAME_DR1                         0x1C
+#define KTRAP_FRAME_DR2                         0x20
+#define KTRAP_FRAME_DR3                         0x24
+#define KTRAP_FRAME_DR6                         0x28
+#define KTRAP_FRAME_DR7                         0x2C
+#define KTRAP_FRAME_GS                          0x30
+#define KTRAP_FRAME_RESERVED1                   0x32
+#define KTRAP_FRAME_ES                          0x34
+#define KTRAP_FRAME_RESERVED2                   0x36
+#define KTRAP_FRAME_DS                          0x38
+#define KTRAP_FRAME_RESERVED3                   0x3A
+#define KTRAP_FRAME_EDX                         0x3C
+#define KTRAP_FRAME_ECX                         0x40
+#define KTRAP_FRAME_EAX                         0x44
+#define KTRAP_FRAME_PREVIOUS_MODE               0x48
+#define KTRAP_FRAME_EXCEPTION_LIST              0x4C
+#define KTRAP_FRAME_FS                          0x50
+#define KTRAP_FRAME_RESERVED4                   0x52
+#define KTRAP_FRAME_EDI                         0x54
+#define KTRAP_FRAME_ESI                         0x58
+#define KTRAP_FRAME_EBX                         0x5C
+#define KTRAP_FRAME_EBP                         0x60
+#define KTRAP_FRAME_ERROR_CODE                  0x64
+#define KTRAP_FRAME_EIP                         0x68
+#define KTRAP_FRAME_CS                          0x6C
+#define KTRAP_FRAME_EFLAGS                      0x70
+#define KTRAP_FRAME_ESP                         0x74
+#define KTRAP_FRAME_SS                          0x78
+#define KTRAP_FRAME_RESERVED5                   0x7A
+#define KTRAP_FRAME_V86_ES                      0x7C
+#define KTRAP_FRAME_RESERVED6                   0x7E
+#define KTRAP_FRAME_V86_DS                      0x80
+#define KTRAP_FRAME_RESERVED7                   0x82
+#define KTRAP_FRAME_V86_FS                      0x84
+#define KTRAP_FRAME_RESERVED8                   0x86
+#define KTRAP_FRAME_V86_GS                      0x88
+#define KTRAP_FRAME_RESERVED9                   0x8A
+#define KTRAP_FRAME_SIZE                        0x8C
+
+//
+// KUSER_SHARED_DATA Offsets
+//
+#define KERNEL_USER_SHARED_DATA                 0x7FFE0000
+#define KUSER_SHARED_PROCESSOR_FEATURES         KERNEL_USER_SHARED_DATA + 0x274
+#define KUSER_SHARED_SYSCALL                    KERNEL_USER_SHARED_DATA + 0x300
+#define KUSER_SHARED_SYSCALL_RET                KERNEL_USER_SHARED_DATA + 0x304
+#define PROCESSOR_FEATURE_FXSR                  KUSER_SHARED_PROCESSOR_FEATURES + 0x4
+
+
+//
+// CONTEXT Offsets
+//
+#define CONTEXT_FLAGS                           0x0
+#define CONTEXT_DR6                             0x14
+#define CONTEXT_FLOAT_SAVE                      0x1C
+#define CONTEXT_SEGGS                           0x8C
+#define CONTEXT_SEGFS                           0x90
+#define CONTEXT_SEGES                           0x94
+#define CONTEXT_SEGDS                           0x98
+#define CONTEXT_EDI                             0x9C
+#define CONTEXT_ESI                             0xA0
+#define CONTEXT_EBX                             0xA4
+#define CONTEXT_EDX                             0xA8
+#define CONTEXT_ECX                             0xAC
+#define CONTEXT_EAX                             0xB0
+#define CONTEXT_EBP                             0xB4
+#define CONTEXT_EIP                             0xB8
+#define CONTEXT_SEGCS                           0xBC
+#define CONTEXT_EFLAGS                          0xC0
+#define CONTEXT_ESP                             0xC4
+#define CONTEXT_SEGSS                           0xC8
+#define CONTEXT_FLOAT_SAVE_CONTROL_WORD         CONTEXT_FLOAT_SAVE + FN_CONTROL_WORD
+#define CONTEXT_FLOAT_SAVE_STATUS_WORD          CONTEXT_FLOAT_SAVE + FN_STATUS_WORD
+#define CONTEXT_FLOAT_SAVE_TAG_WORD             CONTEXT_FLOAT_SAVE + FN_TAG_WORD
+
+//
+// EXCEPTION_RECORD Offsets
+//
+#define EXCEPTION_RECORD_EXCEPTION_CODE         0x0
+#define EXCEPTION_RECORD_EXCEPTION_FLAGS        0x4
+#define EXCEPTION_RECORD_EXCEPTION_RECORD       0x8
+#define EXCEPTION_RECORD_EXCEPTION_ADDRESS      0xC
+#define EXCEPTION_RECORD_NUMBER_PARAMETERS      0x10
+#define SIZEOF_EXCEPTION_RECORD                 0x14
+
+//
+// TEB Offsets
+//
+#define TEB_EXCEPTION_LIST                      0x0
+#define TEB_STACK_BASE                          0x4
+#define TEB_STACK_LIMIT                         0x8
+#define TEB_FIBER_DATA                          0x10
+#define TEB_PEB                                 0x30
+#define TEB_EXCEPTION_CODE                      0x1A4
+#define TEB_ACTIVATION_CONTEXT_STACK_POINTER    0x1A8
+#define TEB_DEALLOCATION_STACK                  0xE0C
+#define TEB_GUARANTEED_STACK_BYTES              0xF78
+#define TEB_FLS_DATA                            0xFB4
+
+//
+// PEB Offsets
+//
+#define PEB_KERNEL_CALLBACK_TABLE               0x2C
+
+//
+// FIBER Offsets
+//
+#define FIBER_PARAMETER                         0x0
+#define FIBER_EXCEPTION_LIST                    0x4
+#define FIBER_STACK_BASE                        0x8
+#define FIBER_STACK_LIMIT                       0xC
+#define FIBER_DEALLOCATION_STACK                0x10
+#define FIBER_CONTEXT                           0x14
+#define FIBER_GUARANTEED_STACK_BYTES            0x2E0
+#define FIBER_FLS_DATA                          0x2E4
+#define FIBER_ACTIVATION_CONTEXT_STACK          0x2E8
+#define FIBER_CONTEXT_FLAGS                     FIBER_CONTEXT + CONTEXT_FLAGS
+#define FIBER_CONTEXT_EAX                       FIBER_CONTEXT + CONTEXT_EAX
+#define FIBER_CONTEXT_EBX                       FIBER_CONTEXT + CONTEXT_EBX
+#define FIBER_CONTEXT_ECX                       FIBER_CONTEXT + CONTEXT_ECX
+#define FIBER_CONTEXT_EDX                       FIBER_CONTEXT + CONTEXT_EDX
+#define FIBER_CONTEXT_ESI                       FIBER_CONTEXT + CONTEXT_ESI
+#define FIBER_CONTEXT_EDI                       FIBER_CONTEXT + CONTEXT_EDI
+#define FIBER_CONTEXT_EBP                       FIBER_CONTEXT + CONTEXT_EBP
+#define FIBER_CONTEXT_ESP                       FIBER_CONTEXT + CONTEXT_ESP
+#define FIBER_CONTEXT_DR6                       FIBER_CONTEXT + CONTEXT_DR6
+#define FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD    FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_STATUS_WORD
 #define FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD   FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_CONTROL_WORD
 #define FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD       FIBER_CONTEXT + CONTEXT_FLOAT_SAVE_TAG_WORD
-#endif
+
+#endif // !_ASM_H
 
index 5fc06bd..c2a21bd 100644 (file)
@@ -1,24 +1,33 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/cctypes.h
- * PURPOSE:         Definitions for exported Cache Manager Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    cctypes.h
+
+Abstract:
+
+    Type definitions for the Cache Controller.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #ifndef _CCTYPES_H
 #define _CCTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* EXPORTED DATA *************************************************************/
+//
+// Kernel Exported CcData
+//
 extern ULONG NTSYSAPI CcFastReadNotPossible;
 extern ULONG NTSYSAPI CcFastReadWait;
 
-/* ENUMERATIONS **************************************************************/
-
-/* TYPES *********************************************************************/
-
-#endif
+#endif // _CCTYPES_H
 
index 8a4a721..2c6cef5 100644 (file)
-/*\r
- * PROJECT:         ReactOS Native Headers\r
- * FILE:            include/ndk/cmtypes.h\r
- * PURPOSE:         Definitions for Config Manager Types not defined in DDK/IFS\r
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)\r
- * UPDATE HISTORY:\r
- *                  Created 06/10/04\r
- */\r
+/*++ NDK Version: 0095\r
+\r
+Copyright (c) Alex Ionescu.  All rights reserved.\r
+\r
+Header Name:\r
+\r
+    cmtypes.h\r
+\r
+Abstract:\r
+\r
+    Type definitions for the Configuration Manager.\r
+\r
+Author:\r
+\r
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004\r
+\r
+--*/\r
 \r
 #ifndef _CMTYPES_H\r
 #define _CMTYPES_H\r
 \r
-/* DEPENDENCIES **************************************************************/\r
+//\r
+// Dependencies\r
+//\r
 #include <cfg.h>\r
 #include "iotypes.h"\r
 \r
-/* EXPORTED DATA *************************************************************/\r
-\r
-/* CONSTANTS *****************************************************************/\r
 #define MAX_BUS_NAME 24\r
 \r
-/* PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relation values */\r
-#define PNP_GET_PARENT_DEVICE  1\r
-#define PNP_GET_CHILD_DEVICE   2\r
-#define PNP_GET_SIBLING_DEVICE 3\r
+//\r
+// PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations\r
+//\r
+#define PNP_GET_PARENT_DEVICE           1\r
+#define PNP_GET_CHILD_DEVICE            2\r
+#define PNP_GET_SIBLING_DEVICE          3\r
+\r
+//\r
+// PLUGPLAY_CONTROL_STATUS_DATA Operations\r
+//\r
+#define PNP_GET_DEVICE_STATUS           0\r
+#define PNP_SET_DEVICE_STATUS           1\r
+#define PNP_CLEAR_DEVICE_STATUS         2\r
+\r
+//\r
+// Resource Type\r
+//\r
+#define CmResourceTypeNull                      0\r
+#define CmResourceTypePort                      1\r
+#define CmResourceTypeInterrupt                 2\r
+#define CmResourceTypeMemory                    3\r
+#define CmResourceTypeDma                       4\r
+#define CmResourceTypeDeviceSpecific            5\r
+#define CmResourceTypeBusNumber                 6\r
+#define CmResourceTypeMaximum                   7\r
+#define CmResourceTypeNonArbitrated             128\r
+#define CmResourceTypeConfigData                128\r
+#define CmResourceTypeDevicePrivate             129\r
+#define CmResourceTypePcCardConfig              130\r
+#define CmResourceTypeMfCardConfig              131\r
+\r
+#ifdef NTOS_MODE_USER\r
+\r
+//\r
+// Resource Descriptor Share Dispositions\r
+//\r
+typedef enum _CM_SHARE_DISPOSITION\r
+{\r
+    CmResourceShareUndetermined,\r
+    CmResourceShareDeviceExclusive,\r
+    CmResourceShareDriverExclusive,\r
+    CmResourceShareShared\r
+} CM_SHARE_DISPOSITION;\r
 \r
-/* PLUGPLAY_CONTROL_STATUS_DATA.Operation values */\r
-#define PNP_GET_DEVICE_STATUS    0\r
-#define PNP_SET_DEVICE_STATUS    1\r
-#define PNP_CLEAR_DEVICE_STATUS  2\r
+#endif\r
 \r
-/* ENUMERATIONS **************************************************************/\r
+//\r
+// Port Resource Descriptor Flags\r
+//\r
+#define CM_RESOURCE_PORT_MEMORY                 0x0000\r
+#define CM_RESOURCE_PORT_IO                     0x0001\r
+#define CM_RESOURCE_PORT_10_BIT_DECODE          0x0004\r
+#define CM_RESOURCE_PORT_12_BIT_DECODE          0x0008\r
+#define CM_RESOURCE_PORT_16_BIT_DECODE          0x0010\r
+#define CM_RESOURCE_PORT_POSITIVE_DECODE        0x0020\r
+#define CM_RESOURCE_PORT_PASSIVE_DECODE         0x0040\r
+#define CM_RESOURCE_PORT_WINDOW_DECODE          0x0080\r
+\r
+//\r
+// Interrupt Resource Descriptor Flags\r
+//\r
+#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE   0x0000\r
+#define CM_RESOURCE_INTERRUPT_LATCHED           0x0001\r
+\r
+//\r
+// Memory Resource Descriptor Flags\r
+//\r
+#define CM_RESOURCE_MEMORY_READ_WRITE     0x0000\r
+#define CM_RESOURCE_MEMORY_READ_ONLY      0x0001\r
+#define CM_RESOURCE_MEMORY_WRITE_ONLY     0x0002\r
+#define CM_RESOURCE_MEMORY_PREFETCHABLE   0x0004\r
+#define CM_RESOURCE_MEMORY_COMBINEDWRITE  0x0008\r
+#define CM_RESOURCE_MEMORY_24             0x0010\r
+#define CM_RESOURCE_MEMORY_CACHEABLE      0x0020\r
+\r
+//\r
+// DMA Resource Descriptor Flags\r
+//\r
+#define CM_RESOURCE_DMA_8                 0x0000\r
+#define CM_RESOURCE_DMA_16                0x0001\r
+#define CM_RESOURCE_DMA_32                0x0002\r
+#define CM_RESOURCE_DMA_8_AND_16          0x0004\r
+#define CM_RESOURCE_DMA_BUS_MASTER        0x0008\r
+#define CM_RESOURCE_DMA_TYPE_A            0x0010\r
+#define CM_RESOURCE_DMA_TYPE_B            0x0020\r
+#define CM_RESOURCE_DMA_TYPE_F            0x0040\r
 \r
 #ifdef NTOS_MODE_USER\r
+\r
+//\r
+// Information Classes for NtQueryKey\r
+//\r
 typedef enum _KEY_INFORMATION_CLASS\r
 {\r
     KeyBasicInformation,\r
@@ -57,8 +144,12 @@ typedef enum _KEY_SET_INFORMATION_CLASS
     KeyUserFlagsInformation,\r
     MaxKeySetInfoClass\r
 } KEY_SET_INFORMATION_CLASS;\r
+\r
 #endif\r
 \r
+//\r
+// Plag and Play Classes\r
+//\r
 typedef enum _PLUGPLAY_CONTROL_CLASS\r
 {\r
     PlugPlayControlUserResponse = 0x07,\r
@@ -76,12 +167,18 @@ typedef enum _PLUGPLAY_BUS_CLASS
     MaxPlugPlayBusClass\r
 } PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;\r
 \r
+//\r
+// Plag and Play Bus Types\r
+//\r
 typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE\r
 {\r
     Root,\r
     MaxPlugPlayVirtualBusType\r
 } PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;\r
 \r
+//\r
+// Plag and Play Event Categories\r
+//\r
 typedef enum _PLUGPLAY_EVENT_CATEGORY\r
 {\r
     HardwareProfileChangeEvent,\r
@@ -95,9 +192,12 @@ typedef enum _PLUGPLAY_EVENT_CATEGORY
     BlockedDriverEvent,\r
     MaxPlugEventCategory\r
 } PLUGPLAY_EVENT_CATEGORY;\r
-/* TYPES *********************************************************************/\r
 \r
 #ifdef NTOS_MODE_USER\r
+\r
+//\r
+// Information Structures for NtQueryKeyInformation\r
+//\r
 typedef struct _KEY_WRITE_TIME_INFORMATION\r
 {\r
     LARGE_INTEGER LastWriteTime;\r
@@ -177,6 +277,9 @@ typedef struct _KEY_BASIC_INFORMATION
 \r
 #endif\r
 \r
+//\r
+// Plug and Play Event Block\r
+//\r
 typedef struct _PLUGPLAY_EVENT_BLOCK\r
 {\r
     GUID EventGuid;\r
@@ -226,7 +329,11 @@ typedef struct _PLUGPLAY_EVENT_BLOCK
     };\r
 } PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;\r
 \r
-/* Class 0x0A */\r
+//\r
+// Plug and Play Control Classes\r
+//\r
+\r
+//Class 0x0A\r
 typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA\r
 {\r
     UNICODE_STRING DeviceInstance;\r
@@ -235,36 +342,39 @@ typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA
     ULONG BufferSize;\r
 } PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;\r
 \r
-/* Class 0x0C */\r
+// Class 0x0C\r
 typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA\r
 {\r
     UNICODE_STRING TargetDeviceInstance;\r
-    ULONG Relation; /* 1: Parent  2: Child  3: Sibling */\r
+    ULONG Relation;\r
     UNICODE_STRING RelatedDeviceInstance;\r
 } PLUGPLAY_CONTROL_RELATED_DEVICE_DATA, *PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;\r
 \r
-/* Class 0x0E */\r
+// Class 0x0E\r
 typedef struct _PLUGPLAY_CONTOL_STATUS_DATA\r
 {\r
     UNICODE_STRING DeviceInstance;\r
-    ULONG Operation;       /* 0: Get  1: Set  2: Clear */\r
-    ULONG DeviceStatus;    /* DN_       see cfg.h */\r
-    ULONG DeviceProblem;   /* CM_PROB_  see cfg.h */\r
+    ULONG Operation;\r
+    ULONG DeviceStatus;\r
+    ULONG DeviceProblem;\r
 } PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;\r
 \r
-/* Class 0x0F */\r
+// Class 0x0F\r
 typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA\r
 {\r
     UNICODE_STRING DeviceInstance;\r
     ULONG Depth;\r
 } PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;\r
 \r
-/* Class 0x14 */\r
+// Class 0x14\r
 typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA\r
 {\r
    UNICODE_STRING DeviceInstance;\r
 } PLUGPLAY_CONTROL_RESET_DEVICE_DATA, *PPLUGPLAY_CONTROL_RESET_DEVICE_DATA;\r
 \r
+//\r
+// Plug and Play Bus Type Definition\r
+//\r
 typedef struct _PLUGPLAY_BUS_TYPE\r
 {\r
     PLUGPLAY_BUS_CLASS BusClass;\r
@@ -275,6 +385,9 @@ typedef struct _PLUGPLAY_BUS_TYPE
     };\r
 } PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;\r
 \r
+//\r
+// Plug and Play Bus Instance Definition\r
+//\r
 typedef struct _PLUGPLAY_BUS_INSTANCE\r
 {\r
     PLUGPLAY_BUS_TYPE BusType;\r
@@ -284,149 +397,110 @@ typedef struct _PLUGPLAY_BUS_INSTANCE
 \r
 #ifdef NTOS_MODE_USER\r
 \r
+//\r
+// Partial Resource Descriptor and List for Hardware\r
+//\r
 #include <pshpack1.h>\r
-typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {\r
-  UCHAR Type;\r
-  UCHAR ShareDisposition;\r
-  USHORT Flags;\r
-  union {\r
-    struct {\r
-      PHYSICAL_ADDRESS Start;\r
-      ULONG Length;\r
-    } Generic;\r
-    struct {\r
-      PHYSICAL_ADDRESS Start;\r
-      ULONG Length;\r
-    } Port;\r
-    struct {\r
-      ULONG Level;\r
-      ULONG Vector;\r
-      ULONG Affinity;\r
-    } Interrupt;\r
-    struct {\r
-      PHYSICAL_ADDRESS Start;\r
-      ULONG Length;\r
-    } Memory;\r
-    struct {\r
-      ULONG Channel;\r
-      ULONG Port;\r
-      ULONG Reserved1;\r
-    } Dma;\r
-    struct {\r
-      ULONG Data[3];\r
-    } DevicePrivate;\r
-    struct {\r
-      ULONG Start;\r
-      ULONG Length;\r
-      ULONG Reserved;\r
-    } BusNumber;\r
-    struct {\r
-      ULONG DataSize;\r
-      ULONG Reserved1;\r
-      ULONG Reserved2;\r
-    } DeviceSpecificData;\r
-  } u;\r
+typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR\r
+{\r
+    UCHAR Type;\r
+    UCHAR ShareDisposition;\r
+    USHORT Flags;\r
+    union\r
+    {\r
+        struct\r
+        {\r
+            PHYSICAL_ADDRESS Start;\r
+            ULONG Length;\r
+        } Generic;\r
+        struct\r
+        {\r
+            PHYSICAL_ADDRESS Start;\r
+            ULONG Length;\r
+        } Port;\r
+        struct\r
+        {\r
+            ULONG Level;\r
+            ULONG Vector;\r
+            ULONG Affinity;\r
+        } Interrupt;\r
+        struct\r
+        {\r
+            PHYSICAL_ADDRESS Start;\r
+            ULONG Length;\r
+        } Memory;\r
+        struct\r
+        {\r
+            ULONG Channel;\r
+            ULONG Port;\r
+            ULONG Reserved1;\r
+        } Dma;\r
+        struct\r
+        {\r
+          ULONG Data[3];\r
+        } DevicePrivate;\r
+        struct\r
+        {\r
+            ULONG Start;\r
+            ULONG Length;\r
+            ULONG Reserved;\r
+        } BusNumber;\r
+        struct\r
+        {\r
+            ULONG DataSize;\r
+            ULONG Reserved1;\r
+            ULONG Reserved2;\r
+        } DeviceSpecificData;\r
+    } u;\r
 } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR;\r
 \r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Type */\r
-\r
-#define CmResourceTypeNull                0\r
-#define CmResourceTypePort                1\r
-#define CmResourceTypeInterrupt           2\r
-#define CmResourceTypeMemory              3\r
-#define CmResourceTypeDma                 4\r
-#define CmResourceTypeDeviceSpecific      5\r
-#define CmResourceTypeBusNumber           6\r
-#define CmResourceTypeMaximum             7\r
-#define CmResourceTypeNonArbitrated     128\r
-#define CmResourceTypeConfigData        128\r
-#define CmResourceTypeDevicePrivate     129\r
-#define CmResourceTypePcCardConfig      130\r
-#define CmResourceTypeMfCardConfig      131\r
-\r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.ShareDisposition */\r
-\r
-typedef enum _CM_SHARE_DISPOSITION {\r
-  CmResourceShareUndetermined,\r
-  CmResourceShareDeviceExclusive,\r
-  CmResourceShareDriverExclusive,\r
-  CmResourceShareShared\r
-} CM_SHARE_DISPOSITION;\r
-\r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypePort */\r
-\r
-#define CM_RESOURCE_PORT_MEMORY           0x0000\r
-#define CM_RESOURCE_PORT_IO               0x0001\r
-#define CM_RESOURCE_PORT_10_BIT_DECODE    0x0004\r
-#define CM_RESOURCE_PORT_12_BIT_DECODE    0x0008\r
-#define CM_RESOURCE_PORT_16_BIT_DECODE    0x0010\r
-#define CM_RESOURCE_PORT_POSITIVE_DECODE  0x0020\r
-#define CM_RESOURCE_PORT_PASSIVE_DECODE   0x0040\r
-#define CM_RESOURCE_PORT_WINDOW_DECODE    0x0080\r
-\r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeInterrupt */\r
-\r
-#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000\r
-#define CM_RESOURCE_INTERRUPT_LATCHED         0x0001\r
-\r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeMemory */\r
-\r
-#define CM_RESOURCE_MEMORY_READ_WRITE     0x0000\r
-#define CM_RESOURCE_MEMORY_READ_ONLY      0x0001\r
-#define CM_RESOURCE_MEMORY_WRITE_ONLY     0x0002\r
-#define CM_RESOURCE_MEMORY_PREFETCHABLE   0x0004\r
-#define CM_RESOURCE_MEMORY_COMBINEDWRITE  0x0008\r
-#define CM_RESOURCE_MEMORY_24             0x0010\r
-#define CM_RESOURCE_MEMORY_CACHEABLE      0x0020\r
-\r
-/* CM_PARTIAL_RESOURCE_DESCRIPTOR.Flags if Type = CmResourceTypeDma */\r
-\r
-#define CM_RESOURCE_DMA_8                 0x0000\r
-#define CM_RESOURCE_DMA_16                0x0001\r
-#define CM_RESOURCE_DMA_32                0x0002\r
-#define CM_RESOURCE_DMA_8_AND_16          0x0004\r
-#define CM_RESOURCE_DMA_BUS_MASTER        0x0008\r
-#define CM_RESOURCE_DMA_TYPE_A            0x0010\r
-#define CM_RESOURCE_DMA_TYPE_B            0x0020\r
-#define CM_RESOURCE_DMA_TYPE_F            0x0040\r
-\r
-typedef struct _CM_PARTIAL_RESOURCE_LIST {\r
-  USHORT  Version;\r
-  USHORT  Revision;\r
-  ULONG  Count;\r
-  CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];\r
+typedef struct _CM_PARTIAL_RESOURCE_LIST\r
+{\r
+    USHORT Version;\r
+    USHORT Revision;\r
+    ULONG Count;\r
+    CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];\r
 } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;\r
 \r
-typedef struct _CM_FULL_RESOURCE_DESCRIPTOR {\r
-  INTERFACE_TYPE  InterfaceType;\r
-  ULONG  BusNumber;\r
-  CM_PARTIAL_RESOURCE_LIST  PartialResourceList;\r
+//\r
+// Full Resource Descriptor and List for Hardware\r
+//\r
+typedef struct _CM_FULL_RESOURCE_DESCRIPTOR\r
+{\r
+    INTERFACE_TYPE InterfaceType;\r
+    ULONG BusNumber;\r
+    CM_PARTIAL_RESOURCE_LIST PartialResourceList;\r
 } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR;\r
 \r
-typedef struct _CM_RESOURCE_LIST {\r
-  ULONG  Count;\r
-  CM_FULL_RESOURCE_DESCRIPTOR  List[1];\r
+typedef struct _CM_RESOURCE_LIST\r
+{\r
+    ULONG Count;\r
+    CM_FULL_RESOURCE_DESCRIPTOR List[1];\r
 } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST;\r
 \r
-typedef struct _CM_INT13_DRIVE_PARAMETER {\r
-  USHORT  DriveSelect;\r
-  ULONG  MaxCylinders;\r
-  USHORT  SectorsPerTrack;\r
-  USHORT  MaxHeads;\r
-  USHORT  NumberDrives;\r
+//\r
+// Disk/INT13 Structures\r
+//\r
+typedef struct _CM_INT13_DRIVE_PARAMETER\r
+{\r
+    USHORT DriveSelect;\r
+    ULONG MaxCylinders;\r
+    USHORT SectorsPerTrack;\r
+    USHORT MaxHeads;\r
+    USHORT NumberDrives;\r
 } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER;\r
 \r
 typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA\r
 {\r
-  ULONG BytesPerSector;\r
-  ULONG NumberOfCylinders;\r
-  ULONG SectorsPerTrack;\r
-  ULONG NumberOfHeads;\r
+    ULONG BytesPerSector;\r
+    ULONG NumberOfCylinders;\r
+    ULONG SectorsPerTrack;\r
+    ULONG NumberOfHeads;\r
 } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA;\r
 \r
 #include <poppack.h>\r
 \r
-#endif\r
+#endif // _!NTOS_MODE_USER\r
 \r
-#endif\r
+#endif // _CMTYPES_H\r
 \r
index e3d696a..0728769 100644 (file)
@@ -1,41 +1,57 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/dbgktypes.h
- * PURPOSE:         Definitions for User-Mode Kernel Debugging not in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 25/06/05
- */
+/*++ NDK Version: 0095
 
-#ifndef _DBGKTYPES_H
-#define _DBGKTYPES_H
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    dbgktypes.h
+
+Abstract:
+
+    Type definitions for the Debug Subsystem.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-/* DEPENDENCIES **************************************************************/
+--*/
 
-/* EXPORTED DATA *************************************************************/
+#ifndef _DBGKTYPES_H
+#define _DBGKTYPES_H
 
-/* CONSTANTS *****************************************************************/
-#define DEBUG_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0F)
-#define DEBUG_OBJECT_WAIT_STATE_CHANGE 0x0001
-#define DEBUG_OBJECT_ADD_REMOVE_PROCESS 0x0002
+//
+// Dependencies
+//
 
-/* ENUMERATIONS **************************************************************/
+//
+// Debug Object Access Masks
+//
+#define DEBUG_OBJECT_WAIT_STATE_CHANGE      0x0001
+#define DEBUG_OBJECT_ADD_REMOVE_PROCESS     0x0002
+#define DEBUG_OBJECT_ALL_ACCESS             (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0F)
 
+//
+// Debug Object Information Classes for NtQueryDebugObject
+//
 typedef enum _DEBUGOBJECTINFOCLASS
 {
     DebugObjectUnusedInformation,
     DebugObjectKillProcessOnExitInformation
 } DEBUGOBJECTINFOCLASS, *PDEBUGOBJECTINFOCLASS;
 
-/* TYPES *********************************************************************/
-
+//
+// Debug Object Information Structures
+//
 typedef struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
 {
     ULONG KillProcessOnExit;
-} DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION, *
-PDEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION;
+} DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION, *PDEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION;
 
 #ifndef NTOS_MODE_USER
+
+//
+// Debug Object
+//
 typedef struct _DBGK_DEBUG_OBJECT
 {
     KEVENT Event;
@@ -51,8 +67,12 @@ typedef struct _DBGK_DEBUG_OBJECT
         };
     };
 } DBGK_DEBUG_OBJECT, *PDBGK_DEBUG_OBJECT;
+
 #endif
 
+//
+// Debug States
+//
 typedef enum _DBG_STATE
 {
     DbgIdle,
@@ -68,6 +88,9 @@ typedef enum _DBG_STATE
     DbgUnloadDllStateChange
 } DBG_STATE, *PDBG_STATE;
 
+//
+// Debug Message Structures
+//
 typedef struct _DBGKM_EXCEPTION
 {
     EXCEPTION_RECORD ExceptionRecord;
@@ -113,6 +136,9 @@ typedef struct _DBGKM_UNLOAD_DLL
     PVOID BaseAddress;
 } DBGKM_UNLOAD_DLL, *PDBGKM_UNLOAD_DLL;
 
+//
+// User-Mode Debug State Change Structure
+//
 typedef struct _DBGUI_WAIT_STATE_CHANGE
 {
     DBG_STATE NewState;
@@ -138,6 +164,9 @@ typedef struct _DBGUI_WAIT_STATE_CHANGE
     } StateInfo;
 } DBGUI_WAIT_STATE_CHANGE, *PDBGUI_WAIT_STATE_CHANGE;
 
+//
+// LPC Debug Message
+//
 typedef struct _DBGKM_MSG
 {
     PORT_MESSAGE h;
@@ -145,12 +174,12 @@ typedef struct _DBGKM_MSG
     ULONG Status;
     union
     {
-           DBGKM_EXCEPTION Exception;
+        DBGKM_EXCEPTION Exception;
         DBGKM_CREATE_THREAD CreateThread;
         DBGKM_CREATE_PROCESS CreateProcess;
-           DBGKM_EXIT_THREAD ExitThread;
+        DBGKM_EXIT_THREAD ExitThread;
         DBGKM_EXIT_PROCESS ExitProcess;
-           DBGKM_LOAD_DLL LoadDll;
+        DBGKM_LOAD_DLL LoadDll;
         DBGKM_UNLOAD_DLL UnloadDll;
     };
 } DBGKM_MSG, *PDBGKM_MSG;
index 7aa4371..5f9dc11 100644 (file)
@@ -1,20 +1,31 @@
-/*\r
- * PROJECT:         ReactOS Native Headers\r
- * FILE:            include/ndk/exfuncs.h\r
- * PURPOSE:         Prototypes for exported Executive Functions not defined in DDK/IFS\r
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)\r
- * UPDATE HISTORY:\r
- *                  Created 06/10/04\r
- */\r
-#ifndef _EXFUNCS_H\r
-#define _EXFUNCS_H\r
+/*++ NDK Version: 0095\r
+\r
+Copyright (c) Alex Ionescu.  All rights reserved.\r
+\r
+Header Name:\r
+\r
+    exfuncs.h\r
+\r
+Abstract:\r
 \r
-/* DEPENDENCIES **************************************************************/\r
+    Function definitions for the Executive.\r
 \r
-/* FUNCTION TYPES ************************************************************/\r
+Author:\r
+\r
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004\r
+\r
+--*/\r
+\r
+#ifndef _EXFUNCS_H\r
+#define _EXFUNCS_H\r
 \r
-/* PROTOTYPES ****************************************************************/\r
+//\r
+// Dependencies\r
+//\r
 \r
+//\r
+// Fast Mutex functions\r
+//\r
 VOID\r
 FASTCALL\r
 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex);\r
index 460af78..ff8a150 100644 (file)
@@ -1,16 +1,27 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/extypes.h
- * PURPOSE:         Definitions for exported Executive Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    extypes.h
+
+Abstract:
+
+    Type definitions for the Executive.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #ifndef _EXTYPES_H
 #define _EXTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include <cfg.h>
 #if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
 #include <ntimage.h>
 #include "pstypes.h"
 #include "potypes.h"
 
-/* EXPORTED DATA *************************************************************/
+//
+// Atom and Language IDs
+//
+typedef USHORT LANGID, *PLANGID;
+typedef USHORT RTL_ATOM, *PRTL_ATOM;
+
 #ifndef NTOS_MODE_USER
+
+//
+// Kernel Exported Object Types
+//
 extern POBJECT_TYPE NTSYSAPI ExIoCompletionType;
 extern POBJECT_TYPE NTSYSAPI ExMutantObjectType;
 extern POBJECT_TYPE NTSYSAPI ExTimerType;
-#endif
 
-/* CONSTANTS *****************************************************************/
-#ifndef NTOS_MODE_USER
-#define INVALID_HANDLE_VALUE (HANDLE)-1
+//
+// Invalid Handle Value Constant
+//
+#define INVALID_HANDLE_VALUE            (HANDLE)-1
+
 #endif
 
-/* Increments */
-#define MUTANT_INCREMENT 1
-
-/* Executive Object Access Rights */
-#define CALLBACK_ALL_ACCESS     (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x0001)
-#define CALLBACK_EXECUTE        (STANDARD_RIGHTS_EXECUTE|SYNCHRONIZE|0x0001)
-#define CALLBACK_WRITE          (STANDARD_RIGHTS_WRITE|SYNCHRONIZE|0x0001)
-#define CALLBACK_READ           (STANDARD_RIGHTS_READ|SYNCHRONIZE|0x0001)
-#define EVENT_READ_ACCESS       1
-#define EVENT_WRITE_ACCESS      2
-#define PORT_ALL_ACCESS         0x1
-#define EVENT_PAIR_ALL_ACCESS   0x1F0000L
+//
+// Increments
+//
+#define MUTANT_INCREMENT                1
+
+//
+// Callback Object Access Mask
+//
+#define CALLBACK_ALL_ACCESS             (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x0001)
+#define CALLBACK_EXECUTE                (STANDARD_RIGHTS_EXECUTE|SYNCHRONIZE|0x0001)
+#define CALLBACK_WRITE                  (STANDARD_RIGHTS_WRITE|SYNCHRONIZE|0x0001)
+#define CALLBACK_READ                   (STANDARD_RIGHTS_READ|SYNCHRONIZE|0x0001)
+
+//
+// Event Object Access Masks
+//
 #ifdef NTOS_MODE_USER
-#define EVENT_QUERY_STATE       0x0001
-#define SEMAPHORE_QUERY_STATE   0x0001
+#define EVENT_QUERY_STATE               0x0001
+
+//
+// Semaphore Object Acess Masks
+//
+#define SEMAPHORE_QUERY_STATE           0x0001
 #endif
 
-#define MAXIMUM_HARDERROR_PARAMETERS 4
+//
+// Port Object Access Masks (FIXME: lpctypes.h?)
+//
+#define PORT_ALL_ACCESS                 0x1
+
+//
+// Event Pair Access Masks
+//
+#define EVENT_PAIR_ALL_ACCESS           0x1F0000L
+
+//
+// Maximum Parameters for NtRaiseHardError
+//
+#define MAXIMUM_HARDERROR_PARAMETERS    4
 
-/* ENUMERATIONS **************************************************************/
+//
+// Shutdown types for NtShutdownSystem
+//
 typedef enum _SHUTDOWN_ACTION
 {
     ShutdownNoReboot,
@@ -59,6 +103,9 @@ typedef enum _SHUTDOWN_ACTION
     ShutdownPowerOff
 } SHUTDOWN_ACTION;
 
+//
+// Responses for NtRaiseHardError
+//
 typedef enum _HARDERROR_RESPONSE_OPTION
 {
     OptionAbortRetryIgnore,
@@ -83,13 +130,16 @@ typedef enum _HARDERROR_RESPONSE
     ResponseYes
 } HARDERROR_RESPONSE, *PHARDERROR_RESPONSE;
 
+//
+//  System Information Classes for NtQuerySystemInformation
+//
 typedef enum _SYSTEM_INFORMATION_CLASS
 {
     SystemBasicInformation,
     SystemProcessorInformation,
     SystemPerformanceInformation,
     SystemTimeOfDayInformation,
-    SystemPathInformation, /* OBSOLETE: USE KUSER_SHARED_DATA */
+    SystemPathInformation, /// Obsolete: Use KUSER_SHARED_DATA
     SystemProcessInformation,
     SystemCallCountInformation,
     SystemDeviceInformation,
@@ -127,7 +177,7 @@ typedef enum _SYSTEM_INFORMATION_CLASS
     SystemPrioritySeperation,
     SystemPlugPlayBusInformation,
     SystemDockInformation,
-    _SystemPowerInformation, /* FIXME */
+    _SystemPowerInformation, // FIXME 
     SystemProcessorSpeedInformation,
     SystemCurrentTimeZoneInformation,
     SystemLookasideInformation,
@@ -142,38 +192,52 @@ typedef enum _SYSTEM_INFORMATION_CLASS
     SystemInformationClassMax
 } SYSTEM_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryMutant
+//
 typedef enum _MUTANT_INFORMATION_CLASS
 {
     MutantBasicInformation
 } MUTANT_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryAtom
+//
 typedef enum _ATOM_INFORMATION_CLASS
 {
     AtomBasicInformation,
     AtomTableInformation,
 } ATOM_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryTimer
+//
 typedef enum _TIMER_INFORMATION_CLASS
 {
     TimerBasicInformation
 } TIMER_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQuerySemaphore
+//
 typedef enum _SEMAPHORE_INFORMATION_CLASS
 {
     SemaphoreBasicInformation
 } SEMAPHORE_INFORMATION_CLASS;
 
+//
+//  System Information Classes for NtQueryEvent
+//
 typedef enum _EVENT_INFORMATION_CLASS
 {
     EventBasicInformation
 } EVENT_INFORMATION_CLASS;
 
-/* TYPES *********************************************************************/
-
-typedef USHORT LANGID, *PLANGID;
-typedef USHORT RTL_ATOM, *PRTL_ATOM;
-
 #ifndef NTOS_MODE_USER
+
+//
+// Executive Work Queue Structures
+//
 typedef struct _EX_QUEUE_WORKER_INFO
 {
     ULONG QueueDisabled:1;
@@ -192,6 +256,9 @@ typedef struct _EX_WORK_QUEUE
     EX_QUEUE_WORKER_INFO Info;
 } EX_WORK_QUEUE, *PEX_WORK_QUEUE;
 
+//
+// Executive Fast Reference Structure
+//
 typedef struct _EX_FAST_REF
 {
     union
@@ -202,17 +269,18 @@ typedef struct _EX_FAST_REF
     };
 } EX_FAST_REF, *PEX_FAST_REF;
 
-typedef struct _HANDLE_TABLE_ENTRY_INFO
-{
-    ULONG AuditMask;
-} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
-
+//
+// FIXME
+//
 typedef struct _RUNDOWN_DESCRIPTOR
 {
     ULONG_PTR References;
     KEVENT RundownEvent;
 } RUNDOWN_DESCRIPTOR, *PRUNDOWN_DESCRIPTOR;
 
+//
+// Callback Object
+//
 typedef struct _CALLBACK_OBJECT
 {
     ULONG Name;
@@ -221,6 +289,14 @@ typedef struct _CALLBACK_OBJECT
     ULONG AllowMultipleCallbacks;
 } CALLBACK_OBJECT , *PCALLBACK_OBJECT;
 
+//
+// Handle Table Structures
+//
+typedef struct _HANDLE_TABLE_ENTRY_INFO
+{
+    ULONG AuditMask;
+} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
+
 typedef struct _HANDLE_TABLE_ENTRY
 {
     union
@@ -254,6 +330,9 @@ typedef struct _HANDLE_TABLE
 
 #endif
 
+//
+// Information Structures for NtQueryMutant
+//
 typedef struct _MUTANT_BASIC_INFORMATION
 {
     LONG CurrentCount;
@@ -261,6 +340,9 @@ typedef struct _MUTANT_BASIC_INFORMATION
     BOOLEAN AbandonedState;
 } MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQueryAtom
+//
 typedef struct _ATOM_BASIC_INFORMATION
 {
     USHORT UsageCount;
@@ -275,25 +357,36 @@ typedef struct _ATOM_TABLE_INFORMATION
     USHORT Atoms[1];
 } ATOM_TABLE_INFORMATION, *PATOM_TABLE_INFORMATION;
 
+//
+// Information Structures for NtQueryTimer
+//
 typedef struct _TIMER_BASIC_INFORMATION
 {
     LARGE_INTEGER TimeRemaining;
     BOOLEAN SignalState;
 } TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQuerySemaphore
+//
 typedef struct _SEMAPHORE_BASIC_INFORMATION
 {
     LONG CurrentCount;
     LONG MaximumCount;
 } SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
 
+//
+// Information Structures for NtQueryEvent
+//
 typedef struct _EVENT_BASIC_INFORMATION
 {
     EVENT_TYPE EventType;
     LONG EventState;
 } EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
 
-/* Class 0 */
+//
+// Information Structures for NtQuerySystemInformation
+//
 typedef struct _SYSTEM_BASIC_INFORMATION
 {
     ULONG Reserved;
@@ -309,7 +402,7 @@ typedef struct _SYSTEM_BASIC_INFORMATION
     CCHAR NumberOfProcessors;
 } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
 
-/* Class 1 */
+// Class 1
 typedef struct _SYSTEM_PROCESSOR_INFORMATION
 {
     USHORT ProcessorArchitecture;
@@ -319,7 +412,7 @@ typedef struct _SYSTEM_PROCESSOR_INFORMATION
     ULONG ProcessorFeatureBits;
 } SYSTEM_PROCESSOR_INFORMATION, *PSYSTEM_PROCESSOR_INFORMATION;
 
-/* Class 2 */
+// Class 2
 typedef struct _SYSTEM_PERFORMANCE_INFORMATION
 {
     LARGE_INTEGER IdleProcessTime;
@@ -398,7 +491,7 @@ typedef struct _SYSTEM_PERFORMANCE_INFORMATION
     ULONG SystemCalls;
 } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
 
-/* Class 3 */
+// Class 3 
 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
 {
     LARGE_INTEGER BootTime;
@@ -408,10 +501,10 @@ typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
     ULONG Reserved;
 } SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
 
-/* Class 4 */
-/* This class is obsoleted, please use KUSER_SHARED_DATA instead */
+// Class 4
+// This class is obsolete, please use KUSER_SHARED_DATA instead
 
-/* Class 5 */
+// Class 5
 typedef struct _SYSTEM_THREAD_INFORMATION
 {
     LARGE_INTEGER KernelTime;
@@ -445,10 +538,10 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     ULONG SessionId;
     ULONG PageDirectoryFrame;
 
-    /*
-     * This part corresponds to VM_COUNTERS_EX.
-     * NOTE: *NOT* THE SAME AS VM_COUNTERS!
-     */
+    //
+    // This part corresponds to VM_COUNTERS_EX.
+    // NOTE: *NOT* THE SAME AS VM_COUNTERS!
+    //
     ULONG PeakVirtualSize;
     ULONG VirtualSize;
     ULONG PageFaultCount;
@@ -462,7 +555,9 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     ULONG PeakPagefileUsage;
     ULONG PrivateUsage;
 
-    /* This part corresponds to IO_COUNTERS */
+    //
+    // This part corresponds to IO_COUNTERS
+    //
     LARGE_INTEGER ReadOperationCount;
     LARGE_INTEGER WriteOperationCount;
     LARGE_INTEGER OtherOperationCount;
@@ -470,18 +565,17 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
     LARGE_INTEGER WriteTransferCount;
     LARGE_INTEGER OtherTransferCount;
 
-    /* Finally, the array of Threads */
     SYSTEM_THREAD_INFORMATION TH[1];
 } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
 
-/* Class 6 */
+// Class 6
 typedef struct _SYSTEM_CALL_COUNT_INFORMATION
 {
     ULONG Length;
     ULONG NumberOfTables;
 } SYSTEM_CALL_COUNT_INFORMATION, *PSYSTEM_CALL_COUNT_INFORMATION;
 
-/* Class 7 */
+// Class 7
 typedef struct _SYSTEM_DEVICE_INFORMATION
 {
     ULONG NumberOfDisks;
@@ -492,7 +586,7 @@ typedef struct _SYSTEM_DEVICE_INFORMATION
     ULONG NumberOfParallelPorts;
 } SYSTEM_DEVICE_INFORMATION, *PSYSTEM_DEVICE_INFORMATION;
 
-/* Class 8 */
+// Class 8
 typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
 {
     LARGE_INTEGER IdleTime;
@@ -503,13 +597,13 @@ typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
     ULONG InterruptCount;
 } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
 
-/* Class 9 */
+// Class 9
 typedef struct _SYSTEM_FLAGS_INFORMATION
 {
     ULONG Flags;
 } SYSTEM_FLAGS_INFORMATION, *PSYSTEM_FLAGS_INFORMATION;
 
-/* Class 10 */
+// Class 10
 typedef struct _SYSTEM_CALL_TIME_INFORMATION
 {
     ULONG Length;
@@ -517,7 +611,7 @@ typedef struct _SYSTEM_CALL_TIME_INFORMATION
     LARGE_INTEGER TimeOfCalls[1];
 } SYSTEM_CALL_TIME_INFORMATION, *PSYSTEM_CALL_TIME_INFORMATION;
 
-/* Class 11 */
+// Class 11
 typedef struct _SYSTEM_MODULE_INFORMATION_ENTRY
 {
     ULONG  Unknown1;
@@ -537,7 +631,7 @@ typedef struct _SYSTEM_MODULE_INFORMATION
     SYSTEM_MODULE_INFORMATION_ENTRY Module[1];
 } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
 
-/* Class 12 */
+// Class 12
 typedef struct _SYSTEM_RESOURCE_LOCK_ENTRY
 {
     ULONG  ResourceAddress;
@@ -556,22 +650,20 @@ typedef struct _SYSTEM_RESOURCE_LOCK_INFO
     SYSTEM_RESOURCE_LOCK_ENTRY Lock[1];
 } SYSTEM_RESOURCE_LOCK_INFO, *PSYSTEM_RESOURCE_LOCK_INFO;
 
-/* Class 13 */
+// FIXME: Class 13
 typedef struct _SYSTEM_BACKTRACE_INFORMATION_ENTRY
 {
     ULONG Dummy;
-    /* FIXME */
 } SYSTEM_BACKTRACE_INFORMATION_ENTRY, *PSYSTEM_BACKTRACE_INFORMATION_ENTRY;
 
 typedef struct _SYSTEM_BACKTRACE_INFORMATION
 {
-    /* FIXME */
     ULONG Unknown[4];
     ULONG Count;
     SYSTEM_BACKTRACE_INFORMATION_ENTRY Trace[1];
 } SYSTEM_BACKTRACE_INFORMATION, *PSYSTEM_BACKTRACE_INFORMATION;
 
-/* Class 14 - 15 */
+// Class 14 - 15
 typedef struct _SYSTEM_POOL_ENTRY
 {
     BOOLEAN Allocated;
@@ -597,7 +689,7 @@ typedef struct _SYSTEM_POOL_INFORMATION
     SYSTEM_POOL_ENTRY Entries[1];
 } SYSTEM_POOL_INFORMATION, *PSYSTEM_POOL_INFORMATION;
 
-/* Class 16 */
+// Class 16
 typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO
 {
     USHORT UniqueProcessId;
@@ -615,7 +707,7 @@ typedef struct _SYSTEM_HANDLE_INFORMATION
     SYSTEM_HANDLE_TABLE_ENTRY_INFO Handles[1];
 } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
 
-/* Class 17 */
+// Class 17
 typedef struct _SYSTEM_OBJECTTYPE_INFORMATION
 {
     ULONG NextEntryOffset;
@@ -647,7 +739,7 @@ typedef struct _SYSTEM_OBJECT_INFORMATION
     OBJECT_NAME_INFORMATION NameInfo;
 } SYSTEM_OBJECT_INFORMATION, *PSYSTEM_OBJECT_INFORMATION;
 
-/* Class 18 */
+// Class 18
 typedef struct _SYSTEM_PAGEFILE_INFORMATION
 {
     ULONG NextEntryOffset;
@@ -657,7 +749,7 @@ typedef struct _SYSTEM_PAGEFILE_INFORMATION
     UNICODE_STRING PageFileName;
 } SYSTEM_PAGEFILE_INFORMATION, *PSYSTEM_PAGEFILE_INFORMATION;
 
-/* Class 19 */
+// Class 19
 typedef struct _SYSTEM_VDM_INSTEMUL_INFO
 {
     ULONG SegmentNotPresent;
@@ -696,14 +788,13 @@ typedef struct _SYSTEM_VDM_INSTEMUL_INFO
     ULONG BopCount;
 } SYSTEM_VDM_INSTEMUL_INFO, *PSYSTEM_VDM_INSTEMUL_INFO;
 
-/* Class 20 */
+// FIXME: Class 20
 typedef struct _SYSTEM_VDM_BOP_INFO
 {
-    /* FIXME */
     PVOID Dummy;
 } SYSTEM_VDM_BOP_INFO, *PSYSTEM_VDM_BOP_INFO;
 
-/* Class 21 */
+// Class 21
 typedef struct _SYSTEM_CACHE_INFORMATION
 {
     ULONG CurrentSize;
@@ -716,7 +807,7 @@ typedef struct _SYSTEM_CACHE_INFORMATION
     ULONG Unused[2];
 } SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION;
 
-/* Class 22 */
+// Class 22
 typedef struct _SYSTEM_POOLTAG
 {
     union
@@ -737,7 +828,7 @@ typedef struct _SYSTEM_POOLTAG_INFORMATION
     SYSTEM_POOLTAG TagInfo[1];
 } SYSTEM_POOLTAG_INFORMATION, *PSYSTEM_POOLTAG_INFORMATION;
 
-/* Class 23 */
+// Class 23
 typedef struct _SYSTEM_INTERRUPT_INFORMATION
 {
     ULONG ContextSwitches;
@@ -748,7 +839,7 @@ typedef struct _SYSTEM_INTERRUPT_INFORMATION
     ULONG ApcBypassCount;
 } SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
 
-/* Class 24 */
+// Class 24
 typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
 {
     ULONG Spare;
@@ -758,7 +849,7 @@ typedef struct _SYSTEM_DPC_BEHAVIOR_INFORMATION
     ULONG IdealDpcRate;
 } SYSTEM_DPC_BEHAVIOR_INFORMATION, *PSYSTEM_DPC_BEHAVIOR_INFORMATION;
 
-/* Class 25 */
+// Class 25
 typedef struct _SYSTEM_MEMORY_INFO
 {
     PUCHAR StringOffset;
@@ -774,7 +865,7 @@ typedef struct _SYSTEM_MEMORY_INFORMATION
     SYSTEM_MEMORY_INFO Memory[1];
 } SYSTEM_MEMORY_INFORMATION, *PSYSTEM_MEMORY_INFORMATION;
 
-/* Class 26 */
+// Class 26
 typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
 {
     UNICODE_STRING DriverName;
@@ -784,10 +875,10 @@ typedef struct _SYSTEM_GDI_DRIVER_INFORMATION
     PIMAGE_EXPORT_DIRECTORY ExportSectionPointer;
 } SYSTEM_GDI_DRIVER_INFORMATION, *PSYSTEM_GDI_DRIVER_INFORMATION;
 
-/* Class 27 */
-/* Not an actuall class, simply a PVOID to the ImageAddress */
+// Class 27
+// Not an actually class, simply a PVOID to the ImageAddress 
 
-/* Class 28 */
+// Class 28
 typedef struct _SYSTEM_QUERY_TIME_ADJUST_INFORMATION
 {
     ULONG TimeAdjustment;
@@ -801,18 +892,17 @@ typedef struct _SYSTEM_SET_TIME_ADJUST_INFORMATION
     BOOLEAN Enable;
 } SYSTEM_SET_TIME_ADJUST_INFORMATION, *PSYSTEM_SET_TIME_ADJUST_INFORMATION;
 
-/* Class 29 - Same as 25 */
+// Class 29 - Same as 25
 
-/* Class 30 - 31 */
-/* FIXME */
+// FIXME: Class 30 - 31
 
-/* Class 32 */
+// Class 32
 typedef struct _SYSTEM_CRASH_DUMP_INFORMATION
 {
     HANDLE CrashDumpSection;
 } SYSTEM_CRASH_DUMP_INFORMATION, *PSYSTEM_CRASH_DUMP_INFORMATION;
 
-/* Class 33 */
+// Class 33
 typedef struct _SYSTEM_EXCEPTION_INFORMATION
 {
     ULONG AlignmentFixupCount;
@@ -821,20 +911,20 @@ typedef struct _SYSTEM_EXCEPTION_INFORMATION
     ULONG ByteWordEmulationCount;
 } SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
 
-/* Class 34 */
+// Class 34
 typedef struct _SYSTEM_CRASH_STATE_INFORMATION
 {
     ULONG ValidCrashDump;
 } SYSTEM_CRASH_STATE_INFORMATION, *PSYSTEM_CRASH_STATE_INFORMATION;
 
-/* Class 35 */
+// Class 35
 typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION
 {
     BOOLEAN KernelDebuggerEnabled;
     BOOLEAN KernelDebuggerNotPresent;
 } SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION;
 
-/* Class 36 */
+// Class 36
 typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
 {
     ULONG ContextSwitches;
@@ -851,7 +941,7 @@ typedef struct _SYSTEM_CONTEXT_SWITCH_INFORMATION
     ULONG SwitchToIdle;
 } SYSTEM_CONTEXT_SWITCH_INFORMATION, *PSYSTEM_CONTEXT_SWITCH_INFORMATION;
 
-/* Class 37 */
+// Class 37
 typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
 {
     ULONG RegistryQuotaAllowed;
@@ -859,20 +949,20 @@ typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
     ULONG PagedPoolSize;
 } SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
 
-/* Class 38 */
-/* Not a structure, simply send the UNICODE_STRING */
+// Class 38
+// Not a structure, simply send the UNICODE_STRING
 
-/* Class 39 */
-/* Not a structure, simply send a ULONG containing the new separation */
+// Class 39
+// Not a structure, simply send a ULONG containing the new separation
 
-/* Class 40 */
+// Class 40
 typedef struct _SYSTEM_PLUGPLAY_BUS_INFORMATION
 {
     ULONG BusCount;
     PLUGPLAY_BUS_INSTANCE BusInstance[1];
 } SYSTEM_PLUGPLAY_BUS_INFORMATION, *PSYSTEM_PLUGPLAY_BUS_INFORMATION;
 
-/* Class 41 */
+// Class 41
 typedef struct _SYSTEM_DOCK_INFORMATION
 {
     SYSTEM_DOCK_STATE DockState;
@@ -881,8 +971,8 @@ typedef struct _SYSTEM_DOCK_INFORMATION
     ULONG SlotNumber;
 } SYSTEM_DOCK_INFORMATION, *PSYSTEM_DOCK_INFORMATION;
 
-/* Class 42 */
-/* FIXME: Conflict with WINNT.H */
+// Class 42
+// FIXME: Conflict with WINNT.H 
 typedef struct __SYSTEM_POWER_INFORMATION
 {
     BOOLEAN SystemSuspendSupported;
@@ -897,18 +987,18 @@ typedef struct __SYSTEM_POWER_INFORMATION
     LARGE_INTEGER SpindownDrives;
 } _SYSTEM_POWER_INFORMATION, *P_SYSTEM_POWER_INFORMATION;
 
-/* Class 43 */
+// Class 43
 typedef struct _SYSTEM_LEGACY_DRIVER_INFORMATION
 {
     PNP_VETO_TYPE VetoType;
     UNICODE_STRING VetoDriver;
-    /* Buffer Follows */
+    // CHAR Buffer[0];
 } SYSTEM_LEGACY_DRIVER_INFORMATION, *PSYSTEM_LEGACY_DRIVER_INFORMATION;
 
-/* Class 44 */
+// Class 44
 typedef struct _TIME_ZONE_INFORMATION RTL_TIME_ZONE_INFORMATION;
 
-/* Class 45 */
+// Class 45
 typedef struct _SYSTEM_LOOKASIDE_INFORMATION
 {
     USHORT CurrentDepth;
@@ -922,34 +1012,30 @@ typedef struct _SYSTEM_LOOKASIDE_INFORMATION
     ULONG Size;
 } SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
 
-/* Class 46 */
-/* Not a structure. Only a HANDLE for the SlipEvent; */
+// Class 46
+// Not a structure. Only a HANDLE for the SlipEvent;
 
-/* Class 47 */
-/* Not a structure. Only a ULONG for the SessionId; */
+// Class 47
+// Not a structure. Only a ULONG for the SessionId;
 
-/* Class 48 */
-/* Not a structure. Only a ULONG for the SessionId; */
+// Class 48
+// Not a structure. Only a ULONG for the SessionId;
 
-/* Class 49 */
-/* FIXME */
+// FIXME: Class 49
 
-/* Class 50 */
-/* Not a structure. Only a ULONG_PTR for the SystemRangeStart */
+// Class 50
+// Not a structure. Only a ULONG_PTR for the SystemRangeStart
 
-/* Class 51 */
-/* FIXME. Based on MM_DRIVER_VERIFIER_DATA */
+// FIXME: Class 51 (Based on MM_DRIVER_VERIFIER_DATA)
 
-/* Class 52 */
-/* FIXME */
+// FIXME: Class 52
 
-/* Class 53 */
+// Class 53 
 typedef struct _SYSTEM_SESSION_PROCESSES_INFORMATION
 {
-    ULONG    SessionId;
-    ULONG    BufferSize;
-    PVOID    Buffer; /* same format as in SystemProcessInformation */
-} SYSTEM_SESSION_PROCESSES_INFORMATION, * PSYSTEM_SESSION_PROCESSES_INFORMATION;
+    ULONG SessionId;
+    ULONG BufferSize;
+    PVOID Buffer; // Same format as in SystemProcessInformation
+} SYSTEM_SESSION_PROCESSES_INFORMATION, *PSYSTEM_SESSION_PROCESSES_INFORMATION;
 
 #endif
-
index 62c08ce..6d1e973 100644 (file)
@@ -1,42 +1,8 @@
-NDK FIXMES\r
------------\r
+Complete list of NDK Fixmes before 1.0 Release (Nov 25th 2005)\r
+--------------------------------------------------------------\r
 \r
-Order:\r
-       * Priority 1 = Most important to fix.\r
-       * Priority 5 = Least important to fix.\r
 \r
-Format:\r
-       <Priority Level>\r
-       - FIXME Description (Assigned Fixer) [FIXME location(s)]\r
+List of ReactOS Applications compiling with the NDK\r
+--------------------------------------------------------------\r
 \r
-List:\r
-       Priority 1:\r
-       - FIXED: LDR_DATA_TABLE_ENTRY has a ROSSYM Hack (Alex) [ldrtypes.h]\r
-       - FIXED: LDR_FLAGS are not correct (Alex) [ldrtypes.h]\r
-       - FIXED: Remove extra Process Info classes from ddk (Alex) [zwtypes.h]\r
-       - FIXED: PsEstablishWin32Callouts + Parameters don't match NT (Alex) [obtypes.h]\r
-       - FIXED: PROCESS_SET_PORT was removed, ThomasW did a patch about this? (Thomas) [pstypes.h]\r
-       - FIXED: Some files need cleanup (Alex + Eric) [zwfuncs.h, rtlfuncs.h, rtltypes.h]\r
 \r
-       Priority 2:\r
-       - FIXED: DEVICE_NODE has 2 fields not part of NT's defintion (Alex) [iotypes.h]\r
-       - Object Callbacks don't match NT's (Alex) [obtypes.h]\r
-       - Remove Create Callback Hack (Alex) [obtypes.h]\r
-       - Object header doesn't match NT (Alex) [obtypes.h] blocks on ->\r
-               - Object Directory + implementation doesn't match NT (Alex) [obtypes.h]\r
-\r
-       Priority 3:\r
-       - FIXED: Some RTL Structures need review (Alex) [rtltypes.h]\r
-       - Pushlock support is needed to fix EPROCESS (Alex) [pstypes.h]\r
-       - MADDRESS_SPACE must be converted into the NT Type (Alex) [pstypes.h, mmtypes.h]\r
-\r
-       Priority 4:\r
-       - FIXED: Kernel and Memory Types are not architecture-specific (Eric) [ketypes.h, mmtypes.h]\r
-       - FIXED: Win32K Builds with windows.h (Filip) [extypes.h, ketypes.h]\r
-       - FIXED: Modify design of NDK so that all the types are in their respective files (Alex) [*.h]\r
-\r
-       Priority 5:\r
-       - FIXED: LPC Types are totally wrong. (Alex) [lpctypes.h]\r
-       - Missing System Info Classes [zwtypes.h]\r
-       - FIXED: Process Priority Classes are messed up (Alex) [pstypes.h]\r
-       \r
index f105e04..3f95631 100644 (file)
@@ -1,29 +1,96 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/halfuncs.h
- * PURPOSE:         Prototypes for exported HAL Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    halfuncs.h
+
+Abstract:
+
+    Function definitions for the HAL.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _HALFUNCS_H
 #define _HALFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
+
 #include "haltypes.h"
 
-/* FUNCTION TYPES ************************************************************/
+//
+// Display Functions
+//
+BOOLEAN
+NTAPI
+HalQueryDisplayOwnership(
+    VOID
+);
+
+VOID
+NTAPI
+HalDisplayString(
+    IN PCHAR String
+);
+
+BOOLEAN
+NTAPI
+HalQueryDisplayOwnership(
+    VOID
+);
+
+VOID
+NTAPI
+HalReleaseDisplayOwnership(
+    VOID
+);
+
+//
+// Initialization Functions
+//
+BOOLEAN
+NTAPI
+HalAllProcessorsStarted(
+    VOID
+);
 
-/* PROTOTYPES ****************************************************************/
+VOID
+NTAPI
+HalInitializeProcessor(
+    ULONG ProcessorNumber,
+    PVOID ProcessorStack
+);
 
 BOOLEAN
 NTAPI
-HalQueryDisplayOwnership(VOID);
+HalInitSystem(
+    ULONG BootPhase,
+    PLOADER_PARAMETER_BLOCK LoaderBlock
+);
+
+VOID
+NTAPI
+HalReturnToFirmware(
+    FIRMWARE_REENTRY Action
+);
 
 BOOLEAN
 NTAPI
-HalAllProcessorsStarted(VOID);
+HalStartNextProcessor(
+    ULONG Unknown1,
+    ULONG Unknown2
+);
 
+//
+// Interrupt Functions
+//
 BOOLEAN
 NTAPI
 HalBeginSystemInterrupt(
@@ -39,12 +106,6 @@ HalDisableSystemInterrupt(
     KIRQL Irql
 );
 
-VOID
-NTAPI
-HalDisplayString (
-    IN PCHAR String
-);
-
 BOOLEAN
 NTAPI
 HalEnableSystemInterrupt(
@@ -70,26 +131,10 @@ HalGetEnvironmentVariable(
 
 VOID
 NTAPI
-HalInitializeProcessor(
-    ULONG ProcessorNumber,
-    PVOID ProcessorStack
+HalReportResourceUsage(
+    VOID
 );
 
-BOOLEAN
-NTAPI
-HalInitSystem(
-    ULONG BootPhase,
-    PLOADER_PARAMETER_BLOCK LoaderBlock
-);
-
-BOOLEAN
-NTAPI
-HalQueryDisplayOwnership(VOID);
-
-VOID
-NTAPI
-HalReportResourceUsage(VOID);
-
 VOID
 FASTCALL
 HalRequestSoftwareInterrupt(
@@ -98,20 +143,25 @@ HalRequestSoftwareInterrupt(
 
 VOID
 NTAPI
-HalReleaseDisplayOwnership(VOID);
-
-VOID
-NTAPI
-HalReturnToFirmware(
-    FIRMWARE_REENTRY Action
+HalRequestIpi(
+    ULONG Unknown
 );
 
+//
+// I/O Functions
+//
 VOID
 NTAPI
-HalRequestIpi(
-    ULONG Unknown
+IoAssignDriveLetters(
+    struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+    PSTRING NtDeviceName,
+    PUCHAR NtSystemPath,
+    PSTRING NtSystemPathString
 );
 
+//
+// Environment Functions
+//
 BOOLEAN
 NTAPI
 HalSetEnvironmentVariable(
@@ -119,20 +169,5 @@ HalSetEnvironmentVariable(
     IN PCH Value
 );
 
-BOOLEAN
-NTAPI
-HalStartNextProcessor(
-    ULONG Unknown1,
-    ULONG Unknown2
-);
-
-VOID
-NTAPI
-IoAssignDriveLetters(
-    struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
-    PSTRING NtDeviceName,
-    PUCHAR NtSystemPath,
-    PSTRING NtSystemPathString
-);
 
 #endif
index 1f09fb4..ba808d8 100644 (file)
@@ -1,37 +1,48 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/haltypes.h
- * PURPOSE:         Definitions for HAL/BLDR types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    haltypes.h
+
+Abstract:
+
+    Type definitions for the HAL.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _HALTYPES_H
 #define _HALTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* EXPORTED DATA *************************************************************/
-extern ULONG NTSYSAPI KdComPortInUse;
+//
+// Multi-Boot Flags (FIXME)
+//
+#define MB_FLAGS_MEM_INFO                   (0x1)
+#define MB_FLAGS_BOOT_DEVICE                (0x2)
+#define MB_FLAGS_COMMAND_LINE               (0x4)
+#define MB_FLAGS_MODULE_INFO                (0x8)
+#define MB_FLAGS_AOUT_SYMS                  (0x10)
+#define MB_FLAGS_ELF_SYMS                   (0x20)
+#define MB_FLAGS_MMAP_INFO                  (0x40)
+#define MB_FLAGS_DRIVES_INFO                (0x80)
+#define MB_FLAGS_CONFIG_TABLE               (0x100)
+#define MB_FLAGS_BOOT_LOADER_NAME           (0x200)
+#define MB_FLAGS_APM_TABLE                  (0x400)
+#define MB_FLAGS_GRAPHICS_TABLE             (0x800)
+#define MB_FLAGS_ACPI_TABLE                 (0x1000)
 
-/* CONSTANTS *****************************************************************/
-
-/* Boot Flags */
-#define MB_FLAGS_MEM_INFO         (0x1)
-#define MB_FLAGS_BOOT_DEVICE      (0x2)
-#define MB_FLAGS_COMMAND_LINE     (0x4)
-#define MB_FLAGS_MODULE_INFO      (0x8)
-#define MB_FLAGS_AOUT_SYMS        (0x10)
-#define MB_FLAGS_ELF_SYMS         (0x20)
-#define MB_FLAGS_MMAP_INFO        (0x40)
-#define MB_FLAGS_DRIVES_INFO      (0x80)
-#define MB_FLAGS_CONFIG_TABLE     (0x100)
-#define MB_FLAGS_BOOT_LOADER_NAME (0x200)
-#define MB_FLAGS_APM_TABLE        (0x400)
-#define MB_FLAGS_GRAPHICS_TABLE   (0x800)
-#define MB_FLAGS_ACPI_TABLE       (0x1000)
-
-/* ENUMERATIONS **************************************************************/
+//
+// HalShutdownSystem Types
+//
 typedef enum _FIRMWARE_ENTRY
 {
     HalHaltRoutine,
@@ -42,21 +53,18 @@ typedef enum _FIRMWARE_ENTRY
     HalMaximumRoutine
 } FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;
 
-/* TYPES *********************************************************************/
-
+//
+// Hal Private dispatch Table
+//
+#define HAL_PRIVATE_DISPATCH_VERSION        1
 typedef struct _HAL_PRIVATE_DISPATCH
 {
     ULONG Version;
 } HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
 
-#ifdef __NTOSKRNL__
-extern HAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
-#else
-extern PHAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
-#endif
-
-#define HAL_PRIVATE_DISPATCH_VERSION    1
-
+//
+// Loader Parameter Block Structures (FIXME)
+//
 typedef struct _LOADER_MODULE
 {
     ULONG ModStart;
@@ -86,5 +94,15 @@ typedef struct _LOADER_PARAMETER_BLOCK
     ULONG KernelBase;
 } LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
 
+//
+// Kernel Exports
+//
+#ifdef __NTOSKRNL__
+extern HAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
+#else
+extern PHAL_PRIVATE_DISPATCH NTSYSAPI HalPrivateDispatchTable;
+#endif
+extern ULONG NTSYSAPI KdComPortInUse;
+
 #endif
 
diff --git a/reactos/include/ndk/i386/floatsave.h b/reactos/include/ndk/i386/floatsave.h
deleted file mode 100644 (file)
index 833f1ff..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _FLOATSAVE_H_
-#define _FLOATSAVE_H_
-
-#define FLOAT_SAVE_CONTROL (0xFFFF037F)
-#define FLOAT_SAVE_STATUS  (0xFFFF0000)
-#define FLOAT_SAVE_TAG     (0xFFFFFFFF)
-#define FLOAT_SAVE_DATA    (0xFFFF0000)
-
-#endif /* __NAPI_I386_FLOATSAVE_H__ */
-
-/* EOF */
index 2e3be26..7a63b58 100644 (file)
@@ -1,37 +1,49 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/i386/ketypes.h
- * PURPOSE:         I386-specific definitions for Kernel Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ketypes.h (X86)
+
+Abstract:
+
+    i386 Type definitions for the Kernel services.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _I386_KETYPES_H
 #define _I386_KETYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* CONSTANTS *****************************************************************/
-
-/* X86 80386 Segment Types */
-#define I386_TSS               0x9
-#define I386_ACTIVE_TSS        0xB
-#define I386_CALL_GATE         0xC
-#define I386_INTERRUPT_GATE    0xE
-#define I386_TRAP_GATE         0xF
+//
+// X86 80386 Segment Types
+//
+#define I386_TSS                0x9
+#define I386_ACTIVE_TSS         0xB
+#define I386_CALL_GATE          0xC
+#define I386_INTERRUPT_GATE     0xE
+#define I386_TRAP_GATE          0xF
 
+//
+// IPI Types
+//
 #define IPI_APC                 1
 #define IPI_DPC                 2
 #define IPI_FREEZE              3
 #define IPI_PACKET_READY        4
 #define IPI_SYNCH_REQUEST       10
 
-/* EXPORTED DATA *************************************************************/
-
-/* ENUMERATIONS **************************************************************/
-
-/* TYPES *********************************************************************/
-
+//
+// FN/FX (FPU) Save Area Structures
+//
 typedef struct _FNSAVE_FORMAT
 {
     ULONG ControlWord;
@@ -73,7 +85,9 @@ typedef struct _FX_SAVE_AREA
     ULONG Cr0NpxState;
 } FX_SAVE_AREA, *PFX_SAVE_AREA;
 
-/* FIXME: The names need to be fixed! */
+//
+// FIXME: Trap Frame Definition
+//
 typedef struct _KTRAP_FRAME
 {
     ULONG DebugEbp;
@@ -113,6 +127,9 @@ typedef struct _KTRAP_FRAME
     ULONG V86_Gs;
 } KTRAP_FRAME, *PKTRAP_FRAME;
 
+//
+// LDT Entry Definition
+//
 typedef struct _LDT_ENTRY
 {
     USHORT LimitLow;
@@ -142,6 +159,9 @@ typedef struct _LDT_ENTRY
     } HighWord;
 } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
 
+//
+// GDT Entry Definition
+//
 typedef struct _KGDTENTRY
 {
     USHORT LimitLow;
@@ -171,6 +191,9 @@ typedef struct _KGDTENTRY
     } HighWord;
 } KGDTENTRY, *PKGDTENTRY;
 
+//
+// IDT Entry Access Definition
+//
 typedef struct _KIDT_ACCESS
 {
     union
@@ -187,6 +210,9 @@ typedef struct _KIDT_ACCESS
     };
 } KIDT_ACCESS, *PKIDT_ACCESS;
 
+//
+// IDT Entry Definition
+//
 typedef struct _KIDTENTRY
 {
     USHORT Offset;
@@ -195,6 +221,9 @@ typedef struct _KIDTENTRY
     USHORT ExtendedOffset;
 } KIDTENTRY, *PKIDTENTRY;
 
+//
+// Page Table Entry Definition
+//
 typedef struct _HARDWARE_PTE_X86
 {
     ULONG Valid             : 1;
@@ -219,6 +248,9 @@ typedef struct _DESCRIPTOR
     ULONG Base;
 } KDESCRIPTOR, *PKDESCRIPTOR;
 
+//
+// Special Registers Structure (outside of CONTEXT)
+//
 typedef struct _KSPECIAL_REGISTERS
 {
     ULONG Cr0;
@@ -238,15 +270,19 @@ typedef struct _KSPECIAL_REGISTERS
     ULONG Reserved[6];
 } KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS;
 
+//
+// Processor State Data
+//
 #pragma pack(push,4)
-
 typedef struct _KPROCESSOR_STATE
 {
     PCONTEXT ContextFrame;
     KSPECIAL_REGISTERS SpecialRegisters;
 } KPROCESSOR_STATE;
 
-/* Processor Control Block */
+//
+// Processor Region Control Block
+//
 typedef struct _KPRCB
 {
     USHORT MinorVersion;
@@ -377,9 +413,9 @@ typedef struct _KPRCB
     PROCESSOR_POWER_STATE PowerState;
 } KPRCB, *PKPRCB;
 
-/*
- * This is the complete, internal KPCR structure
- */
+//
+// Processor Control Region
+//
 typedef struct _KIPCR
 {
     union
@@ -422,11 +458,12 @@ typedef struct _KIPCR
     UCHAR KernelReserved2[0x48]; /* D8 */
     KPRCB PrcbData;              /* 120 */
 } KIPCR, *PKIPCR;
-
 #pragma pack(pop)
 
+//
+// FIXME: TSS without I/O Privilege Map
+//
 #include <pshpack1.h>
-
 typedef struct _KTSSNOIOPM
 {
     USHORT PreviousTask;
@@ -471,30 +508,33 @@ typedef struct _KTSSNOIOPM
     UCHAR IoBitmap[1];
 } KTSSNOIOPM;
 
+//
+// TSS Definition
+//
 typedef struct _KTSS
 {
     USHORT PreviousTask;
     USHORT Reserved1;
-    ULONG  Esp0;
+    ULONG Esp0;
     USHORT Ss0;
     USHORT Reserved2;
-    ULONG  Esp1;
+    ULONG Esp1;
     USHORT Ss1;
     USHORT Reserved3;
-    ULONG  Esp2;
+    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;
+    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;
@@ -512,12 +552,13 @@ typedef struct _KTSS
     USHORT Trap;
     USHORT IoMapBase;
     /* no interrupt redirection map */
-    UCHAR  IoBitmap[8193];
+    UCHAR IoBitmap[8193];
 } KTSS;
-
 #include <poppack.h>
 
-/* i386 Doesn't have Exception Frames */
+//
+// i386 CPUs don't have exception frames
+//
 typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
 
 #endif
index a08f7fb..14194f7 100644 (file)
@@ -1,25 +1,32 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/i386/mmtypes.h
- * PURPOSE:         I386-specific definitions for Memory Manager Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _I386_MMTYPES_H
-#define _I386_MMTYPES_H
+/*++ NDK Version: 0095
 
-/* DEPENDENCIES **************************************************************/
+Copyright (c) Alex Ionescu.  All rights reserved.
 
-/* EXPORTED DATA *************************************************************/
+Header Name:
 
-/* CONSTANTS *****************************************************************/
+    mmtypes.h (X86)
 
-#define PAGE_SIZE                         0x1000
-#define PAGE_SHIFT                        12L
+Abstract:
+
+    i386 Type definitions for the Memory Manager
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-/* ENUMERATIONS **************************************************************/
+--*/
 
-/* TYPES *********************************************************************/
+#ifndef _I386_MMTYPES_H
+#define _I386_MMTYPES_H
+
+//
+// Dependencies
+//
+
+//
+// Page-related Macros
+//
+#define PAGE_SIZE                         0x1000
+#define PAGE_SHIFT                        12L
 
 #endif
diff --git a/reactos/include/ndk/i386/segment.h b/reactos/include/ndk/i386/segment.h
deleted file mode 100644 (file)
index 85f2aee..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _ASM_SEGMENT_H
-#define _ASM_SEGMENT_H
-
-#define KERNEL_CS            (0x8)
-#define KERNEL_DS            (0x10)
-#define USER_CS              (0x18 + 0x3)
-#define USER_DS              (0x20 + 0x3)
-#define TSS_SELECTOR         (0x28)
-#define PCR_SELECTOR         (0x30)
-#define TEB_SELECTOR         (0x38 + 0x3)
-#define LDT_SELECTOR         (0x48)
-#define TRAP_TSS_SELECTOR    (0x50)
-
-#endif /* _ASM_SEGMENT_H */
index 5c5cbdc..1bf3cb3 100644 (file)
@@ -1,21 +1,23 @@
-/*\r
- * PROJECT:         ReactOS Native Headers\r
- * FILE:            include/ndk/ifssupp.h\r
- * PURPOSE:         Defintions present in IFS, required for NDK usage.\r
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)\r
- * UPDATE HISTORY:\r
- *                  Created 08/16/05\r
- */\r
-#ifndef _NTIFS_\r
-#define _NTIFS_\r
+/*++ NDK Version: 0095\r
+\r
+Copyright (c) Alex Ionescu.  All rights reserved.\r
+\r
+Header Name:\r
+\r
+    ifssupp.h\r
+\r
+Abstract:\r
 \r
-/* DEPENDENCIES **************************************************************/\r
+    NDK Support for usage without the IFS. Will be deprecated at WDK Release.\r
 \r
-/* EXPORTED DATA *************************************************************/\r
+Author:\r
 \r
-/* CONSTANTS *****************************************************************/\r
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004\r
 \r
-/* TYPES *********************************************************************/\r
+--*/\r
+\r
+#ifndef _NTIFS_\r
+#define _NTIFS_\r
 \r
 typedef PVOID PRTL_HEAP_PARAMETERS;\r
 \r
@@ -126,5 +128,4 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS
     GenericEqual\r
 } RTL_GENERIC_COMPARE_RESULTS;\r
 \r
-#endif\r
-\r
+#endif // _NTIFS_\r
index 254538e..04c0024 100644 (file)
@@ -1,20 +1,31 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/haltypes.h
- * PURPOSE:         Prototypes for Boot Video Driver not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _INBVFUNCS_H
-#define _INBVFUNCS_H
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    inbvfuncs.h
+
+Abstract:
 
-/* DEPENDENCIES **************************************************************/
+    Function definitions for the Boot Video Driver.
 
-/* FUNCTION TYPES ************************************************************/
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
+#ifndef _INBVFUNCS_H
+#define _INBVFUNCS_H
 
-/* PROTOTYPES ****************************************************************/
+//
+// Dependencies
+//
 
+//
+// Ownership Functions
+//
 VOID
 NTAPI
 InbvAcquireDisplayOwnership(VOID);
@@ -23,24 +34,21 @@ BOOLEAN
 NTAPI
 InbvCheckDisplayOwnership(VOID);
 
-BOOLEAN
+VOID
 NTAPI
-InbvDisplayString(
-    IN PCHAR String
+InbvNotifyDisplayOwnershipLost(
+    IN PVOID Callback
 );
 
+//
+// Installation Functions
+//
 VOID
 NTAPI
 InbvEnableBootDriver(
     IN BOOLEAN Enable
 );
 
-BOOLEAN
-NTAPI
-InbvEnableDisplayString(
-    IN BOOLEAN Enable
-);
-
 VOID
 NTAPI
 InbvInstallDisplayStringFilter(
@@ -51,10 +59,19 @@ BOOLEAN
 NTAPI
 InbvIsBootDriverInstalled(VOID);
 
-VOID
+//
+// Display Functions
+//
+BOOLEAN
 NTAPI
-InbvNotifyDisplayOwnershipLost(
-    IN PVOID Callback
+InbvDisplayString(
+    IN PCHAR String
+);
+
+BOOLEAN
+NTAPI
+InbvEnableDisplayString(
+    IN BOOLEAN Enable
 );
 
 BOOLEAN
@@ -86,16 +103,4 @@ InbvSolidColorFill(
     IN ULONG Color
 );
 
-VOID
-NTAPI
-VidCleanUp(VOID);
-
-BOOLEAN
-NTAPI
-VidResetDisplay(VOID);
-
-BOOLEAN
-NTAPI
-VidIsBootDriverInstalled(VOID);
-
 #endif
index d9a45d2..ce81b48 100644 (file)
@@ -1,20 +1,28 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/iofuncs.h
- * PURPOSE:         Definitions for exported I/O Manager Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    iofuncs.h
+
+Abstract:
+
+    Function definitions for the I/O Manager.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #ifndef _IOFUNCS_H
 #define _IOFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
-
-/* FUNCTION TYPES ************************************************************/
+//
+// Dependencies
+//
 
-/* PROTOTYPES ****************************************************************/
 
 #endif
 
index 50ce0a7..e816f0e 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/iotypes.h
- * PURPOSE:         Definitions for exported I/O Manager Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    iotypes.h
+
+Abstract:
+
+    Type definitions for the I/O Manager.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #ifndef _IOTYPES_H
 #define _IOTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* EXPORTED DATA *************************************************************/
 #ifndef NTOS_MODE_USER
+
+//
+// Kernel Exported Object Types
+//
 extern POBJECT_TYPE NTSYSAPI IoAdapterObjectType;
 extern POBJECT_TYPE NTSYSAPI IoDeviceHandlerObjectType;
 extern POBJECT_TYPE NTSYSAPI IoDeviceObjectType;
 extern POBJECT_TYPE NTSYSAPI IoDriverObjectType;
-#endif
 
-/* CONSTANTS *****************************************************************/
+#else
 
-#ifdef NTOS_MODE_USER
-/* Object Access Rights */
-#define SYMBOLIC_LINK_QUERY                 0x0001
-#define SYMBOLIC_LINK_ALL_ACCESS            STANDARD_RIGHTS_REQUIRED | 0x0001
+//
+// Symbolic Link Access Rights
+//
+#define SYMBOLIC_LINK_QUERY                     0x0001
+#define SYMBOLIC_LINK_ALL_ACCESS                STANDARD_RIGHTS_REQUIRED | 0x0001
 #endif
 
-/* File Result Flags */
-#define FILE_SUPERSEDED                     0x00000000
-#define FILE_OPENED                         0x00000001
-#define FILE_CREATED                        0x00000002
-#define FILE_OVERWRITTEN                    0x00000003
-#define FILE_EXISTS                         0x00000004
-#define FILE_DOES_NOT_EXIST                 0x00000005
-
-/* Pipe Flags */
-#define FILE_PIPE_BYTE_STREAM_TYPE          0x00000000
-#define FILE_PIPE_MESSAGE_TYPE              0x00000001
-#define FILE_PIPE_BYTE_STREAM_MODE          0x00000000
-#define FILE_PIPE_MESSAGE_MODE              0x00000001
-#define FILE_PIPE_QUEUE_OPERATION           0x00000000
-#define FILE_PIPE_COMPLETE_OPERATION        0x00000001
-#define FILE_PIPE_INBOUND                   0x00000000
-#define FILE_PIPE_OUTBOUND                  0x00000001
-#define FILE_PIPE_FULL_DUPLEX               0x00000002
-#define FILE_PIPE_CLIENT_END                0x00000000
-#define FILE_PIPE_SERVER_END                0x00000001
-
-/* File Attributes */
-#define FILE_ATTRIBUTE_VALID_FLAGS          0x00007fb7
-#define FILE_ATTRIBUTE_VALID_SET_FLAGS      0x000031a7
-
-/* File Flags */
-#define FILE_SUPERSEDE                      0x00000000
-#define FILE_OPEN                           0x00000001
-#define FILE_CREATE                         0x00000002
-#define FILE_OPEN_IF                        0x00000003
-#define FILE_OVERWRITE                      0x00000004
-#define FILE_OVERWRITE_IF                   0x00000005
-#define FILE_MAXIMUM_DISPOSITION            0x00000005
-
-/* File Types */
-#define FILE_DIRECTORY_FILE                 0x00000001
-#define FILE_WRITE_THROUGH                  0x00000002
-#define FILE_SEQUENTIAL_ONLY                0x00000004
-#define FILE_NO_INTERMEDIATE_BUFFERING      0x00000008
-#define FILE_SYNCHRONOUS_IO_ALERT           0x00000010
-#define FILE_SYNCHRONOUS_IO_NONALERT        0x00000020
-#define FILE_NON_DIRECTORY_FILE             0x00000040
-#define FILE_CREATE_TREE_CONNECTION         0x00000080
-#define FILE_COMPLETE_IF_OPLOCKED           0x00000100
-#define FILE_NO_EA_KNOWLEDGE                0x00000200
-#define FILE_OPEN_FOR_RECOVERY              0x00000400
-#define FILE_RANDOM_ACCESS                  0x00000800
-#define FILE_DELETE_ON_CLOSE                0x00001000
-#define FILE_OPEN_BY_FILE_ID                0x00002000
-#define FILE_OPEN_FOR_BACKUP_INTENT         0x00004000
-#define FILE_NO_COMPRESSION                 0x00008000
-#define FILE_RESERVE_OPFILTER               0x00100000
-#define FILE_OPEN_REPARSE_POINT             0x00200000
-#define FILE_OPEN_NO_RECALL                 0x00400000
-#define FILE_OPEN_FOR_FREE_SPACE_QUERY      0x00800000
-
-/* For DeviceMap DosDevice Type */
-#define DOSDEVICE_DRIVE_UNKNOWN             0
-#define DOSDEVICE_DRIVE_CALCULATE           1
-#define DOSDEVICE_DRIVE_REMOVABLE           2
-#define DOSDEVICE_DRIVE_FIXED               3
-#define DOSDEVICE_DRIVE_REMOTE              4
-#define DOSDEVICE_DRIVE_CDROM               5
-#define DOSDEVICE_DRIVE_RAMDISK             6
-
-/* Device Charactertics */
-#define FILE_REMOVABLE_MEDIA                0x00000001
-#define FILE_REMOTE_DEVICE                  0x00000010
-
-/* Device Object Extension Flags */
-#define DOE_UNLOAD_PENDING    0x1
-#define DOE_DELETE_PENDING    0x2
-#define DOE_REMOVE_PENDING    0x4
-#define DOE_REMOVE_PROCESSED  0x8
-#define DOE_START_PENDING     0x10
-
-/* Device Node Flags */
+//
+// NtCreateFile Result Flags
+//
+#define FILE_SUPERSEDED                         0x00000000
+#define FILE_OPENED                             0x00000001
+#define FILE_CREATED                            0x00000002
+#define FILE_OVERWRITTEN                        0x00000003
+#define FILE_EXISTS                             0x00000004
+#define FILE_DOES_NOT_EXIST                     0x00000005
+
+//
+// Pipe Flags
+//
+#define FILE_PIPE_BYTE_STREAM_TYPE              0x00000000
+#define FILE_PIPE_MESSAGE_TYPE                  0x00000001
+#define FILE_PIPE_BYTE_STREAM_MODE              0x00000000
+#define FILE_PIPE_MESSAGE_MODE                  0x00000001
+#define FILE_PIPE_QUEUE_OPERATION               0x00000000
+#define FILE_PIPE_COMPLETE_OPERATION            0x00000001
+#define FILE_PIPE_INBOUND                       0x00000000
+#define FILE_PIPE_OUTBOUND                      0x00000001
+#define FILE_PIPE_FULL_DUPLEX                   0x00000002
+#define FILE_PIPE_CLIENT_END                    0x00000000
+#define FILE_PIPE_SERVER_END                    0x00000001
+
+//
+// NtCreateFile Attributes
+//
+#define FILE_ATTRIBUTE_VALID_FLAGS              0x00007fb7
+#define FILE_ATTRIBUTE_VALID_SET_FLAGS          0x000031a7
+
+//
+// NtCreateFile OpenType Flags
+//
+#define FILE_SUPERSEDE                          0x00000000
+#define FILE_OPEN                               0x00000001
+#define FILE_CREATE                             0x00000002
+#define FILE_OPEN_IF                            0x00000003
+#define FILE_OVERWRITE                          0x00000004
+#define FILE_OVERWRITE_IF                       0x00000005
+#define FILE_MAXIMUM_DISPOSITION                0x00000005
+
+//
+// NtCreateFile Flags
+//
+#define FILE_DIRECTORY_FILE                     0x00000001
+#define FILE_WRITE_THROUGH                      0x00000002
+#define FILE_SEQUENTIAL_ONLY                    0x00000004
+#define FILE_NO_INTERMEDIATE_BUFFERING          0x00000008
+#define FILE_SYNCHRONOUS_IO_ALERT               0x00000010
+#define FILE_SYNCHRONOUS_IO_NONALERT            0x00000020
+#define FILE_NON_DIRECTORY_FILE                 0x00000040
+#define FILE_CREATE_TREE_CONNECTION             0x00000080
+#define FILE_COMPLETE_IF_OPLOCKED               0x00000100
+#define FILE_NO_EA_KNOWLEDGE                    0x00000200
+#define FILE_OPEN_FOR_RECOVERY                  0x00000400
+#define FILE_RANDOM_ACCESS                      0x00000800
+#define FILE_DELETE_ON_CLOSE                    0x00001000
+#define FILE_OPEN_BY_FILE_ID                    0x00002000
+#define FILE_OPEN_FOR_BACKUP_INTENT             0x00004000
+#define FILE_NO_COMPRESSION                     0x00008000
+#define FILE_RESERVE_OPFILTER                   0x00100000
+#define FILE_OPEN_REPARSE_POINT                 0x00200000
+#define FILE_OPEN_NO_RECALL                     0x00400000
+#define FILE_OPEN_FOR_FREE_SPACE_QUERY          0x00800000
+
+//
+// Device Charactertics
+//
+#define FILE_REMOVABLE_MEDIA                    0x00000001
+#define FILE_REMOTE_DEVICE                      0x00000010
+
+//
+// Device Object Extension Flags
+//
+#define DOE_UNLOAD_PENDING                      0x1
+#define DOE_DELETE_PENDING                      0x2
+#define DOE_REMOVE_PENDING                      0x4
+#define DOE_REMOVE_PROCESSED                    0x8
+#define DOE_START_PENDING                       0x10
+
+//
+// Device Node Flags
+//
 #define DNF_PROCESSED                           0x00000001
 #define DNF_STARTED                             0x00000002
 #define DNF_START_FAILED                        0x00000004
@@ -137,18 +158,26 @@ extern POBJECT_TYPE NTSYSAPI IoDriverObjectType;
 #define DNF_HAS_BOOT_CONFIG                     0x20000000
 #define DNF_BOOT_CONFIG_RESERVED                0x40000000
 #define DNF_HAS_PROBLEM                         0x80000000 // ???
-/* For UserFlags field */
-#define DNUF_DONT_SHOW_IN_UI    0x0002
-#define DNUF_NOT_DISABLEABLE    0x0008
 
-/* ENUMERATIONS **************************************************************/
+//
+// Device Node User Flags
+//
+#define DNUF_DONT_SHOW_IN_UI                    0x0002
+#define DNUF_NOT_DISABLEABLE                    0x0008
 
+//
+// I/O Completion Information Class for NtQueryIoCompletionInformation
+//
 typedef enum _IO_COMPLETION_INFORMATION_CLASS
 {
     IoCompletionBasicInformation
 } IO_COMPLETION_INFORMATION_CLASS;
 
 #ifdef NTOS_MODE_USER
+
+//
+// Hardware Interface Type
+//
 typedef enum _INTERFACE_TYPE
 {
     InterfaceTypeUndefined = -1,
@@ -171,6 +200,9 @@ typedef enum _INTERFACE_TYPE
     MaximumInterfaceType
 }INTERFACE_TYPE, *PINTERFACE_TYPE;
 
+//
+// File Information Classes for NtQueryInformationFile
+//
 typedef enum _FILE_INFORMATION_CLASS
 {
     FileDirectoryInformation = 1,
@@ -216,6 +248,9 @@ typedef enum _FILE_INFORMATION_CLASS
     FileMaximumInformation
 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
 
+//
+// File Information Classes for NtQueryInformationFileSystem
+//
 typedef enum _FSINFOCLASS
 {
     FileFsVolumeInformation = 1,
@@ -229,8 +264,12 @@ typedef enum _FSINFOCLASS
     FileFsDriverPathInformation,
     FileFsMaximumInformation
 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
+
 #endif
 
+//
+// Device Node States
+//
 typedef enum _PNP_DEVNODE_STATE
 {
     DeviceNodeUnspecified = 0x300,
@@ -257,9 +296,11 @@ typedef enum _PNP_DEVNODE_STATE
     MaxDeviceNodeState = 0x315,
 } PNP_DEVNODE_STATE;
 
-/* TYPES *********************************************************************/
-
 #ifdef NTOS_MODE_USER
+
+//
+// File Information structures for NtQueryInformationFile
+//
 typedef struct _FILE_BASIC_INFORMATION
 {
     LARGE_INTEGER CreationTime;
@@ -440,6 +481,9 @@ typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION
     LARGE_INTEGER ValidDataLength;
 } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
 
+//
+// File System Information structures for NtQueryInformationFile
+//
 typedef struct _FILE_FS_DEVICE_INFORMATION
 {
     DEVICE_TYPE DeviceType;
@@ -477,6 +521,9 @@ typedef struct _FILE_FS_VOLUME_INFORMATION
     WCHAR VolumeLabel[1];
 } FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION;
 
+//
+// Pipe Structures for IOCTL_PIPE_XXX
+//
 typedef struct _FILE_PIPE_WAIT_FOR_BUFFER
 {
     LARGE_INTEGER Timeout;
@@ -494,6 +541,9 @@ typedef struct _FILE_PIPE_PEEK_BUFFER
     CHAR Data[1];
 } FILE_PIPE_PEEK_BUFFER, *PFILE_PIPE_PEEK_BUFFER;
 
+//
+// I/O Status Block
+//
 typedef struct _IO_STATUS_BLOCK
 {
     union
@@ -504,6 +554,9 @@ typedef struct _IO_STATUS_BLOCK
     ULONG_PTR  Information;
 } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
 
+//
+// I/O Error Log Structures
+//
 typedef struct _IO_ERROR_LOG_PACKET
 {
     UCHAR MajorFunctionCode;
@@ -530,29 +583,37 @@ typedef struct _IO_ERROR_LOG_MESSAGE
     ULONG DriverNameOffset;
     IO_ERROR_LOG_PACKET EntryData;
 } IO_ERROR_LOG_MESSAGE, *PIO_ERROR_LOG_MESSAGE;
+
 #endif
 
+//
+// Parameters for NtCreateMailslotFile/NtCreateNamedPipeFile
+//
 typedef struct _MAILSLOT_CREATE_PARAMETERS
 {
-    ULONG           MailslotQuota;
-    ULONG           MaximumMessageSize;
-    LARGE_INTEGER   ReadTimeout;
-    BOOLEAN         TimeoutSpecified;
+    ULONG MailslotQuota;
+    ULONG MaximumMessageSize;
+    LARGE_INTEGER ReadTimeout;
+    BOOLEAN TimeoutSpecified;
 } MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS;
 
 typedef struct _NAMED_PIPE_CREATE_PARAMETERS
 {
-    ULONG           NamedPipeType;
-    ULONG           ReadMode;
-    ULONG           CompletionMode;
-    ULONG           MaximumInstances;
-    ULONG           InboundQuota;
-    ULONG           OutboundQuota;
-    LARGE_INTEGER   DefaultTimeout;
-    BOOLEAN         TimeoutSpecified;
+    ULONG NamedPipeType;
+    ULONG ReadMode;
+    ULONG CompletionMode;
+    ULONG MaximumInstances;
+    ULONG InboundQuota;
+    ULONG OutboundQuota;
+    LARGE_INTEGER DefaultTimeout;
+    BOOLEAN TimeoutSpecified;
 } NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS;
 
 #ifndef NTOS_MODE_USER
+
+//
+// I/O Timer Object
+//
 typedef struct _IO_TIMER
 {
     USHORT Type;
@@ -563,6 +624,9 @@ typedef struct _IO_TIMER
     PDEVICE_OBJECT DeviceObject;
 } IO_TIMER, *PIO_TIMER;
 
+//
+// Device Node
+//
 typedef struct _DEVICE_NODE
 {
     struct _DEVICE_NODE *Parent;
@@ -626,6 +690,9 @@ typedef struct _DEVICE_NODE
     ULONG DeletedChidren;
 } DEVICE_NODE, *PDEVICE_NODE;
 
+//
+// Resource Aribtrer Entry
+//
 typedef struct _PI_RESOURCE_ARBITER_ENTRY
 {
     LIST_ENTRY DeviceArbiterList;
@@ -639,7 +706,10 @@ typedef struct _PI_RESOURCE_ARBITER_ENTRY
     UCHAR State;
     UCHAR ResourcesChanged;
 } PI_RESOURCE_ARBITER_ENTRY, *PPI_RESOURCE_ARBITER_ENTRY;
-  
+
+//
+// Extended Device Object Extension Structure
+//
 typedef struct _EXTENDED_DEVOBJ_EXTENSION
 {
     CSHORT Type;
@@ -656,6 +726,9 @@ typedef struct _EXTENDED_DEVOBJ_EXTENSION
     struct _VPB *Vpb;
 } EXTENDED_DEVOBJ_EXTENSION, *PEXTENDED_DEVOBJ_EXTENSION;
 
+//
+// Private Driver Extension Descriptor
+//
 typedef struct _PRIVATE_DRIVER_EXTENSIONS
 {
     struct _PRIVATE_DRIVER_EXTENSIONS *Link;
@@ -663,6 +736,9 @@ typedef struct _PRIVATE_DRIVER_EXTENSIONS
     CHAR Extension[1];
 } PRIVATE_DRIVER_EXTENSIONS, *PPRIVATE_DRIVER_EXTENSIONS;
 
+//
+// Extended I/O Stack Location Structure
+//
 #if !defined(_ALPHA_)
 #include <pshpack4.h>
 #endif
@@ -910,22 +986,26 @@ typedef struct _EXTENDED_IO_STACK_LOCATION
 #endif
 #endif
 
-/* FUNCTION TYPES ************************************************************/
-
+//
+// APC Callback for NtCreateFile
+//
 typedef VOID
 (NTAPI *PIO_APC_ROUTINE)(
     IN PVOID ApcContext,
     IN PIO_STATUS_BLOCK IoStatusBlock,
     IN ULONG Reserved);
 
-/* I/O CONTROL CODES *********************************************************/
-
 #ifdef NTOS_MODE_USER
-/* Mailslots */
+
+//
+// Mailslot IOCTL Codes
+//
 #define FSCTL_MAILSLOT_PEEK             \
     CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA)
 
-/* Pipes */
+//
+// Pipe IOCTL Codes
+//
 #define FSCTL_PIPE_ASSIGN_EVENT         \
     CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
 #define FSCTL_PIPE_DISCONNECT           \
@@ -955,7 +1035,9 @@ typedef VOID
 #define FSCTL_PIPE_INTERNAL_READ_OVFLOW \
     CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA)
 
-/* Tapes */
+//
+// Tape IOCTL Codes
+//
 #define IOCTL_TAPE_ERASE                \
     CTL_CODE(FILE_DEVICE_TAPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 #define IOCTL_TAPE_PREPARE              \
@@ -979,6 +1061,6 @@ typedef VOID
 #define IOCTL_TAPE_CREATE_PARTITION     \
     CTL_CODE(FILE_DEVICE_TAPE, 10, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
-#endif
-#endif
+#endif // NTOS_MODE_USER
 
+#endif
index 295662d..9b84672 100644 (file)
@@ -1,19 +1,32 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/kdfuncs.h
- * PURPOSE:         Prototypes for Kernel Debugger Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    kdfuncs.h
+
+Abstract:
+
+    Function definitions for the Kernel Debugger.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _KDFUNCS_H
 #define _KDFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include "kdtypes.h"
 
-/* PROTOTYPES ****************************************************************/
-
+//
+// Port Functions
+//
 UCHAR
 NTAPI
 KdPollBreakIn(VOID);
index fd219b5..d6f0c5c 100644 (file)
@@ -1,25 +1,40 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/kdtypes.h
- * PURPOSE:         Definitions for Kernel Debugger Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    kdtypes.h
+
+Abstract:
+
+    Type definitions for the Kernel Debugger.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _KDTYPES_H
 #define _KDTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
+//
+// Debug Filter Levels
+//
 #define DPFLTR_ERROR_LEVEL                  0
 #define DPFLTR_WARNING_LEVEL                1
 #define DPFLTR_TRACE_LEVEL                  2
 #define DPFLTR_INFO_LEVEL                   3
 #define DPFLTR_MASK                         0x80000000
 
+//
+// Debug Status Codes
+//
 #define DBG_STATUS_CONTROL_C                1
 #define DBG_STATUS_SYSRQ                    2
 #define DBG_STATUS_BUGCHECK_FIRST           3
 #define DBG_STATUS_DEBUG_CONTROL            6
 #define DBG_STATUS_WORKER                   7
 
+//
+// DebugService Control Types
+//
 #define BREAKPOINT_PRINT                    1
 #define BREAKPOINT_PROMPT                   2
-/* ENUMERATIONS **************************************************************/
 
+//
+// Debug Control Codes for NtSystemDebugcontrol
+//
 typedef enum _DEBUG_CONTROL_CODE
 {
     DebugGetTraceInformation = 1,
@@ -43,8 +63,9 @@ typedef enum _DEBUG_CONTROL_CODE
     DebugDbgLoadSymbols
 } DEBUG_CONTROL_CODE;
 
-/* TYPES *********************************************************************/
-
+//
+// Kernel Debugger Port Definition
+//
 typedef struct _KD_PORT_INFORMATION
 {
     ULONG ComPort;
@@ -52,4 +73,4 @@ typedef struct _KD_PORT_INFORMATION
     ULONG BaseAddress;
 } KD_PORT_INFORMATION, *PKD_PORT_INFORMATION;
 
-#endif
+#endif // _KDTYPES_H
index e457afd..5eaa194 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/kefuncs.h
- * PURPOSE:         Prototypes for Kernel Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    kefuncs.h
+
+Abstract:
+
+    Functions definitions for the Kernel services.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _KEFUNCS_H
 #define _KEFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include "ketypes.h"
 
-/* PROTOTYPES ****************************************************************/
+//
+// APC Functions
+//
+VOID
+NTAPI
+KeInitializeApc(
+    IN PKAPC Apc,
+    IN PKTHREAD Thread,
+    IN KAPC_ENVIRONMENT TargetEnvironment,
+    IN PKKERNEL_ROUTINE KernelRoutine,
+    IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL,
+    IN PKNORMAL_ROUTINE NormalRoutine,
+    IN KPROCESSOR_MODE Mode,
+    IN PVOID Context
+);
 
-BOOLEAN
+VOID
 NTAPI
-KeAddSystemServiceTable(
-    PULONG_PTR Base,
-    PULONG Count OPTIONAL,
-    ULONG Limit,
-    PUCHAR Number,
-    ULONG Index
+KiDeliverApc(
+    IN KPROCESSOR_MODE PreviousMode,
+    IN PVOID Reserved,
+    IN PKTRAP_FRAME TrapFrame
 );
 
+//
+// Process/Thread Functions
+//
 VOID
 NTAPI
-KeInitializeApc(
-    IN PKAPC  Apc,
-    IN PKTHREAD  Thread,
-    IN KAPC_ENVIRONMENT  TargetEnvironment,
-    IN PKKERNEL_ROUTINE  KernelRoutine,
-    IN PKRUNDOWN_ROUTINE  RundownRoutine OPTIONAL,
-    IN PKNORMAL_ROUTINE  NormalRoutine,
-    IN KPROCESSOR_MODE  Mode,
-    IN PVOID  Context
+KeTerminateThread(
+    IN KPRIORITY Increment
+);
+
+BOOLEAN
+NTAPI
+KeIsAttachedProcess(
+    VOID
 );
 
 VOID
 NTAPI
-KeEnterKernelDebugger(VOID);
+KeSetEventBoostPriority(
+    IN PKEVENT Event,
+    IN PKTHREAD *Thread OPTIONAL
+);
 
+NTSTATUS
+NTAPI
+KeSetAffinityThread(
+    PKTHREAD Thread,
+    KAFFINITY Affinity
+);
+
+PKPROCESS
+NTAPI
+KeGetCurrentProcess(
+    VOID
+);
+
+BOOLEAN
+NTAPI
+KeAddSystemServiceTable(
+    PULONG_PTR Base,
+    PULONG Count OPTIONAL,
+    ULONG Limit,
+    PUCHAR Number,
+    ULONG Index
+);
+
+//
+// Spinlock Functions
+//
 VOID
 FASTCALL
 KiAcquireSpinLock(
@@ -53,41 +108,70 @@ KiReleaseSpinLock(
     PKSPIN_LOCK SpinLock
 );
 
+//
+// Interrupt Functions
+//
 VOID
 NTAPI
-KiDeliverApc(
-    IN KPROCESSOR_MODE PreviousMode,
-    IN PVOID Reserved,
-    IN PKTRAP_FRAME TrapFrame
+KeInitializeInterrupt(
+    PKINTERRUPT InterruptObject,
+    PKSERVICE_ROUTINE ServiceRoutine,
+    PVOID ServiceContext,
+    PKSPIN_LOCK SpinLock,
+    ULONG Vector,
+    KIRQL Irql,
+    KIRQL SynchronizeIrql,
+    KINTERRUPT_MODE InterruptMode,
+    BOOLEAN ShareVector,
+    CHAR ProcessorNumber,
+    BOOLEAN FloatingSave
 );
 
-VOID
+BOOLEAN
+NTAPI
+KeConnectInterrupt(
+    PKINTERRUPT InterruptObject
+);
+
+BOOLEAN
 NTAPI
-KiDispatchInterrupt(VOID);
+KeDisconnectInterrupt(
+    PKINTERRUPT InterruptObject
+);
 
 VOID
 NTAPI
-KeTerminateThread(
-    IN KPRIORITY        Increment
+KiDispatchInterrupt(
+    VOID
 );
 
-BOOLEAN
+VOID
 NTAPI
-KeIsAttachedProcess(VOID);
+KiCoprocessorError(
+    VOID
+);
 
-BOOLEAN
+VOID
 NTAPI
-KeIsExecutingDpc(
+KiUnexpectedInterrupt(
     VOID
 );
 
 VOID
 NTAPI
-KeSetEventBoostPriority(
-    IN PKEVENT Event,
-    IN PKTHREAD *Thread OPTIONAL
+KeEnterKernelDebugger(
+    VOID
 );
 
+BOOLEAN
+NTAPI
+KeIsExecutingDpc(
+    VOID
+);
+
+//
+// ARC Configuration Functions
+//
 PCONFIGURATION_COMPONENT_DATA
 NTAPI
 KeFindConfigurationNextEntry(
@@ -107,6 +191,9 @@ KeFindConfigurationEntry(
     IN PULONG ComponentKey OPTIONAL
 );
 
+//
+// Low-level Hardware/CPU Control Functions
+//
 VOID
 NTAPI
 KeFlushEntireTb(
@@ -116,20 +203,15 @@ KeFlushEntireTb(
 
 VOID
 NTAPI
-KiCoprocessorError(
-    VOID
-);
-
-VOID
-NTAPI
-KiUnexpectedInterrupt(
-    VOID
+KeSetDmaIoCoherency(
+    IN ULONG Coherency
 );
 
 VOID
-NTAPI
-KeSetDmaIoCoherency(
-    IN ULONG Coherency
+KeSetGdtSelector(
+    ULONG Entry,
+    ULONG Value1,
+    ULONG Value2
 );
 
 VOID
@@ -138,13 +220,16 @@ KeSetProfileIrql(
     IN KIRQL ProfileIrql
 );
 
-NTSTATUS
+VOID
 NTAPI
-KeSetAffinityThread(
-    PKTHREAD Thread,
-    KAFFINITY Affinity
+KeSetTimeIncrement(
+    IN ULONG MaxIncrement,
+    IN ULONG MinIncrement
 );
 
+//
+// Misc. Functions
+//
 NTSTATUS
 NTAPI
 KeUserModeCallback(
@@ -155,58 +240,10 @@ KeUserModeCallback(
     OUT PULONG OutputLength
 );
 
-VOID
-NTAPI
-KeSetTimeIncrement(
-    IN ULONG MaxIncrement,
-    IN ULONG MinIncrement
-);
-
-VOID
-NTAPI
-KeInitializeInterrupt(
-    PKINTERRUPT InterruptObject,
-    PKSERVICE_ROUTINE ServiceRoutine,
-    PVOID ServiceContext,
-    PKSPIN_LOCK SpinLock,
-    ULONG Vector,
-    KIRQL Irql,
-    KIRQL SynchronizeIrql,
-    KINTERRUPT_MODE InterruptMode,
-    BOOLEAN ShareVector,
-    CHAR ProcessorNumber,
-    BOOLEAN FloatingSave
-);
-
-BOOLEAN
-NTAPI
-KeConnectInterrupt(
-    PKINTERRUPT InterruptObject
-);
-
-BOOLEAN
-NTAPI
-KeDisconnectInterrupt(
-    PKINTERRUPT InterruptObject
-);
-
-PKPROCESS
-NTAPI
-KeGetCurrentProcess(
-    VOID
-);
-
-VOID
-KeSetGdtSelector(
-    ULONG Entry,
-    ULONG Value1,
-    ULONG Value2
-);
-
 NTSTATUS
 NTAPI
 KeRaiseUserException(
     IN NTSTATUS ExceptionCode
-    );
+);
 
 #endif
index 2f89577..50a197a 100644 (file)
@@ -1,51 +1,94 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/ketypes.h
- * PURPOSE:         Definitions for Kernel Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    lpctypes.h
+
+Abstract:
+
+    Type definitions for the Loader.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _KETYPES_H
 #define _KETYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #ifndef NTOS_MODE_USER
 #include <arc/arc.h>
 #include "arch/ketypes.h"
 #endif
 
-/* CONSTANTS *****************************************************************/
-#define SSDT_MAX_ENTRIES 4
-#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
+//
+// Context Record Flags
+//
+#define CONTEXT_DEBUGGER                (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
+
+//
+// Maximum System Descriptor Table Entries
+//
+#define SSDT_MAX_ENTRIES                4
 
 #ifdef NTOS_MODE_USER
-#define SharedUserData ((KUSER_SHARED_DATA * CONST) USER_SHARED_DATA)
-#define MAX_WOW64_SHARED_ENTRIES 16
-#define PROCESSOR_FEATURE_MAX 64
-#endif
 
-/* ENUMERATIONS **************************************************************/
+//
+// KPROCESSOR_MODE Type
+//
+typedef CCHAR KPROCESSOR_MODE;
 
-#ifdef NTOS_MODE_USER
+//
+// Dereferencable pointer to KUSER_SHARED_DATA in User-Mode
+//
+#define SharedUserData                  ((KUSER_SHARED_DATA *CONST)USER_SHARED_DATA)
+
+//
+// Maximum WOW64 Entries in KUSER_SHARED_DATA
+//
+#define MAX_WOW64_SHARED_ENTRIES        16
+
+//
+// Maximum Processor Features supported in KUSER_SHARED_DATA
+//
+#define PROCESSOR_FEATURE_MAX           64
+
+//
+// Event Types
+//
 typedef enum _EVENT_TYPE
 {
     NotificationEvent,
     SynchronizationEvent
 } EVENT_TYPE;
 
+//
+// Timer Types
+//
 typedef enum _TIMER_TYPE
 {
     NotificationTimer,
     SynchronizationTimer
 } TIMER_TYPE;
 
+//
+// Wait Types
+//
 typedef enum _WAIT_TYPE
 {
     WaitAll,
     WaitAny
 } WAIT_TYPE;
 
+//
+// Processor Execution Modes
+//
 typedef enum _MODE
 {
     KernelMode,
@@ -53,6 +96,9 @@ typedef enum _MODE
     MaximumMode
 } MODE;
 
+//
+// Wait Reasons
+//
 typedef enum _KWAIT_REASON
 {
     Executive,
@@ -92,6 +138,9 @@ typedef enum _KWAIT_REASON
     MaximumWaitReason
 } KWAIT_REASON;
 
+//
+// Profiling Sources
+//
 typedef enum _KPROFILE_SOURCE
 {
     ProfileTime,
@@ -121,6 +170,9 @@ typedef enum _KPROFILE_SOURCE
     ProfileMaximum
 } KPROFILE_SOURCE;
 
+//
+// NT Product and Architecture Types
+//
 typedef enum _NT_PRODUCT_TYPE
 {
     NtProductWinNt = 1,
@@ -134,8 +186,12 @@ typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE
     NEC98x86,
     EndAlternatives
 } ALTERNATIVE_ARCHITECTURE_TYPE;
+
 #endif
 
+//
+// Thread States
+//
 typedef enum _KTHREAD_STATE
 {
     Initialized,
@@ -148,6 +204,9 @@ typedef enum _KTHREAD_STATE
     DeferredReady,
 } KTHREAD_STATE, *PKTHREAD_STATE;
 
+//
+// Process States
+//
 typedef enum _KPROCESS_STATE
 {
     ProcessInMemory,
@@ -155,27 +214,31 @@ typedef enum _KPROCESS_STATE
     ProcessInTransition,
 } KPROCESS_STATE, *PKPROCESS_STATE;
 
-/* FUNCTION TYPES ************************************************************/
-
 #ifdef NTOS_MODE_USER
+
+//
+// APC Normal Routine
+//
 typedef VOID
 (NTAPI *PKNORMAL_ROUTINE)(
-    IN PVOID  NormalContext,
-    IN PVOID  SystemArgument1,
-    IN PVOID  SystemArgument2);
-
+    IN PVOID NormalContext,
+    IN PVOID SystemArgument1,
+    IN PVOID SystemArgument2
+);
+
+//
+// Timer Routine
+//
 typedef VOID
 (NTAPI *PTIMER_APC_ROUTINE)(
-    IN PVOID  TimerContext,
-    IN ULONG  TimerLowValue,
-    IN LONG  TimerHighValue);
-#endif
-
-/* TYPES *********************************************************************/
-
-#ifdef NTOS_MODE_USER
-typedef CCHAR KPROCESSOR_MODE;
-
+    IN PVOID TimerContext,
+    IN ULONG TimerLowValue,
+    IN LONG TimerHighValue
+);
+
+//
+// System Time Structure
+//
 typedef struct _KSYSTEM_TIME
 {
     ULONG LowPart;
@@ -183,6 +246,9 @@ typedef struct _KSYSTEM_TIME
     LONG High2Time;
 } KSYSTEM_TIME, *PKSYSTEM_TIME;
 
+//
+// Shared Kernel User Data
+//
 typedef struct _KUSER_SHARED_DATA
 {
     ULONG TickCountLowDeprecated;
@@ -231,9 +297,12 @@ typedef struct _KUSER_SHARED_DATA
     ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
     ULONG UserModeGlobalLogging;
 } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
-#endif
 
-#ifndef NTOS_MODE_USER
+#else
+
+//
+// ARC Component Data
+//
 typedef struct _CONFIGURATION_COMPONENT_DATA
 {
     struct _CONFIGURATION_COMPONENT_DATA *Parent;
@@ -242,6 +311,9 @@ typedef struct _CONFIGURATION_COMPONENT_DATA
     CONFIGURATION_COMPONENT Component;
 } CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
 
+//
+// APC Environment Types
+//
 typedef enum _KAPC_ENVIRONMENT
 {
     OriginalApcEnvironment,
@@ -249,20 +321,26 @@ typedef enum _KAPC_ENVIRONMENT
     CurrentApcEnvironment
 } KAPC_ENVIRONMENT;
 
+//
+// Kernel Memory Node (FIXME: mmtypes?
+//
 typedef struct _KNODE
 {
-   SLIST_HEADER DeadStackList;
-   SLIST_HEADER PfnDereferenceSListHead;
-   ULONG ProcessorMask;
-   ULONG Color;
-   UCHAR Seed;
-   UCHAR NodeNumber;
-   ULONG Flags;
-   ULONG MmShiftedColor;
-   ULONG FreeCount[2];
-   struct _SINGLE_LIST_ENTRY *PfnDeferredList;
+    SLIST_HEADER DeadStackList;
+    SLIST_HEADER PfnDereferenceSListHead;
+    ULONG ProcessorMask;
+    ULONG Color;
+    UCHAR Seed;
+    UCHAR NodeNumber;
+    ULONG Flags;
+    ULONG MmShiftedColor;
+    ULONG FreeCount[2];
+    struct _SINGLE_LIST_ENTRY *PfnDeferredList;
 } KNODE, *PKNODE;
 
+//
+// Kernel Profile Object (FIXME: Fix with new defs)
+//
 typedef struct _KPROFILE
 {
     CSHORT Type;
@@ -278,6 +356,9 @@ typedef struct _KPROFILE
     struct _KPROCESS *Process;
 } KPROFILE, *PKPROFILE;
 
+//
+// Kernel Interrupt Object (FIXME: Verify)
+//
 typedef struct _KINTERRUPT
 {
     CSHORT Type;
@@ -302,6 +383,9 @@ typedef struct _KINTERRUPT
     ULONG DispatchCode[106];
 } KINTERRUPT, *PKINTERRUPT;
 
+//
+// Kernel Event Pair Object
+//
 typedef struct _KEVENT_PAIR
 {
     CSHORT Type;
@@ -310,6 +394,9 @@ typedef struct _KEVENT_PAIR
     KEVENT HighEvent;
 } KEVENT_PAIR, *PKEVENT_PAIR;
 
+//
+// Kernel No Execute Options
+//
 typedef struct _KEXECUTE_OPTIONS
 {
     UCHAR ExecuteDisable:1;
@@ -321,6 +408,9 @@ typedef struct _KEXECUTE_OPTIONS
     UCHAR Spare:2;
 } KEXECUTE_OPTIONS, *PKEXECUTE_OPTIONS;
 
+//
+// Kernel Object Types
+//
 typedef enum _KOBJECTS
 {
     EventNotificationObject = 0,
@@ -351,8 +441,10 @@ typedef enum _KOBJECTS
     MaximumKernelObject = 25
 } KOBJECTS;
 
+//
+// Kernel Thread (KTHREAD)
+//
 #include <pshpack1.h>
-
 typedef struct _KTHREAD
 {
     DISPATCHER_HEADER DispatcherHeader;                 /* 00 */
@@ -528,9 +620,11 @@ typedef struct _KTHREAD
     LIST_ENTRY ThreadListEntry;                         /* 1A8 */
     PVOID SListFaultAddress;                            /* 1B0 */
 } KTHREAD;                                              /* sizeof: 1B4 */
-
 #include <poppack.h>
 
+//
+// Kernel Process (KPROCESS)
+//
 typedef struct _KPROCESS
 {
     DISPATCHER_HEADER     Header;                    /* 000 */
@@ -575,6 +669,9 @@ typedef struct _KPROCESS
     LIST_ENTRY            ProcessListEntry;          /* 070 */
 } KPROCESS;
 
+//
+// System Service Table Descriptor
+//
 typedef struct _KSERVICE_TABLE_DESCRIPTOR
 {
     PULONG_PTR Base;
@@ -585,21 +682,34 @@ typedef struct _KSERVICE_TABLE_DESCRIPTOR
 #endif
     PUCHAR Number;
 } KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR;
-#endif /* !NTOS_MODE_USER */
 
-/* EXPORTED DATA *************************************************************/
-#ifndef NTOS_MODE_USER
-extern CHAR NTSYSAPI KeNumberProcessors;
+//
+// Exported Loader Parameter Block
+//
 extern LOADER_PARAMETER_BLOCK NTSYSAPI KeLoaderBlock;
-extern ULONG NTSYSAPI KeDcacheFlushCount;
-extern ULONG NTSYSAPI KeIcacheFlushCount;
+
+//
+// Exported Hardware Data
+//
 extern KAFFINITY NTSYSAPI KeActiveProcessors;
-extern ULONG NTSYSAPI KiDmaIoCoherency; /* RISC Architectures only */
+extern CHAR NTSYSAPI KeNumberProcessors;
+extern ULONG NTSYSAPI KiDmaIoCoherency;
 extern ULONG NTSYSAPI KeMaximumIncrement;
 extern ULONG NTSYSAPI KeMinimumIncrement;
+extern ULONG NTSYSAPI KeDcacheFlushCount;
+extern ULONG NTSYSAPI KeIcacheFlushCount;
+
+//
+// Exported NT Build Number (FIXME: move?)
+//
 extern ULONG NTSYSAPI NtBuildNumber;
+
+//
+// Exported System Service Descriptor Tables
+//
 extern KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTable[SSDT_MAX_ENTRIES];
 extern KSERVICE_TABLE_DESCRIPTOR NTSYSAPI KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES];
-#endif
 
-#endif
+#endif // !NTOS_MODE_USER
+
+#endif // _KETYPES_H
index 6776c00..e8b899e 100644 (file)
@@ -1,30 +1,40 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/ldrfuncs.h
- * PURPOSE:         Defintions for Loader Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ldrfuncs.h
+
+Abstract:
+
+    Functions definitions for the Loader.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _LDRFUNCS_H
 #define _LDRFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include "ldrtypes.h"
-/* FIXME: this needs be implemented in the w32api ddk */
 #if defined(_MSC_VER) && !defined(NTOS_MODE_USER)
 #include <ntimage.h>
 #endif
 
-/* FUNCTION TYPES ************************************************************/
-
-/* PROTOTYPES ****************************************************************/
-
+//
+// Resource Functions
+//
 NTSTATUS
 NTAPI
 LdrAccessResource(
-    IN  PVOID BaseAddress,
-    IN  PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
+    IN PVOID BaseAddress,
+    IN PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
     OUT PVOID *Resource OPTIONAL,
     OUT PULONG Size OPTIONAL
 );
@@ -32,9 +42,9 @@ LdrAccessResource(
 NTSTATUS
 NTAPI
 LdrFindResource_U(
-    IN  PVOID BaseAddress,
-    IN  PLDR_RESOURCE_INFO ResourceInfo,
-    IN  ULONG Level,
+    IN PVOID BaseAddress,
+    IN PLDR_RESOURCE_INFO ResourceInfo,
+    IN ULONG Level,
     OUT PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry
 );
 
@@ -47,6 +57,9 @@ LdrFindResourceDirectory_U(
     OUT PIMAGE_RESOURCE_DIRECTORY *ResourceDirectory
 );
 
+//
+// Misc. Functions
+//
 NTSTATUS
 NTAPI
 LdrGetProcedureAddress(
index 5f74d5d..664482a 100644 (file)
@@ -1,55 +1,72 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/ldrtypes.h
- * PURPOSE:         Definitions for Loader Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ldrtypes.h
+
+Abstract:
+
+    Type definitions for the Loader.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _LDRTYPES_H
 #define _LDRTYPES_H
 
-/* DEPENDENCIES **************************************************************/
-
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
-#define RESOURCE_TYPE_LEVEL      0
-#define RESOURCE_NAME_LEVEL      1
-#define RESOURCE_LANGUAGE_LEVEL  2
-#define RESOURCE_DATA_LEVEL      3
-
-/* LDR_DATA_TABLE_ENTRY Flags */
-#define LDRP_STATIC_LINK                  0x00000002
-#define LDRP_IMAGE_DLL                    0x00000004
-#define LDRP_LOAD_IN_PROGRESS             0x00001000
-#define LDRP_UNLOAD_IN_PROGRESS           0x00002000
-#define LDRP_ENTRY_PROCESSED              0x00004000
-#define LDRP_ENTRY_INSERTED               0x00008000
-#define LDRP_CURRENT_LOAD                 0x00010000
-#define LDRP_FAILED_BUILTIN_LOAD          0x00020000
-#define LDRP_DONT_CALL_FOR_THREADS        0x00040000
-#define LDRP_PROCESS_ATTACH_CALLED        0x00080000
-#define LDRP_DEBUG_SYMBOLS_LOADED         0x00100000
-#define LDRP_IMAGE_NOT_AT_BASE            0x00200000
-#define LDRP_COR_IMAGE                    0x00400000
-#define LDR_COR_OWNS_UNMAP                0x00800000
-#define LDRP_REDIRECTED                   0x10000000
-
-/* ENUMERATIONS **************************************************************/
-
-/* TYPES *********************************************************************/
+//
+// Dependencies
+//
+
+//
+// Resource Type Levels
+//
+#define RESOURCE_TYPE_LEVEL             0
+#define RESOURCE_NAME_LEVEL             1
+#define RESOURCE_LANGUAGE_LEVEL         2
+#define RESOURCE_DATA_LEVEL             3
+
+//
+// Loader Data Table Entry Flags
+//
+#define LDRP_STATIC_LINK                0x00000002
+#define LDRP_IMAGE_DLL                  0x00000004
+#define LDRP_LOAD_IN_PROGRESS           0x00001000
+#define LDRP_UNLOAD_IN_PROGRESS         0x00002000
+#define LDRP_ENTRY_PROCESSED            0x00004000
+#define LDRP_ENTRY_INSERTED             0x00008000
+#define LDRP_CURRENT_LOAD               0x00010000
+#define LDRP_FAILED_BUILTIN_LOAD        0x00020000
+#define LDRP_DONT_CALL_FOR_THREADS      0x00040000
+#define LDRP_PROCESS_ATTACH_CALLED      0x00080000
+#define LDRP_DEBUG_SYMBOLS_LOADED       0x00100000
+#define LDRP_IMAGE_NOT_AT_BASE          0x00200000
+#define LDRP_COR_IMAGE                  0x00400000
+#define LDR_COR_OWNS_UNMAP              0x00800000
+#define LDRP_REDIRECTED                 0x10000000
+
+//
+// Loader Data stored in the PEB
+//
 typedef struct _PEB_LDR_DATA
 {
-    ULONG               Length;
-    BOOLEAN             Initialized;
-    PVOID               SsHandle;
-    LIST_ENTRY          InLoadOrderModuleList;
-    LIST_ENTRY          InMemoryOrderModuleList;
-    LIST_ENTRY          InInitializationOrderModuleList;
-    PVOID               EntryInProgress;
+    ULONG Length;
+    BOOLEAN Initialized;
+    PVOID SsHandle;
+    LIST_ENTRY InLoadOrderModuleList;
+    LIST_ENTRY InMemoryOrderModuleList;
+    LIST_ENTRY InInitializationOrderModuleList;
+    PVOID EntryInProgress;
 } PEB_LDR_DATA, *PPEB_LDR_DATA;
 
+//
+// Loader Data Table Entry
+//
 typedef struct _LDR_DATA_TABLE_ENTRY
 {
     LIST_ENTRY InLoadOrderModuleList;
@@ -78,6 +95,9 @@ typedef struct _LDR_DATA_TABLE_ENTRY
     PVOID PatchInformation;
 } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
 
+//
+// Loader Resource Information
+//
 typedef struct _LDR_RESOURCE_INFO
 {
     ULONG Type;
index 453b48f..78f9be2 100644 (file)
@@ -1,20 +1,36 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/lpctypes.h
- * PURPOSE:         Definitions for Local Procedure Call Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    lpctypes.h
+
+Abstract:
+
+    Type definitions for the Loader.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _LPCTYPES_H
 #define _LPCTYPES_H
 
-/* DEPENDENCIES **************************************************************/
-
-/* EXPORTED DATA *************************************************************/
+//
+// Dependencies
+//
 
-/* ENUMERATIONS **************************************************************/
+//
+// Maximum message size that can be sent through an LPC Port without a section
+//
+#define PORT_MAXIMUM_MESSAGE_LENGTH     256
 
+//
+// LPC Message Types
+//
 typedef enum _LPC_TYPE
 {
     LPC_NEW_MESSAGE,
@@ -32,16 +48,20 @@ typedef enum _LPC_TYPE
     LPC_MAXIMUM
 } LPC_TYPE;
 
+//
+// Information Classes for NtQueryInformationPort
+//
 typedef enum _PORT_INFORMATION_CLASS
 {
     PortNoInformation
 } PORT_INFORMATION_CLASS;
 
-/* TYPES *********************************************************************/
-
 #ifdef NTOS_MODE_USER
 
-#if defined(USE_LPC6432)
+//
+// Portable LPC Types for 32/64-bit compatibility
+//
+#ifdef USE_LPC6432
 #define LPC_CLIENT_ID CLIENT_ID64
 #define LPC_SIZE_T ULONGLONG
 #define LPC_PVOID ULONGLONG
@@ -53,6 +73,9 @@ typedef enum _PORT_INFORMATION_CLASS
 #define LPC_HANDLE HANDLE
 #endif
 
+//
+// LPC Port Message
+//
 typedef struct _PORT_MESSAGE
 {
     union
@@ -86,6 +109,9 @@ typedef struct _PORT_MESSAGE
     };
 } PORT_MESSAGE, *PPORT_MESSAGE;
 
+//
+// Local and Remove Port Views
+//
 typedef struct _PORT_VIEW
 {
     ULONG Length;
@@ -103,6 +129,9 @@ typedef struct _REMOTE_PORT_VIEW
     LPC_PVOID ViewBase;
 } REMOTE_PORT_VIEW, *PREMOTE_PORT_VIEW;
 
+//
+// LPC Kernel-Mode Message Structures defined for size only
+//
 typedef struct _LPCP_MESSAGE
 {
     UCHAR Data[0x14];
@@ -114,9 +143,11 @@ typedef struct _LPCP_CONNECTION_MESSAGE
     UCHAR Data[0x2C];
 } LPCP_CONNECTION_MESSAGE;
 
-/* Kernel-Mode Structures */
 #else
 
+//
+// LPC Paged and Non-Paged Port Queues
+//
 typedef struct _LPCP_NONPAGED_PORT_QUEUE
 {
     KSEMAPHORE Semaphore;
@@ -130,6 +161,9 @@ typedef struct _LPCP_PORT_QUEUE
     LIST_ENTRY ReceiveHead;
 } LPCP_PORT_QUEUE, *PLPCP_PORT_QUEUE;
 
+//
+// LPC Port Object
+//
 typedef struct _LPCP_PORT_OBJECT
 {
     ULONG Length;
@@ -150,6 +184,9 @@ typedef struct _LPCP_PORT_OBJECT
     LIST_ENTRY LpcDataInfoChainHead;
 } LPCP_PORT_OBJECT, *PLPCP_PORT_OBJECT;
 
+//
+// LPC Kernel-Mode Message Structures
+//
 typedef struct _LPCP_MESSAGE
 {
     union
@@ -174,8 +211,12 @@ typedef struct _LPCP_CONNECTION_MESSAGE
     PVOID SectionToMap;
     REMOTE_PORT_VIEW ServerView;
 } LPCP_CONNECTION_MESSAGE, *PLPCP_CONNECTION_MESSAGE;
+
 #endif
 
+//
+// Hard Error LPC Message (FIXME: should go in extypes.h?)
+//
 typedef struct _HARDERROR_MSG
 {
     PORT_MESSAGE h;
@@ -188,28 +229,36 @@ typedef struct _HARDERROR_MSG
     ULONG Parameters[MAXIMUM_HARDERROR_PARAMETERS];
 } HARDERROR_MSG, *PHARDERROR_MSG;
 
+//
+// Client Died LPC Message (FIXME: should go in pstypes.h?)
+//
 typedef struct _CLIENT_DIED_MSG
 {
     PORT_MESSAGE h;
     LARGE_INTEGER CreateTime;
 } CLIENT_DIED_MSG, *PCLIENT_DIED_MSG;
 
-/* CONSTANTS *****************************************************************/
-
-#define PORT_MAXIMUM_MESSAGE_LENGTH 256
-
+//
+// Maximum total Kernel-Mode LPC Message Structure Size
+//
 #define LPCP_MAX_MESSAGE_SIZE \
     ROUND_UP(PORT_MAXIMUM_MESSAGE_LENGTH + \
     sizeof(LPCP_MESSAGE) + \
     sizeof(LPCP_CONNECTION_MESSAGE), 16)
 
+//
+// Maximum actual LPC Message Length
+//
 #define LPC_MAX_MESSAGE_LENGTH \
     (LPCP_MAX_MESSAGE_SIZE - \
     FIELD_OFFSET(LPCP_MESSAGE, Request))
 
+//
+// Maximum actual size of LPC Message Data
+//
 #define LPC_MAX_DATA_LENGTH \
     (LPC_MAX_MESSAGE_LENGTH - \
     sizeof(PORT_MESSAGE) - \
     sizeof(LPCP_CONNECTION_MESSAGE))
 
-#endif
+#endif // _LPCTYPES_H
index 7930222..596cc0b 100644 (file)
@@ -1,18 +1,31 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/halfuncs.h
- * PURPOSE:         Prototypes for exported HAL Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    mmfuncs.h
+
+Abstract:
+
+    Functions definitions for the Memory Manager.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _MMFUNCS_H
 #define _MMFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
-
+//
+// Dependencies
+//
 
-/* PROTOTYPES ****************************************************************/
+//
+// Section Functions
+//
 NTSTATUS
 NTAPI
 MmUnmapViewOfSection(
index 438ce28..ed9a2c6 100644 (file)
@@ -1,34 +1,61 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/mmtypes.h
- * PURPOSE:         Definitions for Memory Manager Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    mmtypes.h
+
+Abstract:
+
+    Type definitions for the Memory Manager
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _MMTYPES_H
 #define _MMTYPES_H
 
-/* DEPENDENCIES **************************************************************/
-#include "arch/mmtypes.h"
+//
+// Dependencies
+//
+#include <arch/mmtypes.h>
 
-/* EXPORTED DATA *************************************************************/
+//
+// Page-Rounding Macros
+//
+#define PAGE_ROUND_DOWN(x) (((ULONG)x)&(~(PAGE_SIZE-1)))
+#define PAGE_ROUND_UP(x)    \
+    ( (((ULONG)x)%PAGE_SIZE) ? ((((ULONG)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG)x) )
+
+//
+// Macro for generating pool tags
+//
+#define TAG(A, B, C, D)     (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
 
-/* CONSTANTS *****************************************************************/
 #ifdef NTOS_MODE_USER
-#define SEC_BASED       0x00200000
-#define SEC_NO_CHANGE   0x00400000
-#endif
 
-/* ENUMERATIONS **************************************************************/
+//
+// Section Flags for NtCreateSection
+//
+#define SEC_BASED           0x00200000
+#define SEC_NO_CHANGE       0x00400000
 
-#ifdef NTOS_MODE_USER
+//
+// Section Inherit Flags for NtCreateSection
+//
 typedef enum _SECTION_INHERIT
 {
     ViewShare = 1,
     ViewUnmap = 2
 } SECTION_INHERIT;
 
+//
+// Pool Types
+//
 typedef enum _POOL_TYPE
 {
     NonPagedPool,
@@ -49,6 +76,9 @@ typedef enum _POOL_TYPE
 } POOL_TYPE;
 #endif
 
+//
+// Per Processor Non Paged Lookaside List IDs
+//
 typedef enum _PP_NPAGED_LOOKASIDE_NUMBER
 {
     LookasideSmallIrpList = 0,
@@ -61,6 +91,9 @@ typedef enum _PP_NPAGED_LOOKASIDE_NUMBER
     LookasideMaximumList = 7
 } PP_NPAGED_LOOKASIDE_NUMBER;
 
+//
+// Memory Information Classes for NtQueryVirtualMemory
+//
 typedef enum _MEMORY_INFORMATION_CLASS
 {
     MemoryBasicInformation,
@@ -69,15 +102,20 @@ typedef enum _MEMORY_INFORMATION_CLASS
     MemoryBasicVlmInformation
 } MEMORY_INFORMATION_CLASS;
 
+//
+// Section Information Clasess for NtQuerySection
+//
 typedef enum _SECTION_INFORMATION_CLASS
 {
     SectionBasicInformation,
     SectionImageInformation,
 } SECTION_INFORMATION_CLASS;
 
-/* TYPES *********************************************************************/
-
 #ifdef NTOS_MODE_USER
+
+//
+// Virtual Memory Counters
+//
 typedef struct _VM_COUNTERS
 {
     SIZE_T PeakVirtualSize;
@@ -110,18 +148,27 @@ typedef struct _VM_COUNTERS_EX
 } VM_COUNTERS_EX, *PVM_COUNTERS_EX;
 #endif
 
+//
+// List of Working Sets
+//
 typedef struct _MEMORY_WORKING_SET_LIST
 {
     ULONG NumberOfPages;
     ULONG WorkingSetList[1];
 } MEMORY_WORKING_SET_LIST, *PMEMORY_WORKING_SET_LIST;
 
+//
+// Memory Information Structures for NtQueryVirtualMemory
+//
 typedef struct
 {
     UNICODE_STRING SectionFileName;
-    WCHAR          NameBuffer[ANYSIZE_ARRAY];
+    WCHAR NameBuffer[ANYSIZE_ARRAY];
 } MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME;
 
+//
+// Section Information Structures for NtQuerySection
+//
 typedef struct _SECTION_BASIC_INFORMATION
 {
     PVOID           BaseAddress;
@@ -150,7 +197,10 @@ typedef struct _SECTION_IMAGE_INFORMATION
 } SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
 
 #ifndef NTOS_MODE_USER
-/* FIXME: Forced to do this for now, because of EPROCESS, will go away before 0.3.0 */
+
+//
+// FIXME: REACTOS SPECIFIC HACK IN EPROCESS
+//
 typedef struct _MADDRESS_SPACE
 {
     struct _MEMORY_AREA *MemoryAreaRoot;
@@ -161,6 +211,9 @@ typedef struct _MADDRESS_SPACE
     ULONG PageTableRefCountTableSize;
 } MADDRESS_SPACE, *PMADDRESS_SPACE;
 
+//
+// Generic Address Range Structure
+//
 typedef struct _ADDRESS_RANGE
 {
     ULONG BaseAddrLow;
@@ -170,6 +223,9 @@ typedef struct _ADDRESS_RANGE
     ULONG Type;
 } ADDRESS_RANGE, *PADDRESS_RANGE;
 
+//
+// Node in Memory Manager's AVL Table
+//
 typedef struct _MMADDRESS_NODE
 {
     union
@@ -183,6 +239,9 @@ typedef struct _MMADDRESS_NODE
     ULONG EndingVpn;
 } MMADDRESS_NODE, *PMMADDRESS_NODE;
 
+//
+// Memory Manager AVL Table for VADs and other descriptors
+//
 typedef struct _MM_AVL_TABLE
 {
     MMADDRESS_NODE BalancedRoot;
@@ -193,6 +252,9 @@ typedef struct _MM_AVL_TABLE
     PVOID NodeFreeHint;
 } MM_AVL_TABLE, *PMM_AVL_TABLE;
 
+//
+// Memory Manager Working Set Structures
+//
 typedef struct _MMWSLENTRY
 {
     ULONG Valid:1;
@@ -241,6 +303,9 @@ typedef struct _MMWSL
     ULONG CommittedPageTables[24];
 } MMWSL, *PMMWSL;
 
+//
+// Flags for Memory Support Structure
+//
 typedef struct _MMSUPPORT_FLAGS
 {
     ULONG SessionSpace:1;
@@ -254,6 +319,9 @@ typedef struct _MMSUPPORT_FLAGS
     ULONG MemoryPriority:8;
 } MMSUPPORT_FLAGS, *PMMSUPPORT_FLAGS;
 
+//
+// Per-Process Memory Manager Data
+//
 typedef struct _MMSUPPORT
 {
     LARGE_INTEGER LastTrimTime;
@@ -272,5 +340,6 @@ typedef struct _MMSUPPORT
     ULONG GrowthSinceLastEstimate;
 } MMSUPPORT, *PMMSUPPORT;
 
-#endif
-#endif
+#endif // !NTOS_MODE_USER
+
+#endif // _MMTYPES_H
index 4439bfe..500388b 100644 (file)
@@ -1,60 +1,77 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/ntndk.h
- * PURPOSE:         Main Native Development Kit Header file to include all others.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    ntndk.h
+
+Abstract:
+
+    Master include file for the Native Development Kit.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _NTNDK_
 #define _NTNDK_
 
-/* C Standard Headers */
+//
+// Rounding Macros
+//
+#define ROUNDUP(a,b)        ((((a)+(b)-1)/(b))*(b))
+#define ROUNDDOWN(a,b)      (((a)/(b))*(b))
+#define ROUND_UP            ROUNDUP
+#define ROUND_DOWN          ROUNDDOWN
+
 #include <stdarg.h>
 
-/* Helper Header */
-#include <reactos/helper.h>
+#ifndef NTOS_MODE_USER
 
-/* A version of ntdef.h to be used with PSDK headers. */
-#include "umtypes.h"
+//
+// Headers that are only useful to Kernel Mode modules
+//
+#include <ifssupp.h>        // IFS Support Header
+#include <kdfuncs.h>        // Kernel Debugger Functions
+#include <cctypes.h>        // Cache Manager Types
+#include <potypes.h>        // Power Manager Types
+#include <haltypes.h>       // Hardware Abstraction Layer Types
+#include <halfuncs.h>       // Hardware Abstraction Layer Functions
+#include <inbvfuncs.h>      // Initialization Boot Video Functions
+#include <exfuncs.h>        // Executive Functions
+#include <iofuncs.h>        // Input/Output Manager Functions
+#include <kefuncs.h>        // Kernel Functions
+#include <mmfuncs.h>        // Memory Manager Functions
+#include <obfuncs.h>        // Object Manager Functions
+#include <psfuncs.h>        // Process Manager Functions
+#include <sefuncs.h>        // Security Subsystem Functions
 
-/* Kernel-Mode NDK */
-#ifndef NTOS_MODE_USER
-#include "ifssupp.h"        /* IFS Support Header */
-#include "kdfuncs.h"        /* Kernel Debugger Functions */
-#include "cctypes.h"        /* Cache Manager Types */
-#include "potypes.h"        /* Power Manager Types */
-#include "haltypes.h"       /* Hardware Abstraction Layer Types */
-#include "halfuncs.h"       /* Hardware Abstraction Layer Functions */
-#include "inbvfuncs.h"      /* Initialization Boot Video Functions */
-#include "exfuncs.h"        /* Executive Functions */
-#include "iofuncs.h"        /* Input/Output Manager Functions */
-#include "kefuncs.h"        /* Kernel Functions */
-#include "mmfuncs.h"        /* Memory Manager Functions */
-#include "obfuncs.h"        /* Object Manager Functions */
-#include "psfuncs.h"        /* Process Manager Functions */
-#include "sefuncs.h"        /* Security Subsystem Functions */
-#endif /* !NTOS_MODE_USER */
-
-/* Shared NDK */
-#include "extypes.h"        /* Executive Types */
-#include "cmtypes.h"        /* Configuration Manager Types */
-#include "kdtypes.h"        /* Kernel Debugger Types */
-#include "ketypes.h"        /* Kernel Types */
-#include "iotypes.h"        /* Input/Output Manager Types */
-#include "ldrtypes.h"       /* Loader Types */
-#include "ldrfuncs.h"       /* Loader Functions */
-#include "mmtypes.h"        /* Memory Manager Types */
-#include "obtypes.h"        /* Object Manager Types */
-#include "pstypes.h"        /* Process Manager Types */
-#include "lpctypes.h"       /* Local Procedure Call Types */
-#include "dbgktypes.h"      /* User-Mode Kernel Debugging Types */
-#include "zwfuncs.h"        /* Native Functions (System Calls) */
-#include "rtltypes.h"       /* Runtime Library Types */
-#include "rtlfuncs.h"       /* Runtime Library Functions */
-#include "setypes.h"        /* Security Subsystem Types */
-#include "umfuncs.h"        /* User-Mode NT Library Functions */
-#include "i386/floatsave.h" /* Floating Point Save Area Definitions for i386 */
-#include "i386/segment.h"   /* Kernel CPU Segment Definitions for i386 */
-
-#endif 
+#endif // !NTOS_MODE_USER
+
+//
+// Headers used both in User Mode and Kernel Mode
+//
+#include <umtypes.h>        // General Definitions
+#include <extypes.h>        // Executive Types
+#include <cmtypes.h>        // Configuration Manager Types
+#include <kdtypes.h>        // Kernel Debugger Types
+#include <ketypes.h>        // Kernel Types
+#include <iotypes.h>        // Input/Output Manager Types
+#include <ldrtypes.h>       // Loader Types
+#include <ldrfuncs.h>       // Loader Functions
+#include <mmtypes.h>        // Memory Manager Types
+#include <obtypes.h>        // Object Manager Types
+#include <pstypes.h>        // Process Manager Types
+#include <lpctypes.h>       // Local Procedure Call Types
+#include <dbgktypes.h>      // User-Mode Kernel Debugging Types
+#include <zwfuncs.h>        // Native Functions (System Calls)
+#include <rtltypes.h>       // Runtime Library Types
+#include <rtlfuncs.h>       // Runtime Library Functions
+#include <setypes.h>        // Security Subsystem Types
+#include <umfuncs.h>        // User-Mode NT Library Functions
+#include <asm.h>            // Assembly Offsets
+
+#endif // _NTNDK_
index 1fd722e..0dc62f6 100644 (file)
@@ -1,51 +1,62 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/obfuncs.h
- * PURPOSE:         Protoypes for OBject Manager Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _OBFUNCS_H
-#define _OBFUNCS_H
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    obtypes.h
+
+Abstract:
+
+    Type definitions for the Object Manager
 
-/* DEPENDENCIES **************************************************************/
+Author:
 
-/* FUNCTION TYPES ************************************************************/
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-/* PROTOTYPES ****************************************************************/
+--*/
 
+#ifndef _OBFUNCS_H
+#define _OBFUNCS_H
+
+//
+// Dependencies
+//
+
+//
+// Object Functions
+//
 NTSTATUS
 NTAPI
-ObCreateObject (
-    IN KPROCESSOR_MODE      ObjectAttributesAccessMode OPTIONAL,
-    IN POBJECT_TYPE         ObjectType,
-    IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL,
-    IN KPROCESSOR_MODE      AccessMode,
-    IN OUT PVOID            ParseContext OPTIONAL,
-    IN ULONG                ObjectSize,
-    IN ULONG                PagedPoolCharge OPTIONAL,
-    IN ULONG                NonPagedPoolCharge OPTIONAL,
-    OUT PVOID               *Object
+ObCreateObject(
+    IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL,
+    IN POBJECT_TYPE ObjectType,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN KPROCESSOR_MODE AccessMode,
+    IN OUT PVOID ParseContext OPTIONAL,
+    IN ULONG ObjectSize,
+    IN ULONG PagedPoolCharge OPTIONAL,
+    IN ULONG NonPagedPoolCharge OPTIONAL,
+    OUT PVOID *Object
 );
 
 ULONG
 NTAPI
-ObGetObjectPointerCount (
+ObGetObjectPointerCount(
     IN PVOID Object
 );
 
 NTSTATUS
 NTAPI
-ObReferenceObjectByName (
-    IN PUNICODE_STRING  ObjectName,
-    IN ULONG            Attributes,
-    IN PACCESS_STATE    PassedAccessState OPTIONAL,
-    IN ACCESS_MASK      DesiredAccess OPTIONAL,
-    IN POBJECT_TYPE     ObjectType,
-    IN KPROCESSOR_MODE  AccessMode,
-    IN OUT PVOID        ParseContext OPTIONAL,
-    OUT PVOID           *Object
+ObReferenceObjectByName(
+    IN PUNICODE_STRING ObjectName,
+    IN ULONG Attributes,
+    IN PACCESS_STATE PassedAccessState OPTIONAL,
+    IN ACCESS_MASK DesiredAccess OPTIONAL,
+    IN POBJECT_TYPE ObjectType,
+    IN KPROCESSOR_MODE AccessMode,
+    IN OUT PVOID ParseContext OPTIONAL,
+    OUT PVOID *Object
 );
 
 NTSTATUS 
index 9aa9dd0..2ba2dc6 100644 (file)
@@ -1,68 +1,77 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/obtypes.h
- * PURPOSE:         Defintions for Object Manager Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _OBTYPES_H
-#define _OBTYPES_H
+/*++ NDK Version: 0095
 
-/* DEPENDENCIES **************************************************************/
+Copyright (c) Alex Ionescu.  All rights reserved.
 
-/* CONSTANTS *****************************************************************/
+Header Name:
 
-#ifdef NTOS_MODE_USER
-/* Definitions for Object Creation */
-#define OBJ_INHERIT 2L
-#define OBJ_PERMANENT 16L
-#define OBJ_EXCLUSIVE 32L
-#define OBJ_CASE_INSENSITIVE 64L
-#define OBJ_OPENIF 128L
-#define OBJ_OPENLINK 256L
-#define OBJ_VALID_ATTRIBUTES 498L
-#define InitializeObjectAttributes(p,n,a,r,s) { \
-    (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
-    (p)->RootDirectory = (r); \
-    (p)->Attributes = (a); \
-    (p)->ObjectName = (n); \
-    (p)->SecurityDescriptor = (s); \
-    (p)->SecurityQualityOfService = NULL; \
-}
+    obtypes.h
 
-/* Directory Object Access Rights */
-#define DIRECTORY_QUERY                 0x0001
-#define DIRECTORY_TRAVERSE              0x0002
-#define DIRECTORY_CREATE_OBJECT         0x0004
-#define DIRECTORY_CREATE_SUBDIRECTORY   0x0008
-#define DIRECTORY_ALL_ACCESS            (STANDARD_RIGHTS_REQUIRED | 0xF)
-#endif
+Abstract:
 
-/* Duplication Flags */
-#define DUPLICATE_SAME_ATTRIBUTES       0x00000004
+    Type definitions for the Object Manager
 
-/* Values for DosDeviceDriveType */
-#define DOSDEVICE_DRIVE_UNKNOWN                0
-#define DOSDEVICE_DRIVE_CALCULATE      1
-#define DOSDEVICE_DRIVE_REMOVABLE      2
-#define DOSDEVICE_DRIVE_FIXED          3
-#define DOSDEVICE_DRIVE_REMOTE         4
-#define DOSDEVICE_DRIVE_CDROM          5
-#define DOSDEVICE_DRIVE_RAMDISK                6
+Author:
 
-#ifndef NTOS_MODE_USER
-/* Object Flags */
-#define OB_FLAG_CREATE_INFO    0x01
-#define OB_FLAG_KERNEL_MODE    0x02
-#define OB_FLAG_CREATOR_INFO   0x04
-#define OB_FLAG_EXCLUSIVE      0x08
-#define OB_FLAG_PERMANENT      0x10
-#define OB_FLAG_SECURITY       0x20
-#define OB_FLAG_SINGLE_PROCESS 0x40
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-/* ENUMERATIONS **************************************************************/
+--*/
+
+#ifndef _OBTYPES_H
+#define _OBTYPES_H
+
+//
+// Dependencies
+//
+
+#ifdef NTOS_MODE_USER
 
+//
+// Definitions for Object Creation
+//
+#define OBJ_INHERIT                             0x00000002L
+#define OBJ_PERMANENT                           0x00000010L
+#define OBJ_EXCLUSIVE                           0x00000020L
+#define OBJ_CASE_INSENSITIVE                    0x00000040L
+#define OBJ_OPENIF                              0x00000080L
+#define OBJ_OPENLINK                            0x00000100L
+#define OBJ_KERNEL_HANDLE                       0x00000200L
+#define OBJ_FORCE_ACCESS_CHECK                  0x00000400L
+#define OBJ_VALID_ATTRIBUTES                    0x000007F2L
+
+#define InitializeObjectAttributes(p,n,a,r,s) { \
+    (p)->Length = sizeof(OBJECT_ATTRIBUTES);    \
+    (p)->RootDirectory = (r);                   \
+    (p)->Attributes = (a);                      \
+    (p)->ObjectName = (n);                      \
+    (p)->SecurityDescriptor = (s);              \
+    (p)->SecurityQualityOfService = NULL;       \
+}
+
+//
+// Directory Object Access Rights
+//
+#define DIRECTORY_QUERY                         0x0001
+#define DIRECTORY_TRAVERSE                      0x0002
+#define DIRECTORY_CREATE_OBJECT                 0x0004
+#define DIRECTORY_CREATE_SUBDIRECTORY           0x0008
+#define DIRECTORY_ALL_ACCESS                    (STANDARD_RIGHTS_REQUIRED | 0xF)
+
+#else
+
+//
+// Object Flags
+//
+#define OB_FLAG_CREATE_INFO                     0x01
+#define OB_FLAG_KERNEL_MODE                     0x02
+#define OB_FLAG_CREATOR_INFO                    0x04
+#define OB_FLAG_EXCLUSIVE                       0x08
+#define OB_FLAG_PERMANENT                       0x10
+#define OB_FLAG_SECURITY                        0x20
+#define OB_FLAG_SINGLE_PROCESS                  0x40
+
+//
+// Reasons for Open Callback
+//
 typedef enum _OB_OPEN_REASON
 {
     ObCreateHandle,
@@ -71,8 +80,33 @@ typedef enum _OB_OPEN_REASON
     ObInheritHandle,
     ObMaxOpenReason
 } OB_OPEN_REASON;
+
 #endif
 
+//
+// Object Duplication Flags
+//
+#define DUPLICATE_SAME_ATTRIBUTES               0x00000004
+
+//
+// Number of hash entries in an Object Directory
+//
+#define NUMBER_HASH_BUCKETS                     37
+
+//
+// Types for DosDeviceDriveType
+//
+#define DOSDEVICE_DRIVE_UNKNOWN                 0
+#define DOSDEVICE_DRIVE_CALCULATE               1
+#define DOSDEVICE_DRIVE_REMOVABLE               2
+#define DOSDEVICE_DRIVE_FIXED                   3
+#define DOSDEVICE_DRIVE_REMOTE                  4
+#define DOSDEVICE_DRIVE_CDROM                   5
+#define DOSDEVICE_DRIVE_RAMDISK                 6
+
+//
+// Object Information Classes for NtQueryInformationObject
+//
 typedef enum _OBJECT_INFORMATION_CLASS
 {
     ObjectBasicInformation,
@@ -85,48 +119,55 @@ typedef enum _OBJECT_INFORMATION_CLASS
 /* FUNCTION TYPES ************************************************************/
 
 #ifndef NTOS_MODE_USER
-/* Object Callbacks FIXME: Update these soon */
+
+//
+// FIXME: Object Callbacks
+//
 typedef NTSTATUS
 (NTAPI *OB_OPEN_METHOD)(
-    OB_OPEN_REASON  Reason,
-    PVOID  ObjectBody,
-    PEPROCESS  Process,
-    ULONG  HandleCount,
-    ACCESS_MASK  GrantedAccess
+    OB_OPEN_REASON Reason,
+    PVOID ObjectBody,
+    PEPROCESS Process,
+    ULONG HandleCount,
+    ACCESS_MASK GrantedAccess
 );
 
 typedef NTSTATUS
 (NTAPI *OB_PARSE_METHOD)(
-    PVOID  Object,
-    PVOID  *NextObject,
-    PUNICODE_STRING  FullPath,
-    PWSTR  *Path,
-    ULONG  Attributes
+    PVOID Object,
+    PVOID *NextObject,
+    PUNICODE_STRING FullPath,
+    PWSTR *Path,
+    ULONG Attributes
 );
 
 typedef VOID
 (NTAPI *OB_DELETE_METHOD)(
-    PVOID  DeletedObject
+    PVOID DeletedObject
 );
 
 typedef VOID
 (NTAPI *OB_CLOSE_METHOD)(
-    PVOID  ClosedObject,
-    ULONG  HandleCount
+    PVOID ClosedObject,
+    ULONG HandleCount
 );
 
 typedef VOID
-(NTAPI *OB_DUMP_METHOD)(VOID);
+(NTAPI *OB_DUMP_METHOD)(
+    VOID
+);
 
 typedef NTSTATUS
-(NTAPI *OB_OKAYTOCLOSE_METHOD)(VOID);
+(NTAPI *OB_OKAYTOCLOSE_METHOD)(
+    VOID
+);
 
 typedef NTSTATUS
 (NTAPI *OB_QUERYNAME_METHOD)(
-    PVOID  ObjectBody,
-    POBJECT_NAME_INFORMATION  ObjectNameInfo,
-    ULONG  Length,
-    PULONG  ReturnLength
+    PVOID ObjectBody,
+    POBJECT_NAME_INFORMATION ObjectNameInfo,
+    ULONG Length,
+    PULONG ReturnLength
 );
 
 typedef PVOID
@@ -148,23 +189,24 @@ typedef NTSTATUS
     PGENERIC_MAPPING GenericMapping
 );
 
-/* FIXME: TEMPORARY HACK */
 typedef NTSTATUS
 (NTAPI *OB_CREATE_METHOD)(
-    PVOID  ObjectBody,
-    PVOID  Parent,
-    PWSTR  RemainingPath,
-    struct _OBJECT_ATTRIBUTES*  ObjectAttributes
+    PVOID ObjectBody,
+    PVOID Parent,
+    PWSTR RemainingPath,
+    struct _OBJECT_ATTRIBUTES* ObjectAttributes
 );
-#endif
 
-/* TYPES *********************************************************************/
+#else
 
-#ifdef NTOS_MODE_USER
+//
+// Object Information Types for NtQueryInformationObject
+//
 typedef struct _OBJECT_NAME_INFORMATION
 {
     UNICODE_STRING Name;
 } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
+
 #endif
 
 typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION
@@ -180,6 +222,7 @@ typedef struct _OBJECT_DIRECTORY_INFORMATION
 } OBJECT_DIRECTORY_INFORMATION, *POBJECT_DIRECTORY_INFORMATION;
 
 #ifndef NTOS_MODE_USER
+
 typedef struct _OBJECT_BASIC_INFORMATION
 {
     ULONG Attributes;
@@ -195,15 +238,6 @@ typedef struct _OBJECT_BASIC_INFORMATION
     LARGE_INTEGER CreateTime;
 } OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
 
-typedef struct _OBJECT_HEADER_NAME_INFO
-{
-    struct _DIRECTORY_OBJECT *Directory;
-    UNICODE_STRING Name;
-    ULONG QueryReferences;
-    ULONG Reserved2;
-    ULONG DbgReferenceCount;
-} OBJECT_HEADER_NAME_INFO, *POBJECT_HEADER_NAME_INFO;
-
 typedef struct _OBJECT_CREATE_INFORMATION
 {
     ULONG Attributes;
@@ -218,6 +252,9 @@ typedef struct _OBJECT_CREATE_INFORMATION
     SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
 } OBJECT_CREATE_INFORMATION, *POBJECT_CREATE_INFORMATION;
 
+//
+// Object Type Initialize for ObCreateObjectType
+//
 typedef struct _OBJECT_TYPE_INITIALIZER
 {
     USHORT Length;
@@ -242,6 +279,9 @@ typedef struct _OBJECT_TYPE_INITIALIZER
     OB_OKAYTOCLOSE_METHOD OkayToCloseProcedure;
 } OBJECT_TYPE_INITIALIZER, *POBJECT_TYPE_INITIALIZER;
 
+//
+// Object Type Object
+//
 typedef struct _OBJECT_TYPE
 {
     ERESOURCE Mutex;
@@ -258,6 +298,18 @@ typedef struct _OBJECT_TYPE
     ERESOURCE ObjectLocks[4];
 } OBJECT_TYPE;
 
+//
+// Object Header Addon Information
+//
+typedef struct _OBJECT_HEADER_NAME_INFO
+{
+    struct _DIRECTORY_OBJECT *Directory;
+    UNICODE_STRING Name;
+    ULONG QueryReferences;
+    ULONG Reserved2;
+    ULONG DbgReferenceCount;
+} OBJECT_HEADER_NAME_INFO, *POBJECT_HEADER_NAME_INFO;
+
 typedef struct _OBJECT_HANDLE_COUNT_ENTRY
 {
     struct _EPROCESS *Process;
@@ -287,9 +339,12 @@ typedef struct _OBJECT_HEADER_CREATOR_INFO
     USHORT Reserved;
 } OBJECT_HEADER_CREATOR_INFO, *POBJECT_HEADER_CREATOR_INFO;
 
+//
+// FIXME: Object Header
+//
 typedef struct _OBJECT_HEADER
 {
-    LIST_ENTRY Entry; /* FIXME: REMOVE THIS SOON */
+    LIST_ENTRY Entry;
     LONG PointerCount;
     union
     {
@@ -310,11 +365,9 @@ typedef struct _OBJECT_HEADER
     QUAD Body;
 } OBJECT_HEADER, *POBJECT_HEADER;
 
-/*
- * FIXME: These will eventually become centerfold in the compliant Ob Manager
- * For now, they are only here so Device Map is properly defined before the header
- * changes
- */
+//
+// Object Directory Structures
+//
 typedef struct _OBJECT_DIRECTORY_ENTRY
 {
     struct _OBJECT_DIRECTORY_ENTRY *ChainLink;
@@ -322,7 +375,6 @@ typedef struct _OBJECT_DIRECTORY_ENTRY
     ULONG HashValue;
 } OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY;
 
-#define NUMBER_HASH_BUCKETS 37
 typedef struct _OBJECT_DIRECTORY
 {
     struct _OBJECT_DIRECTORY_ENTRY *HashBuckets[NUMBER_HASH_BUCKETS];
@@ -331,6 +383,9 @@ typedef struct _OBJECT_DIRECTORY
     ULONG SessionId;
 } OBJECT_DIRECTORY, *POBJECT_DIRECTORY;
 
+//
+// Device Map
+//
 typedef struct _DEVICE_MAP
 {
     POBJECT_DIRECTORY   DosDevicesDirectory;
@@ -340,10 +395,12 @@ typedef struct _DEVICE_MAP
     UCHAR               DriveType[32];
 } DEVICE_MAP, *PDEVICE_MAP;
 
-/* EXPORTED DATA *************************************************************/
-
+//
+// Kernel Exports
+//
 extern POBJECT_TYPE NTSYSAPI ObDirectoryType;
 extern PDEVICE_MAP NTSYSAPI ObSystemDeviceMap;
-#endif
 
-#endif
+#endif // !NTOS_MODE_USER
+
+#endif // _OBTYPES_H
index 3ee9be0..a2fdd38 100644 (file)
@@ -1,24 +1,34 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/potypes.h
- * PURPOSE:         Defintions for Power Manager Types not documented in DDK/IFS.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    potypes.h
+
+Abstract:
+
+    Type definitions for the Power Subystem
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _POTYPES_H
 #define _POTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #ifndef NTOS_MODE_USER
 #include <ntpoapi.h>
 #endif
 
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
-
-/* ENUMERATIONS **************************************************************/
+//
+// Docking states
+//
 typedef enum _SYSTEM_DOCK_STATE
 {
     SystemDockStateUnknown,
@@ -26,9 +36,11 @@ typedef enum _SYSTEM_DOCK_STATE
     SystemDocked
 } SYSTEM_DOCK_STATE, *PSYSTEM_DOCK_STATE;
 
-/* TYPES *********************************************************************/
-
 #ifndef NTOS_MODE_USER
+
+//
+// Processor Power State Data
+//
 typedef struct _PROCESSOR_POWER_STATE
 {
     PVOID IdleFunction;
@@ -77,6 +89,9 @@ typedef struct _PROCESSOR_POWER_STATE
     ULONG Spare1[1];
 } PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
 
+//
+// Device Notification Structure
+//
 typedef struct _PO_DEVICE_NOTIFY
 {
     LIST_ENTRY Link;
@@ -90,5 +105,7 @@ typedef struct _PO_DEVICE_NOTIFY
     ULONG ChildCount;
     ULONG ActiveChild;
 } PO_DEVICE_NOTIFY, *PPO_DEVICE_NOTIFY;
-#endif
-#endif
+
+#endif // !NTOS_MODE_USER
+
+#endif // _POTYPES_H
index 244bc3b..a192df8 100644 (file)
@@ -1,28 +1,49 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/psfuncs.h
- * PURPOSE:         Defintions for Process Manager Functions not documented in DDK/IFS.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    psfuncs.h
+
+Abstract:
+
+    Function definitions for the Process Manager
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _PSFUNCS_H
 #define _PSFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include "pstypes.h"
 
-/* PROTOTYPES ****************************************************************/
-
-struct _W32THREAD* NTAPI
-PsGetWin32Thread(VOID);
+//
+// Win32K Process/Thread Functions
+//
+struct _W32THREAD*
+NTAPI
+PsGetWin32Thread(
+    VOID
+);
 
-struct _W32PROCESS* NTAPI
-PsGetWin32Process(VOID);
+struct _W32PROCESS*
+NTAPI
+PsGetWin32Process(
+    VOID
+);
 
 PVOID
 NTAPI
-PsGetProcessWin32Process(PEPROCESS Process);
+PsGetProcessWin32Process(
+    PEPROCESS Process
+);
 
 VOID
 NTAPI
@@ -40,32 +61,30 @@ PsSetThreadWin32Thread(
 
 PVOID
 NTAPI
-PsGetThreadWin32Thread(PETHREAD Thread);
-                       
-VOID
-NTAPI
-PsRevertThreadToSelf(
-    IN struct _ETHREAD* Thread
+PsGetThreadWin32Thread(
+    PETHREAD Thread
 );
 
-struct _W32THREAD*
+VOID 
 NTAPI
-PsGetWin32Thread(
-    VOID
+PsEstablishWin32Callouts(
+    PW32_CALLOUT_DATA CalloutData
 );
 
-struct _W32PROCESS*
+//
+// Process Impersonation Functions
+//
+VOID
 NTAPI
-PsGetWin32Process(
-    VOID
+PsRevertThreadToSelf(
+    IN PETHREAD Thread
 );
 
-VOID 
-NTAPI
-PsEstablishWin32Callouts(PW32_CALLOUT_DATA CalloutData);
-
+//
+// Misc. Functions
+//
 HANDLE
 NTAPI
-PsGetProcessId(struct _EPROCESS *Process);
+PsGetProcessId(PEPROCESS Process);
 
 #endif
index cfda8e5..c34361d 100644 (file)
@@ -1,15 +1,27 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/pstypes.h
- * PURPOSE:         Defintions for Process Manager Types not documented in DDK/IFS.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    pstypes.h
+
+Abstract:
+
+    Type definitions for the Process Manager
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _PSTYPES_H
 #define _PSTYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include "ldrtypes.h"
 #include "mmtypes.h"
 #include "obtypes.h"
 #include "setypes.h"
 #endif
 
-/* EXPORTED DATA *************************************************************/
+//
+// KUSER_SHARED_DATA location in User Mode
+//
+#define USER_SHARED_DATA                        (0x7FFE0000)
 
+//
+// Kernel Exports
+//
 #ifndef NTOS_MODE_USER
+
 extern NTSYSAPI struct _EPROCESS* PsInitialSystemProcess;
 extern NTSYSAPI POBJECT_TYPE PsProcessType;
-#endif
-
-/* CONSTANTS *****************************************************************/
 
-/* These are not exposed to drivers normally */
-#ifndef NTOS_MODE_USER
-    #define JOB_OBJECT_ASSIGN_PROCESS           1
-    #define JOB_OBJECT_SET_ATTRIBUTES           2
-    #define JOB_OBJECT_QUERY                    4
-    #define JOB_OBJECT_TERMINATE                8
-    #define JOB_OBJECT_SET_SECURITY_ATTRIBUTES  16
-    #define JOB_OBJECT_ALL_ACCESS               (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31)
 #endif
 
-#define USER_SHARED_DATA (0x7FFE0000)
-
-#ifdef NTOS_MODE_USER
-/* Macros for current Process/Thread built-in 'special' ID */
-#define NtCurrentProcess()                      ((HANDLE)(LONG_PTR)-1)
-#define ZwCurrentProcess()                      NtCurrentProcess()
-#define NtCurrentThread()                       ((HANDLE)(LONG_PTR)-2)
-#define ZwCurrentThread()                       NtCurrentThread()
-#endif
-
-/* Process priority classes */
+//
+// Global Flags
+//
+#define FLG_STOP_ON_EXCEPTION                   0x00000001
+#define FLG_SHOW_LDR_SNAPS                      0x00000002
+#define FLG_DEBUG_INITIAL_COMMAND               0x00000004
+#define FLG_STOP_ON_HUNG_GUI                    0x00000008
+#define FLG_HEAP_ENABLE_TAIL_CHECK              0x00000010
+#define FLG_HEAP_ENABLE_FREE_CHECK              0x00000020
+#define FLG_HEAP_VALIDATE_PARAMETERS            0x00000040
+#define FLG_HEAP_VALIDATE_ALL                   0x00000080
+#define FLG_POOL_ENABLE_TAIL_CHECK              0x00000100
+#define FLG_POOL_ENABLE_FREE_CHECK              0x00000200
+#define FLG_POOL_ENABLE_TAGGING                 0x00000400
+#define FLG_HEAP_ENABLE_TAGGING                 0x00000800
+#define FLG_USER_STACK_TRACE_DB                 0x00001000
+#define FLG_KERNEL_STACK_TRACE_DB               0x00002000
+#define FLG_MAINTAIN_OBJECT_TYPELIST            0x00004000
+#define FLG_HEAP_ENABLE_TAG_BY_DLL              0x00008000
+#define FLG_IGNORE_DEBUG_PRIV                   0x00010000
+#define FLG_ENABLE_CSRDEBUG                     0x00020000
+#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD           0x00040000
+#define FLG_DISABLE_PAGE_KERNEL_STACKS          0x00080000
+#define FLG_HEAP_ENABLE_CALL_TRACING            0x00100000
+#define FLG_HEAP_DISABLE_COALESCING             0x00200000
+#define FLG_ENABLE_CLOSE_EXCEPTIONS             0x00400000
+#define FLG_ENABLE_EXCEPTION_LOGGING            0x00800000
+#define FLG_ENABLE_HANDLE_TYPE_TAGGING          0x01000000
+#define FLG_HEAP_PAGE_ALLOCS                    0x02000000
+#define FLG_DEBUG_INITIAL_COMMAND_EX            0x04000000
+
+//
+// Process priority classes
+//
 #define PROCESS_PRIORITY_CLASS_INVALID          0
 #define PROCESS_PRIORITY_CLASS_IDLE             1
 #define PROCESS_PRIORITY_CLASS_NORMAL           2
@@ -56,43 +87,37 @@ extern NTSYSAPI POBJECT_TYPE PsProcessType;
 #define PROCESS_PRIORITY_CLASS_BELOW_NORMAL     5
 #define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL     6
 
-/* Process base priorities */
+//
+// Process base priorities
+//
 #define PROCESS_PRIORITY_IDLE                   3
 #define PROCESS_PRIORITY_NORMAL                 8
 #define PROCESS_PRIORITY_NORMAL_FOREGROUND      9
 
-/* Global Flags */
-#define FLG_STOP_ON_EXCEPTION          0x00000001
-#define FLG_SHOW_LDR_SNAPS             0x00000002
-#define FLG_DEBUG_INITIAL_COMMAND      0x00000004
-#define FLG_STOP_ON_HUNG_GUI           0x00000008
-#define FLG_HEAP_ENABLE_TAIL_CHECK     0x00000010
-#define FLG_HEAP_ENABLE_FREE_CHECK     0x00000020
-#define FLG_HEAP_VALIDATE_PARAMETERS   0x00000040
-#define FLG_HEAP_VALIDATE_ALL          0x00000080
-#define FLG_POOL_ENABLE_TAIL_CHECK     0x00000100
-#define FLG_POOL_ENABLE_FREE_CHECK     0x00000200
-#define FLG_POOL_ENABLE_TAGGING        0x00000400
-#define FLG_HEAP_ENABLE_TAGGING        0x00000800
-#define FLG_USER_STACK_TRACE_DB        0x00001000
-#define FLG_KERNEL_STACK_TRACE_DB      0x00002000
-#define FLG_MAINTAIN_OBJECT_TYPELIST   0x00004000
-#define FLG_HEAP_ENABLE_TAG_BY_DLL     0x00008000
-#define FLG_IGNORE_DEBUG_PRIV          0x00010000
-#define FLG_ENABLE_CSRDEBUG            0x00020000
-#define FLG_ENABLE_KDEBUG_SYMBOL_LOAD  0x00040000
-#define FLG_DISABLE_PAGE_KERNEL_STACKS 0x00080000
-#define FLG_HEAP_ENABLE_CALL_TRACING   0x00100000
-#define FLG_HEAP_DISABLE_COALESCING    0x00200000
-#define FLG_ENABLE_CLOSE_EXCEPTIONS    0x00400000
-#define FLG_ENABLE_EXCEPTION_LOGGING   0x00800000
-#define FLG_ENABLE_HANDLE_TYPE_TAGGING 0x01000000
-#define FLG_HEAP_PAGE_ALLOCS           0x02000000
-#define FLG_DEBUG_INITIAL_COMMAND_EX   0x04000000
-
-/* ENUMERATIONS **************************************************************/
+#if 0
+//
+// Job Access Types
+//
+#define JOB_OBJECT_ASSIGN_PROCESS               0x1
+#define JOB_OBJECT_SET_ATTRIBUTES               0x2
+#define JOB_OBJECT_QUERY                        0x4
+#define JOB_OBJECT_TERMINATE                    0x8
+#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES      0x10
+#define JOB_OBJECT_ALL_ACCESS                   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 31)
+#endif
 
 #ifdef NTOS_MODE_USER
+//
+// Current Process/Thread built-in 'special' handles
+//
+#define NtCurrentProcess()                      ((HANDLE)(LONG_PTR)-1)
+#define ZwCurrentProcess()                      NtCurrentProcess()
+#define NtCurrentThread()                       ((HANDLE)(LONG_PTR)-2)
+#define ZwCurrentThread()                       NtCurrentThread()
+
+//
+// Process/Thread/Job Information Classes for NtQueryInformationProcess/Thread/Job
+//
 typedef enum _PROCESSINFOCLASS
 {
     ProcessBasicInformation,
@@ -169,9 +194,9 @@ typedef enum _THREADINFOCLASS
     ThreadActualBasePriority,
     MaxThreadInfoClass
 } THREADINFOCLASS;
-#endif
 
-#ifndef NTOS_MODE_USER
+#else
+
 typedef enum _JOBOBJECTINFOCLASS
 {
     JobObjectBasicAccountingInformation = 1,
@@ -186,12 +211,18 @@ typedef enum _JOBOBJECTINFOCLASS
     JobObjectJobSetInformation,
     MaxJobObjectInfoClass
 } JOBOBJECTINFOCLASS;
-#endif
 
-/* FUNCTION TYPES ************************************************************/
-typedef VOID (NTAPI *PPEBLOCKROUTINE)(PVOID);
+//
+// Declare empty structure definitions so that they may be referenced by
+// routines before they are defined
+//
+struct _W32THREAD;
+struct _W32PROCESS;
+struct _ETHREAD;
 
-#ifndef NTOS_MODE_USER
+//
+// Win32K Process and Thread Callbacks
+//
 typedef NTSTATUS
 (NTAPI *PW32_PROCESS_CALLBACK)(
     struct _EPROCESS *Process,
@@ -203,35 +234,51 @@ typedef NTSTATUS
     struct _ETHREAD *Thread,
     BOOLEAN Create
 );
-#endif
-
-/* TYPES *********************************************************************/
 
-struct _W32THREAD;
-struct _W32PROCESS;
-
-struct _ETHREAD;
+#endif
 
 #ifdef NTOS_MODE_USER
+
+//
+// ClientID Structure
+//
 typedef struct _CLIENT_ID
 {
     HANDLE UniqueProcess;
     HANDLE UniqueThread;
 } CLIENT_ID, *PCLIENT_ID;
+
 #endif
 
+//
+// Descriptor Table Entry Definition
+//
 typedef struct _DESCRIPTOR_TABLE_ENTRY
 {
     ULONG Selector;
     LDT_ENTRY Descriptor;
 } DESCRIPTOR_TABLE_ENTRY, *PDESCRIPTOR_TABLE_ENTRY;
 
+//
+// PEB Lock Routine
+//
+typedef VOID
+(NTAPI *PPEBLOCKROUTINE)(
+    PVOID PebLock
+);
+
+//
+// PEB Free Block Descriptor
+//
 typedef struct _PEB_FREE_BLOCK
 {
     struct _PEB_FREE_BLOCK* Next;
     ULONG Size;
 } PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
 
+//
+// Process Environment Block (PEB)
+//
 typedef struct _PEB
 {
     UCHAR InheritedAddressSpace;                     /* 00h */
@@ -293,6 +340,9 @@ typedef struct _PEB
     UNICODE_STRING CSDVersion;                       /* 1DCh */
 } PEB, *PPEB;
 
+//
+// GDI Batch Descriptor
+//
 typedef struct _GDI_TEB_BATCH
 {
     ULONG Offset;
@@ -300,6 +350,9 @@ typedef struct _GDI_TEB_BATCH
     ULONG Buffer[0x136];
 } GDI_TEB_BATCH, *PGDI_TEB_BATCH;
 
+//
+// Initial TEB
+//
 typedef struct _INITIAL_TEB
 {
     PVOID PreviousStackBase;
@@ -309,6 +362,9 @@ typedef struct _INITIAL_TEB
     PVOID AllocatedStackBase;
 } INITIAL_TEB, *PINITIAL_TEB;
 
+//
+// TEB Active Frame Structures
+//
 typedef struct _TEB_ACTIVE_FRAME_CONTEXT 
 {
     ULONG Flags;
@@ -322,6 +378,9 @@ typedef struct _TEB_ACTIVE_FRAME
     PTEB_ACTIVE_FRAME_CONTEXT Context;
 } TEB_ACTIVE_FRAME, *PTEB_ACTIVE_FRAME;
 
+//
+// Thread Environment Block (TEB)
+//
 typedef struct _TEB
 {
     NT_TIB Tib;                             /* 00h */
@@ -398,6 +457,10 @@ typedef struct _TEB
 } TEB, *PTEB;
 
 #ifdef NTOS_MODE_USER
+
+//
+// Process Information Structures for NtQueryProcessInformation
+//
 typedef struct _PROCESS_BASIC_INFORMATION
 {
     NTSTATUS ExitStatus;
@@ -442,6 +505,7 @@ typedef struct _PROCESS_SESSION_INFORMATION
 {
     ULONG SessionId;
 } PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
+
 #endif
 
 typedef struct _PROCESS_PRIORITY_CLASS
@@ -450,6 +514,9 @@ typedef struct _PROCESS_PRIORITY_CLASS
     UCHAR   PriorityClass;
 } PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
 
+//
+// Thread Information Structures for NtQueryProcessInformation
+//
 typedef struct _THREAD_BASIC_INFORMATION
 {
     NTSTATUS ExitStatus;
@@ -466,6 +533,9 @@ typedef struct _THREAD_BASIC_INFORMATION
 #include <internal/mm.h>
 #endif
 
+//
+// EPROCESS Quota Structures
+//
 typedef struct _EPROCESS_QUOTA_ENTRY
 {
     SIZE_T Usage;
@@ -482,6 +552,9 @@ typedef struct _EPROCESS_QUOTA_BLOCK
     ULONG ProcessCount;
 } EPROCESS_QUOTA_BLOCK, *PEPROCESS_QUOTA_BLOCK;
 
+//
+// FIXME: This really belongs in mmtypes.h
+//
 typedef struct _PAGEFAULT_HISTORY
 {
     ULONG CurrentIndex;
@@ -491,20 +564,29 @@ typedef struct _PAGEFAULT_HISTORY
     PROCESS_WS_WATCH_INFORMATION WatchInfo[1];
 } PAGEFAULT_HISTORY, *PPAGEFAULT_HISTORY;
 
+//
+// Process Impersonation Information
+//
 typedef struct _PS_IMPERSONATION_INFORMATION
 {
-    PACCESS_TOKEN                   Token;
-    BOOLEAN                         CopyOnOpen;
-    BOOLEAN                         EffectiveOnly;
-    SECURITY_IMPERSONATION_LEVEL    ImpersonationLevel;
+    PACCESS_TOKEN Token;
+    BOOLEAN CopyOnOpen;
+    BOOLEAN EffectiveOnly;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
 } PS_IMPERSONATION_INFORMATION, *PPS_IMPERSONATION_INFORMATION;
 
+//
+// Process Termination Port
+//
 typedef struct _TERMINATION_PORT
 {
     struct _TERMINATION_PORT *Next;
     PVOID Port;
 } TERMINATION_PORT, *PTERMINATION_PORT;
 
+//
+// Executive Thread (ETHREAD)
+//
 #include <pshpack4.h>
 typedef struct _ETHREAD
 {
@@ -607,6 +689,9 @@ typedef struct _ETHREAD
     UCHAR                          ActiveFaultCount;            /* 24E */
 } ETHREAD;
 
+//
+// Executive Process (EPROCESS)
+//
 typedef struct _EPROCESS
 {
     KPROCESS              Pcb;                          /* 000 */
@@ -745,6 +830,9 @@ typedef struct _EPROCESS
 } EPROCESS;
 #include <poppack.h>
 
+//
+// Job Token Filter Data
+//
 #include <pshpack1.h>
 typedef struct _PS_JOB_TOKEN_FILTER
 {
@@ -759,6 +847,9 @@ typedef struct _PS_JOB_TOKEN_FILTER
     ULONG CapturedPrivilegesLength;
 } PS_JOB_TOKEN_FILTER, *PPS_JOB_TOKEN_FILTER;
 
+//
+// Executive Job (EJOB)
+//
 typedef struct _EJOB
 {
     KEVENT Event;
@@ -808,6 +899,9 @@ typedef struct _EJOB
 } EJOB, *PEJOB;
 #include <poppack.h>
 
+//
+// Win32K Callback Registration Data
+//
 typedef struct _W32_CALLOUT_DATA
 {
     PW32_PROCESS_CALLBACK W32ProcessCallout;
@@ -831,6 +925,6 @@ typedef struct _W32_CALLOUT_DATA
     OB_CREATE_METHOD DesktopCreate;
 } W32_CALLOUT_DATA, *PW32_CALLOUT_DATA;
 
-#endif
+#endif // !NTOS_MODE_USER
 
-#endif
+#endif // _PSTYPES_H
diff --git a/reactos/include/ndk/readme.txt b/reactos/include/ndk/readme.txt
new file mode 100644 (file)
index 0000000..61085e6
--- /dev/null
@@ -0,0 +1,52 @@
+Native Development Kit README\r
+        NDK 1.00\r
+-----------------------------\r
+\r
+1. LICENSE\r
+\r
+1.1 OPEN SOURCE USAGE\r
+\r
+Open Source Projects may choose to use one of either the two following licenses:\r
+\r
+GNU GENERAL PUBLIC LICENSE Version 2, June 1991\r
+\r
+               OR\r
+\r
+GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999\r
+\r
+The choice is yours to make based on the license which is most compatible with your\r
+software.\r
+\r
+You MUST read GPL.TXT or LGPL.TXT after your decision. Violating your chosen license\r
+voids your usage rights of the NDK and will lead to legal action on the part of the\r
+author.\r
+\r
+If your Open Source product does not use a license which is compatible with the ones\r
+listed above, please contact the author to reach a mutual agreement to find a better\r
+solution for your product. Alternatively, you may choose to use the Proprietary Usage\r
+license displayed below in section 1.2\r
+\r
+If you are unsure of whether or not your product qualifies as an Open Source product,\r
+please contact the Free Software Foundation, or visit their website at www.fsf.org.\r
+\r
+\r
+1.2 PROPRIETARY USAGE\r
+\r
+Because it may be undesirable or impossible to adapt this software to your commercial\r
+and/or proprietary product(s) and/or service(s) using a (L)GPL license, proprietary\r
+products are free to use the following license:\r
+\r
+NDK LICENSE Version 1, November 2005\r
+\r
+You MUST read NDK.TXT for the full text of this license. Violating your chosen license\r
+voids your usage rights of the NDK, constitutes a copyright violation, and will lead to\r
+legal action on the part of the author.\r
+\r
+If you are unsure of have any questions about the NDK License, please contact the\r
+author for further clarification.\r
+\r
+2. USAGE\r
+\r
+2.1 TODO (COPY FROM WIKI)\r
+\r
+... TODO ... (COPY FROM WIKI)\r
index bd58ab5..3822cc2 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/rtlfuncs.h
- * PURPOSE:         Prototypes for Runtime Library Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    rtlfuncs.h
+
+Abstract:
+
+    Function definitions for the Run-Time Library
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _RTLFUNCS_H
 #define _RTLFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include <ntnls.h>
 #include "extypes.h"
 #include "rtltypes.h"
 
-/* MACROS ********************************************************************/
+#ifdef NTOS_MODE_USER
 
-/* FIXME: Eventually move the ones in rtltypes.h here... */
+//
+// List Functions
+//
+FORCEINLINE
+VOID
+InitializeListHead(
+    IN PLIST_ENTRY ListHead
+)
+{
+    ListHead->Flink = ListHead->Blink = ListHead;
+}
 
-/*
- * Splay Tree Macros
- */
-#define RtlIsLeftChild(Links) \
-    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+FORCEINLINE
+VOID
+InsertHeadList(
+    IN PLIST_ENTRY ListHead,
+    IN PLIST_ENTRY Entry
+)
+{
+    PLIST_ENTRY OldFlink;
+    OldFlink = ListHead->Flink;
+    Entry->Flink = OldFlink;
+    Entry->Blink = ListHead;
+    OldFlink->Blink = Entry;
+    ListHead->Flink = Entry;
+}
 
-#define RtlIsRightChild(Links) \
-    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+FORCEINLINE
+VOID
+InsertTailList(
+    IN PLIST_ENTRY ListHead,
+    IN PLIST_ENTRY Entry
+)
+{
+    PLIST_ENTRY OldBlink;
+    OldBlink = ListHead->Blink;
+    Entry->Flink = ListHead;
+    Entry->Blink = OldBlink;
+    OldBlink->Flink = Entry;
+    ListHead->Blink = Entry;
+}
 
-#define RtlRightChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->RightChild
+BOOLEAN
+FORCEINLINE
+IsListEmpty(
+    IN const LIST_ENTRY * ListHead
+)
+{
+    return (BOOLEAN)(ListHead->Flink == ListHead);
+}
 
-#define RtlIsRoot(Links) \
-    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
+FORCEINLINE
+PSINGLE_LIST_ENTRY
+PopEntryList(
+    PSINGLE_LIST_ENTRY ListHead
+)
+{
+    PSINGLE_LIST_ENTRY FirstEntry;
+    FirstEntry = ListHead->Next;
+    if (FirstEntry != NULL) {
+        ListHead->Next = FirstEntry->Next;
+    }
 
-#define RtlLeftChild(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->LeftChild
+    return FirstEntry;
+}
 
-#define RtlParent(Links) \
-    ((PRTL_SPLAY_LINKS)(Links))->Parent
+FORCEINLINE
+VOID
+PushEntryList(
+    PSINGLE_LIST_ENTRY ListHead,
+    PSINGLE_LIST_ENTRY Entry
+)
+{
+    Entry->Next = ListHead->Next;
+    ListHead->Next = Entry;
+}
 
-#define RtlInitializeSplayLinks(Links)                  \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayLinks;                   \
-        _SplayLinks = (PRTL_SPLAY_LINKS)(Links);        \
-        _SplayLinks->Parent = _SplayLinks;              \
-        _SplayLinks->LeftChild = NULL;                  \
-        _SplayLinks->RightChild = NULL;                 \
-    }
+FORCEINLINE
+BOOLEAN
+RemoveEntryList(
+    IN PLIST_ENTRY  Entry)
+{
+    PLIST_ENTRY OldFlink;
+    PLIST_ENTRY OldBlink;
+
+    OldFlink = Entry->Flink;
+    OldBlink = Entry->Blink;
+    OldFlink->Blink = OldBlink;
+    OldBlink->Flink = OldFlink;
+    return (BOOLEAN)(OldFlink == OldBlink);
+}
 
-#define RtlInsertAsLeftChild(ParentLinks,ChildLinks)    \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->LeftChild = _SplayChild;          \
-        _SplayChild->Parent = _SplayParent;             \
-    }
+FORCEINLINE
+PLIST_ENTRY
+RemoveHeadList(
+    IN PLIST_ENTRY  ListHead)
+{
+    PLIST_ENTRY Flink;
+    PLIST_ENTRY Entry;
+
+    Entry = ListHead->Flink;
+    Flink = Entry->Flink;
+    ListHead->Flink = Flink;
+    Flink->Blink = ListHead;
+    return Entry;
+}
 
-#define RtlInsertAsRightChild(ParentLinks,ChildLinks)   \
-    {                                                   \
-        PRTL_SPLAY_LINKS _SplayParent;                  \
-        PRTL_SPLAY_LINKS _SplayChild;                   \
-        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
-        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
-        _SplayParent->RightChild = _SplayChild;         \
-        _SplayChild->Parent = _SplayParent;             \
-    }
+FORCEINLINE
+PLIST_ENTRY
+RemoveTailList(
+    IN PLIST_ENTRY  ListHead)
+{
+    PLIST_ENTRY Blink;
+    PLIST_ENTRY Entry;
+
+    Entry = ListHead->Blink;
+    Blink = Entry->Blink;
+    ListHead->Blink = Blink;
+    Blink->Flink = ListHead;
+    return Entry;
+}
+
+//
+// LUID Macros
+//
+#define RtlEqualLuid(L1, L2) (((L1)->HighPart == (L2)->HighPart) && \
+                              ((L1)->LowPart  == (L2)->LowPart))
 
-/* PROTOTYPES ****************************************************************/
+#endif
 
-/*
- * Splay Tree Functions
- */
+//
+// RTL Splay Tree Functions
+//
 NTSYSAPI
 PRTL_SPLAY_LINKS
 NTAPI
@@ -111,9 +199,56 @@ PRTL_SPLAY_LINKS
 NTAPI
 RtlRealPredecessor(PRTL_SPLAY_LINKS Links);
 
-/*
- * Error and Exception Functions
- */
+#define RtlIsLeftChild(Links) \
+    (RtlLeftChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlIsRightChild(Links) \
+    (RtlRightChild(RtlParent(Links)) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlRightChild(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->RightChild
+
+#define RtlIsRoot(Links) \
+    (RtlParent(Links) == (PRTL_SPLAY_LINKS)(Links))
+
+#define RtlLeftChild(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->LeftChild
+
+#define RtlParent(Links) \
+    ((PRTL_SPLAY_LINKS)(Links))->Parent
+
+#define RtlInitializeSplayLinks(Links)                  \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayLinks;                   \
+        _SplayLinks = (PRTL_SPLAY_LINKS)(Links);        \
+        _SplayLinks->Parent = _SplayLinks;              \
+        _SplayLinks->LeftChild = NULL;                  \
+        _SplayLinks->RightChild = NULL;                 \
+    }
+
+#define RtlInsertAsLeftChild(ParentLinks,ChildLinks)    \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayParent;                  \
+        PRTL_SPLAY_LINKS _SplayChild;                   \
+        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
+        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
+        _SplayParent->LeftChild = _SplayChild;          \
+        _SplayChild->Parent = _SplayParent;             \
+    }
+
+#define RtlInsertAsRightChild(ParentLinks,ChildLinks)   \
+    {                                                   \
+        PRTL_SPLAY_LINKS _SplayParent;                  \
+        PRTL_SPLAY_LINKS _SplayChild;                   \
+        _SplayParent = (PRTL_SPLAY_LINKS)(ParentLinks); \
+        _SplayChild = (PRTL_SPLAY_LINKS)(ChildLinks);   \
+        _SplayParent->RightChild = _SplayChild;         \
+        _SplayChild->Parent = _SplayParent;             \
+    }
+
+//
+// Error and Exception Functions
+//
 NTSYSAPI
 PVOID
 NTAPI
@@ -185,10 +320,9 @@ RtlUnwind(
     IN PVOID ReturnValue
 );
 
-/*
- * Heap Functions
- */
-
+//
+// Heap Functions
+//
 NTSYSAPI
 PVOID
 NTAPI
@@ -273,10 +407,9 @@ RtlValidateHeap(
 
 #define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
 
-
-/*
- * Security Functions
- */
+//
+// Security Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -787,9 +920,9 @@ RtlSetSecurityObject(
     IN HANDLE Token
 );
 
-/*
- * Single-Character Functions
- */
+//
+// Single-Character Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -853,7 +986,13 @@ RtlCharToInteger(
     PULONG Value
 );
 
-#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || ((defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
+//
+// Byte Swap Functions
+//
+#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
+    ((defined(_M_AMD64) || \
+     defined(_M_IA64)) && (_MSC_FULL_VER > 13009175))
+
 unsigned short __cdecl _byteswap_ushort(unsigned short);
 unsigned long  __cdecl _byteswap_ulong (unsigned long);
 unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
@@ -863,6 +1002,7 @@ unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64);
 #define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
 #define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
 #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
+
 #else
 
 USHORT
@@ -879,20 +1019,22 @@ RtlUlonglongByteSwap(IN ULONGLONG Source);
 
 #endif
 
-/*
- * Unicode->Ansi String Functions
- */
+//
+// Unicode->Ansi String Functions
+//
 NTSYSAPI
 ULONG
 NTAPI
 RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString);
 
 #ifdef NTOS_MODE_USER
+
 #define RtlUnicodeStringToAnsiSize(STRING) (                  \
     NLS_MB_CODE_PAGE_TAG ?                                    \
     RtlxUnicodeStringToAnsiSize(STRING) :                     \
     ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
 )
+
 #endif
 
 NTSYSAPI
@@ -904,9 +1046,9 @@ RtlUnicodeStringToAnsiString(
     BOOLEAN AllocateDestinationString
 );
 
-/*
- * Unicode->OEM String Functions
- */
+//
+// Unicode->OEM String Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -951,14 +1093,17 @@ NTAPI
 RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString);
 
 #ifdef NTOS_MODE_USER
-#define RtlUnicodeStringToOemSize(STRING) (                   \
-    NLS_MB_OEM_CODE_PAGE_TAG ?                                \
-    RtlxUnicodeStringToOemSize(STRING) :                      \
-    ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \
+
+#define RtlUnicodeStringToOemSize(STRING) (                             \
+    NLS_MB_OEM_CODE_PAGE_TAG ?                                          \
+    RtlxUnicodeStringToOemSize(STRING) :                                \
+    ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR)           \
 )
-#define RtlUnicodeStringToCountedOemSize(STRING) (                    \
-    (ULONG)(RtlUnicodeStringToOemSize(STRING) - sizeof(ANSI_NULL)) \
+
+#define RtlUnicodeStringToCountedOemSize(STRING) (                      \
+    (ULONG)(RtlUnicodeStringToOemSize(STRING) - sizeof(ANSI_NULL))      \
 )
+
 #endif
 
 NTSYSAPI
@@ -972,9 +1117,9 @@ RtlUnicodeToOemN(
     ULONG UnicodeSize
 );
 
-/*
- * Unicode->MultiByte String Functions
- */
+//
+// Unicode->MultiByte String Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1011,20 +1156,9 @@ ULONG
 NTAPI
 RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString);
 
-/*
- * OEM to Unicode Functions
- */
-#ifdef NTOS_MODE_USER
-#define RtlOemStringToUnicodeSize(STRING) (                  \
-    NLS_MB_OEM_CODE_PAGE_TAG ?                               \
-    RtlxOemStringToUnicodeSize(STRING) :                     \
-    ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)   \
-)
-#define RtlOemStringToCountedUnicodeSize(STRING) (                    \
-    (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL)) \
-)
-#endif
-
+//
+// OEM to Unicode Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1045,9 +1179,23 @@ RtlOemToUnicodeN(
     ULONG BytesInOemString
 );
 
-/*
- * Ansi->Unicode String Functions
- */
+#ifdef NTOS_MODE_USER
+
+#define RtlOemStringToUnicodeSize(STRING) (                             \
+    NLS_MB_OEM_CODE_PAGE_TAG ?                                          \
+    RtlxOemStringToUnicodeSize(STRING) :                                \
+    ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)              \
+)
+
+#define RtlOemStringToCountedUnicodeSize(STRING) (                      \
+    (ULONG)(RtlOemStringToUnicodeSize(STRING) - sizeof(UNICODE_NULL))   \
+)
+
+#endif
+
+//
+// Ansi->Unicode String Functions
+//
 NTSYSAPI
 ULONG
 NTAPI
@@ -1065,11 +1213,13 @@ RtlAnsiStringToUnicodeString(
 );
 
 #ifdef NTOS_MODE_USER
-#define RtlAnsiStringToUnicodeSize(STRING) (                 \
-    NLS_MB_CODE_PAGE_TAG ?                                   \
-    RtlxAnsiStringToUnicodeSize(STRING) :                    \
-    ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)   \
+
+#define RtlAnsiStringToUnicodeSize(STRING) (                        \
+    NLS_MB_CODE_PAGE_TAG ?                                          \
+    RtlxAnsiStringToUnicodeSize(STRING) :                           \
+    ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR)          \
 )
+
 #endif
 
 NTSYSAPI
@@ -1080,9 +1230,9 @@ RtlCreateUnicodeStringFromAsciiz(
     IN PCSZ Source
 );
 
-/*
- * Unicode String Functions
- */
+//
+// Unicode String Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1125,6 +1275,7 @@ RtlCreateUnicodeString(
 );
 
 #ifdef NTOS_MODE_USER
+
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1133,6 +1284,7 @@ RtlDowncaseUnicodeString(
     IN PCUNICODE_STRING UniSource,
     IN BOOLEAN AllocateDestinationString
 );
+
 #endif
 
 NTSYSAPI
@@ -1220,9 +1372,9 @@ RtlUnicodeStringToInteger(
     PULONG Value
 );
 
-/*
- * Ansi String Functions
- */
+//
+// Ansi String Functions
+//
 NTSYSAPI
 VOID
 NTAPI
@@ -1236,17 +1388,17 @@ RtlInitAnsiString(
     PCSZ SourceString
 );
 
-/*
- * OEM String Functions
- */
+//
+// OEM String Functions
+//
 NTSYSAPI
 VOID
 NTAPI
 RtlFreeOemString(IN POEM_STRING OemString);
 
-/*
- * MultiByte->Unicode String Functions
- */
+//
+// MultiByte->Unicode String Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1267,9 +1419,9 @@ RtlMultiByteToUnicodeSize(
     ULONG MbSize
 );
 
-/*
- * Atom Functions
- */
+//
+// Atom Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1329,9 +1481,9 @@ RtlLookupAtomInAtomTable(
     OUT PRTL_ATOM Atom
 );
 
-/*
- * Memory Functions
- */
+//
+// Memory Functions
+//
 NTSYSAPI
 VOID
 NTAPI
@@ -1341,9 +1493,9 @@ RtlFillMemoryUlong(
     IN ULONG Fill
 );
 
-/*
- * Process Management Functions
- */
+//
+// Process Management Functions
+//
 NTSYSAPI
 VOID
 NTAPI
@@ -1442,9 +1594,36 @@ RtlSetProcessIsCritical(
     IN BOOLEAN IsWinlogon
 );
 
-/*
- * Environment/Path Functions
- */
+static __inline
+struct _PEB*
+NtCurrentPeb(VOID)
+{
+    struct _PEB *pPeb;
+
+#if defined(__GNUC__)
+
+    __asm__ __volatile__
+    (
+      "movl %%fs:0x30, %0\n" /* fs:30h == Teb->Peb */
+      : "=r" (pPeb) /* can't have two memory operands */
+      : /* no inputs */
+    );
+
+#elif defined(_MSC_VER)
+
+    __asm mov eax, fs:0x30;
+    __asm mov pPeb, eax
+
+#else
+#error Unknown compiler for inline assembler
+#endif
+
+    return pPeb;
+}
+
+//
+// Environment/Path Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1550,9 +1729,9 @@ RtlSetEnvironmentVariable(
     PUNICODE_STRING Value
 );
 
-/*
- * Critical Section/Resource Functions
- */
+//
+// Critical Section/Resource Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1661,9 +1840,9 @@ RtlReleaseResource(
     IN PRTL_RESOURCE Resource
 );
 
-/*
- * Compression Functions
- */
+//
+// Compression Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1699,9 +1878,9 @@ RtlGetCompressionWorkSpaceSize(
     OUT PULONG CompressFragmentWorkSpaceSize
 );
 
-/*
- * Debug Info Functions
- */
+//
+// Debug Info Functions
+//
 NTSYSAPI
 PRTL_DEBUG_BUFFER
 NTAPI
@@ -1724,9 +1903,9 @@ RtlQueryProcessDebugInformation(
     IN OUT PRTL_DEBUG_BUFFER DebugBuffer
 );
 
-/*
- * Bitmap Functions
- */
+//
+// Bitmap Functions
+//
 NTSYSAPI
 BOOLEAN
 NTAPI
@@ -1790,9 +1969,9 @@ RtlSetBits (
     IN ULONG NumberToSet
 );
 
-/*
- * Timer Functions
- */
+//
+// Timer Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1843,9 +2022,9 @@ NTSTATUS
 NTAPI
 RtlDeleteTimerQueue(HANDLE TimerQueue);
 
-/*
- * Debug Functions
- */
+//
+// Debug Functions
+//
 ULONG
 __cdecl
 DbgPrint(
@@ -1857,9 +2036,9 @@ VOID
 NTAPI
 DbgBreakPoint(VOID);
 
-/*
- * Handle Table Functions
- */
+//
+// Handle Table Functions
+//
 NTSYSAPI
 PRTL_HANDLE_TABLE_ENTRY
 NTAPI
@@ -1907,9 +2086,9 @@ RtlIsValidIndexHandle(
     OUT PRTL_HANDLE_TABLE_ENTRY *Handle
 );
 
-/*
- * PE Functions
- */
+//
+// PE Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -1960,9 +2139,9 @@ RtlImageRvaToSection(
     ULONG Rva
 );
 
-/*
- * Registry Functions
- */
+//
+// Registry Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -2017,9 +2196,9 @@ RtlWriteRegistryValue(
     ULONG ValueLength
 );
 
-/*
- * NLS Functions
- */
+//
+// NLS Functions
+//
 NTSYSAPI
 VOID
 NTAPI
@@ -2043,14 +2222,17 @@ VOID
 NTAPI
 RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable);
 
-/*
- * Misc conversion functions
- */
 #if defined(NTOS_MODE_USER) && !defined(NO_RTL_INLINES)
+
+//
+// Misc conversion functions
+//
 static __inline
 LARGE_INTEGER
 NTAPI_INLINE
-RtlConvertLongToLargeInteger(LONG SignedInteger)
+RtlConvertLongToLargeIntegerf(
+    LONG SignedInteger
+)
 {
     LARGE_INTEGER Result;
 
@@ -2063,7 +2245,8 @@ LARGE_INTEGER
 NTAPI_INLINE
 RtlEnlargedIntegerMultiply(
     LONG Multiplicand,
-    LONG Multiplier)
+    LONG Multiplier
+)
 {
     LARGE_INTEGER Product;
 
@@ -2077,7 +2260,8 @@ NTAPI_INLINE
 RtlEnlargedUnsignedDivide(
     IN ULARGE_INTEGER Dividend,
     IN ULONG Divisor,
-    IN PULONG Remainder OPTIONAL)
+    IN PULONG Remainder OPTIONAL
+)
 {
     ULONG Quotient;
 
@@ -2094,7 +2278,8 @@ LARGE_INTEGER
 NTAPI_INLINE
 RtlEnlargedUnsignedMultiply(
     ULONG Multiplicand,
-    ULONG Multiplier)
+    ULONG Multiplier
+)
 {
     LARGE_INTEGER Product;
 
@@ -2108,9 +2293,9 @@ ULONG
 NTAPI
 RtlUniform(PULONG Seed);
 
-/*
- * Network Functions
- */
+//
+// Network Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -2121,9 +2306,9 @@ RtlIpv4StringToAddressW(
     OUT PULONG IpAddr
 );
 
-/*
- * Time Functions
- */
+//
+// Time Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -2158,9 +2343,9 @@ RtlTimeToTimeFields(
     PTIME_FIELDS TimeFields
 );
 
-/*
- * Version Functions
- */
+//
+// Version Functions
+//
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -2180,28 +2365,4 @@ BOOLEAN
 NTAPI
 RtlGetNtProductType(OUT PNT_PRODUCT_TYPE ProductType);
 
-static __inline struct _PEB* NtCurrentPeb (void) 
-{
-    struct _PEB * pPeb;
-
-#if defined(__GNUC__)
-
-    __asm__ __volatile__
-    (
-      "movl %%fs:0x30, %0\n" /* fs:30h == Teb->Peb */
-      : "=r" (pPeb) /* can't have two memory operands */
-      : /* no inputs */
-    );
-
-#elif defined(_MSC_VER)
-
-    __asm mov eax, fs:0x30;
-    __asm mov pPeb, eax
-
-#else
-#error Unknown compiler for inline assembler
-#endif
-
-    return pPeb;
-}
 #endif
index 280d5ff..445b9be 100644 (file)
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/rtltypes.h
- * PURPOSE:         Defintions for Runtime Library Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _RTLTYPES_H
-#define _RTLTYPES_H
+/*++ NDK Version: 0095
 
-/* DEPENDENCIES **************************************************************/
-#include "pstypes.h"
+Copyright (c) Alex Ionescu.  All rights reserved.
 
-/* CONSTANTS *****************************************************************/
-#define MAXIMUM_LEADBYTES 12
-
-#define PPF_NORMALIZED             0x01
-#define PPF_PROFILE_USER           0x02
-#define PPF_PROFILE_SERVER         0x04
-#define PPF_PROFILE_KERNEL         0x08
-
-#define PPF_RESERVE_1MB            0x20
-#define PPF_DISABLE_HEAP_CHECKS    0x100
-#define PPF_PROCESS_OR_1           0x200
-#define PPF_PROCESS_OR_2           0x400
-
-#define PEB_BASE                   (0x7FFDF000)
-
-#define EXCEPTION_CHAIN_END           ((PEXCEPTION_REGISTRATION_RECORD)-1)
-#define EXCEPTION_CONTINUE_SEARCH     0
-#define EXCEPTION_EXECUTE_HANDLER     1
-
-#define EXCEPTION_UNWINDING 0x02
-#define EXCEPTION_EXIT_UNWIND 0x04
-#define EXCEPTION_STACK_INVALID 0x8
-#define EXCEPTION_NESTED_CALL 0x10
-#define EXCEPTION_TARGET_UNWIND 0x20
-#define EXCEPTION_COLLIDED_UNWIND 0x20
-
-#define EH_NONCONTINUABLE   0x01
-#define EH_UNWINDING        0x02
-#define EH_EXIT_UNWIND      0x04
-#define EH_STACK_INVALID    0x08
-#define EH_NESTED_CALL      0x10
-
-#define RTL_RANGE_LIST_ADD_IF_CONFLICT  0x00000001
-#define RTL_RANGE_LIST_ADD_SHARED       0x00000002
-
-#define RTL_RANGE_SHARED      0x01
-#define RTL_RANGE_CONFLICT    0x02
-
-/* Run-Time Library (RTL) Registry Constants */
-#define RTL_REGISTRY_ABSOLUTE       0
-#define RTL_REGISTRY_SERVICES       1
-#define RTL_REGISTRY_CONTROL        2
-#define RTL_REGISTRY_WINDOWS_NT     3
-#define RTL_REGISTRY_DEVICEMAP      4
-#define RTL_REGISTRY_USER           5
-#define RTL_REGISTRY_MAXIMUM        6
-#define RTL_REGISTRY_HANDLE         0x40000000
-#define RTL_REGISTRY_OPTIONAL       0x80000000
-#define RTL_QUERY_REGISTRY_SUBKEY   0x00000001
-#define RTL_QUERY_REGISTRY_TOPKEY   0x00000002
-#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
-#define RTL_QUERY_REGISTRY_NOVALUE  0x00000008
-#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
-#define RTL_QUERY_REGISTRY_DIRECT   0x00000020
-#define RTL_QUERY_REGISTRY_DELETE   0x00000040
-
-/* Version Constants */
-#define VER_MINORVERSION                0x0000001
-#define VER_MAJORVERSION                0x0000002
-#define VER_BUILDNUMBER                 0x0000004
-#define VER_PLATFORMID                  0x0000008
-#define VER_SERVICEPACKMINOR            0x0000010
-#define VER_SERVICEPACKMAJOR            0x0000020
-#define VER_SUITENAME                   0x0000040
-#define VER_PRODUCT_TYPE                0x0000080
-#define VER_PLATFORM_WIN32s             0
-#define VER_PLATFORM_WIN32_WINDOWS      1
-#define VER_PLATFORM_WIN32_NT           2
-#define VER_EQUAL                       1
-#define VER_GREATER                     2
-#define VER_GREATER_EQUAL               3
-#define VER_LESS                        4
-#define VER_LESS_EQUAL                  5
-#define VER_AND                         6
-#define VER_OR                          7
-#define VER_CONDITION_MASK              7
-#define VER_NUM_BITS_PER_CONDITION_MASK 3
-
-#define RTL_CRITSECT_TYPE               0
-#define RTL_RESOURCE_TYPE               1
-
-#ifdef NTOS_MODE_USER
-/* RTL String Hash Algorithms */
-#define HASH_STRING_ALGORITHM_DEFAULT   0
-#define HASH_STRING_ALGORITHM_X65599    1
-#define HASH_STRING_ALGORITHM_INVALID   0xffffffff
+Header Name:
 
-/* RtlDuplicateString settings */
-#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE 1
-#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING 2
+    rtltypes.h
 
-/* For Size conversion macros */
-#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
-#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
-#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
+Abstract:
 
-#define MAX_ATOM_LEN              255 /* TCHARS not including nullterm */
+    Type definitions for the Run-Time Library
 
-/* List Macros */
-static __inline
-VOID
-InitializeListHead(
-    IN PLIST_ENTRY  ListHead)
-{
-    ListHead->Flink = ListHead->Blink = ListHead;
-}
+Author:
 
-static __inline
-VOID
-InsertHeadList(
-    IN PLIST_ENTRY  ListHead,
-    IN PLIST_ENTRY  Entry)
-{
-    PLIST_ENTRY OldFlink;
-    OldFlink = ListHead->Flink;
-    Entry->Flink = OldFlink;
-    Entry->Blink = ListHead;
-    OldFlink->Blink = Entry;
-    ListHead->Flink = Entry;
-}
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-static __inline
-VOID
-InsertTailList(
-    IN PLIST_ENTRY  ListHead,
-    IN PLIST_ENTRY  Entry)
-{
-    PLIST_ENTRY OldBlink;
-    OldBlink = ListHead->Blink;
-    Entry->Flink = ListHead;
-    Entry->Blink = OldBlink;
-    OldBlink->Flink = Entry;
-    ListHead->Blink = Entry;
-}
+--*/
 
-#define IsListEmpty(ListHead) \
-    ((ListHead)->Flink == (ListHead))
-
-#define PopEntryList(ListHead) \
-    (ListHead)->Next; \
-    { \
-        PSINGLE_LIST_ENTRY _FirstEntry; \
-        _FirstEntry = (ListHead)->Next; \
-        if (_FirstEntry != NULL) \
-            (ListHead)->Next = _FirstEntry->Next; \
-    }
-
-#define PushEntryList(_ListHead, _Entry) \
-    (_Entry)->Next = (_ListHead)->Next; \
-    (_ListHead)->Next = (_Entry); \
-
-static __inline
-BOOLEAN
-RemoveEntryList(
-    IN PLIST_ENTRY  Entry)
-{
-    PLIST_ENTRY OldFlink;
-    PLIST_ENTRY OldBlink;
-
-    OldFlink = Entry->Flink;
-    OldBlink = Entry->Blink;
-    OldFlink->Blink = OldBlink;
-    OldBlink->Flink = OldFlink;
-    return (BOOLEAN)(OldFlink == OldBlink);
-}
-
-static __inline
-PLIST_ENTRY
-RemoveHeadList(
-    IN PLIST_ENTRY  ListHead)
-{
-    PLIST_ENTRY Flink;
-    PLIST_ENTRY Entry;
-
-    Entry = ListHead->Flink;
-    Flink = Entry->Flink;
-    ListHead->Flink = Flink;
-    Flink->Blink = ListHead;
-    return Entry;
-}
+#ifndef _RTLTYPES_H
+#define _RTLTYPES_H
 
-static __inline
-PLIST_ENTRY
-RemoveTailList(
-    IN PLIST_ENTRY  ListHead)
-{
-    PLIST_ENTRY Blink;
-    PLIST_ENTRY Entry;
+//
+// Dependencies
+//
+#include "pstypes.h"
 
-    Entry = ListHead->Blink;
-    Blink = Entry->Blink;
-    ListHead->Blink = Blink;
-    Blink->Flink = ListHead;
-    return Entry;
-}
+//
+// Maximum Atom Length
+//
+#define RTL_MAXIMUM_ATOM_LENGTH                              255
+
+//
+// Process Parameters Flags (FIXME: Rename)
+//
+#define PPF_NORMALIZED                                       0x01
+#define PPF_PROFILE_USER                                     0x02
+#define PPF_PROFILE_SERVER                                   0x04
+#define PPF_PROFILE_KERNEL                                   0x08
+#define PPF_UNKNOWN                                          0x10
+#define PPF_RESERVE_1MB                                      0x20
+#define PPF_DISABLE_HEAP_CHECKS                              0x100
+#define PPF_PROCESS_OR_1                                     0x200
+#define PPF_PROCESS_OR_2                                     0x400
+
+//
+// Exception Flags
+//
+#define EXCEPTION_CHAIN_END                                  ((PEXCEPTION_REGISTRATION_RECORD)-1)
+#define EXCEPTION_UNWINDING                                  0x02
+#define EXCEPTION_EXIT_UNWIND                                0x04
+#define EXCEPTION_STACK_INVALID                              0x08
+#define EXCEPTION_NESTED_CALL                                0x10
+#define EXCEPTION_TARGET_UNWIND                              0x20
+#define EXCEPTION_COLLIDED_UNWIND                            0x20
+
+//
+// Range and Range List Flags
+//
+#define RTL_RANGE_LIST_ADD_IF_CONFLICT                       0x00000001
+#define RTL_RANGE_LIST_ADD_SHARED                            0x00000002
+
+#define RTL_RANGE_SHARED                                     0x01
+#define RTL_RANGE_CONFLICT                                   0x02
+
+//
+// Registry Keys
+//
+#define RTL_REGISTRY_ABSOLUTE                                0
+#define RTL_REGISTRY_SERVICES                                1
+#define RTL_REGISTRY_CONTROL                                 2
+#define RTL_REGISTRY_WINDOWS_NT                              3
+#define RTL_REGISTRY_DEVICEMAP                               4
+#define RTL_REGISTRY_USER                                    5
+#define RTL_REGISTRY_MAXIMUM                                 6
+#define RTL_REGISTRY_HANDLE                                  0x40000000
+#define RTL_REGISTRY_OPTIONAL                                0x80000000
+#define RTL_QUERY_REGISTRY_SUBKEY                            0x00000001
+#define RTL_QUERY_REGISTRY_TOPKEY                            0x00000002
+#define RTL_QUERY_REGISTRY_REQUIRED                          0x00000004
+#define RTL_QUERY_REGISTRY_NOVALUE                           0x00000008
+#define RTL_QUERY_REGISTRY_NOEXPAND                          0x00000010
+#define RTL_QUERY_REGISTRY_DIRECT                            0x00000020
+#define RTL_QUERY_REGISTRY_DELETE                            0x00000040
+
+//
+// Versioning
+//
+#define VER_MINORVERSION                                     0x0000001
+#define VER_MAJORVERSION                                     0x0000002
+#define VER_BUILDNUMBER                                      0x0000004
+#define VER_PLATFORMID                                       0x0000008
+#define VER_SERVICEPACKMINOR                                 0x0000010
+#define VER_SERVICEPACKMAJOR                                 0x0000020
+#define VER_SUITENAME                                        0x0000040
+#define VER_PRODUCT_TYPE                                     0x0000080
+#define VER_PLATFORM_WIN32s                                  0
+#define VER_PLATFORM_WIN32_WINDOWS                           1
+#define VER_PLATFORM_WIN32_NT                                2
+#define VER_EQUAL                                            1
+#define VER_GREATER                                          2
+#define VER_GREATER_EQUAL                                    3
+#define VER_LESS                                             4
+#define VER_LESS_EQUAL                                       5
+#define VER_AND                                              6
+#define VER_OR                                               7
+#define VER_CONDITION_MASK                                   7
+#define VER_NUM_BITS_PER_CONDITION_MASK                      3
+
+//
+// Timezone IDs
+//
+#define TIME_ZONE_ID_UNKNOWN                                 0
+#define TIME_ZONE_ID_STANDARD                                1
+#define TIME_ZONE_ID_DAYLIGHT                                2
+#define TIME_ZONE_ID_INVALID                                 0xFFFFFFFF
+
+//
+// RTL Lock Type (Critical Section or Resource)
+//
+#define RTL_CRITSECT_TYPE                                   0
+#define RTL_RESOURCE_TYPE                                   1
 
-#define IsFirstEntry(ListHead, Entry) \
-    ((ListHead)->Flink == Entry)
+#ifdef NTOS_MODE_USER
 
-#define IsLastEntry(ListHead, Entry) \
-    ((ListHead)->Blink == Entry)
+//
+// String Hash Algorithms
+//
+#define HASH_STRING_ALGORITHM_DEFAULT                       0
+#define HASH_STRING_ALGORITHM_X65599                        1
+#define HASH_STRING_ALGORITHM_INVALID                       0xffffffff
+
+//
+// RtlDuplicateString Flags
+//
+#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE         1
+#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING   2
+
+//
+// Codepages
+//
+#define NLS_MB_CODE_PAGE_TAG                                NlsMbCodePageTag
+#define NLS_MB_OEM_CODE_PAGE_TAG                            NlsMbOemCodePageTag
+#define NLS_OEM_LEAD_BYTE_INFO                              NlsOemLeadByteInfo
+#endif
+#define MAXIMUM_LEADBYTES                                   12
+
+//
+// RTL Debug Queries
+//
+#define RTL_DEBUG_QUERY_MODULES                             0x01
+#define RTL_DEBUG_QUERY_BACKTRACES                          0x02
+#define RTL_DEBUG_QUERY_HEAPS                               0x04
+#define RTL_DEBUG_QUERY_HEAP_TAGS                           0x08
+#define RTL_DEBUG_QUERY_HEAP_BLOCKS                         0x10
+#define RTL_DEBUG_QUERY_LOCKS                               0x20
+
+//
+// RTL Handle Flags
+//
+#define RTL_HANDLE_VALID                                    0x1
+
+//
+// RTL Atom Flags
+//
+#define RTL_ATOM_IS_PINNED                                  0x1
+
+//
+// Codepage Tags
+//
+#ifdef NTOS_MODE_USER
+extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG;
+extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
 
-/*
- * Constant String Macro
- */
-#define RTL_CONSTANT_STRING(__SOURCE_STRING__) \
-{ \
+//
+// Constant String Macro
+//
+#define RTL_CONSTANT_STRING(__SOURCE_STRING__)                  \
+{                                                               \
     sizeof(__SOURCE_STRING__) - sizeof((__SOURCE_STRING__)[0]), \
-    sizeof(__SOURCE_STRING__), \
-    (__SOURCE_STRING__) \
+    sizeof(__SOURCE_STRING__),                                  \
+    (__SOURCE_STRING__)                                         \
 }
 
-#define RtlEqualLuid(L1, L2) (((L1)->HighPart == (L2)->HighPart) && \
-                              ((L1)->LowPart  == (L2)->LowPart))
 #endif
 
-/* RTL Debug Queries */
-#define RTL_DEBUG_QUERY_MODULES         0x01
-#define RTL_DEBUG_QUERY_BACKTRACES      0x02
-#define RTL_DEBUG_QUERY_HEAPS           0x04
-#define RTL_DEBUG_QUERY_HEAP_TAGS       0x08
-#define RTL_DEBUG_QUERY_HEAP_BLOCKS     0x10
-#define RTL_DEBUG_QUERY_LOCKS           0x20
-
-/* RTL Handle Flags */
-#define RTL_HANDLE_VALID        0x1
-
-/* RTL Atom Flags */
-#define RTL_ATOM_IS_PINNED      0x1
-
-/* EXPORTED DATA *************************************************************/
 #ifdef NTOS_MODE_USER
-extern BOOLEAN NTSYSAPI NLS_MB_CODE_PAGE_TAG;
-extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
-#endif
-
-/* ENUMERATIONS **************************************************************/
 
-#ifdef NTOS_MODE_USER
+//
+// Table and Compare result types
+//
 typedef enum _TABLE_SEARCH_RESULT
 {
     TableEmptyTree,
@@ -265,26 +202,59 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS
     GenericGreaterThan,
     GenericEqual
 } RTL_GENERIC_COMPARE_RESULTS;
+
+#else
+
+//
+// ACL Query Information Classes
+//
+typedef enum _ACL_INFORMATION_CLASS
+{
+    AclRevisionInformation = 1,
+    AclSizeInformation
+} ACL_INFORMATION_CLASS;
+
 #endif
 
+//
+// RTL Path Types
+//
 typedef enum _RTL_PATH_TYPE
 {
     INVALID_PATH = 0,
-    UNC_PATH,              /* "//foo" */
-    ABSOLUTE_DRIVE_PATH,   /* "c:/foo" */
-    RELATIVE_DRIVE_PATH,   /* "c:foo" */
-    ABSOLUTE_PATH,         /* "/foo" */
-    RELATIVE_PATH,         /* "foo" */
-    DEVICE_PATH,           /* "//./foo" */
-    UNC_DOT_PATH           /* "//." */
+    UNC_PATH,              // "//foo"
+    ABSOLUTE_DRIVE_PATH,   // "c:/foo"
+    RELATIVE_DRIVE_PATH,   // "c:foo"
+    ABSOLUTE_PATH,         // "/foo"
+    RELATIVE_PATH,         // "foo"
+    DEVICE_PATH,           // "//./foo"
+    UNC_DOT_PATH           // "//."
 } RTL_PATH_TYPE;
 
-/* FUNCTION TYPES ************************************************************/
 #ifndef NTOS_MODE_USER
-typedef VOID (NTAPI *WAITORTIMERCALLBACKFUNC)(PVOID, BOOLEAN);
+
+//
+// Callback function for RTL Timers or Registered Waits
+//
+typedef VOID
+(NTAPI *WAITORTIMERCALLBACKFUNC)(
+    PVOID pvContext,
+    BOOLEAN fTimerOrWaitFired
+);
+
+//
+// Handler during Vectored RTL Exceptions
+//
+typedef LONG
+(NTAPI *PVECTORED_EXCEPTION_HANDLER)(
+    PEXCEPTION_POINTERS ExceptionPointers
+);
 
 #else
 
+//
+// Handler during regular RTL Exceptions
+//
 typedef EXCEPTION_DISPOSITION
 (NTAPI *PEXCEPTION_ROUTINE)(
     IN struct _EXCEPTION_RECORD *ExceptionRecord,
@@ -295,20 +265,18 @@ typedef EXCEPTION_DISPOSITION
 
 #endif
 
-struct _RTL_AVL_TABLE;
-struct _RTL_GENERIC_TABLE;
-struct _RTL_RANGE;
-
+//
+// Callback for RTL Heap Enumeration
+//
 typedef NTSTATUS
 (*PHEAP_ENUMERATION_ROUTINE)(
     IN PVOID HeapHandle,
     IN PVOID UserParam
 );
 
-typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER)(
-    PEXCEPTION_POINTERS ExceptionPointers
-);
-
+//
+// Thread and Process Start Routines for RtlCreateUserThread/Process
+//
 typedef ULONG (NTAPI *PTHREAD_START_ROUTINE)(
     PVOID Parameter
 );
@@ -319,6 +287,18 @@ typedef VOID
     PVOID Parameter
 );
 
+//
+// Declare empty structure definitions so that they may be referenced by
+// routines before they are defined
+//
+struct _RTL_AVL_TABLE;
+struct _RTL_GENERIC_TABLE;
+struct _RTL_RANGE;
+typedef struct _COMPRESSED_DATA_INFO COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
+
+//
+// Routines and callbacks for the RTL AVL/Generic Table package
+//
 typedef NTSTATUS
 (NTAPI *PRTL_AVL_MATCH_FUNCTION)(
     struct _RTL_AVL_TABLE *Table,
@@ -364,6 +344,9 @@ typedef VOID
     PVOID Buffer
 );
 
+//
+// RTL Query Registry callback
+//
 typedef NTSTATUS
 (NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
     IN PWSTR ValueName,
@@ -374,29 +357,43 @@ typedef NTSTATUS
     IN PVOID EntryContext
 );
 
-typedef NTSTATUS
-(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
-    IN PVOID Base,
-    IN OUT PVOID *CommitAddress,
-    IN OUT PSIZE_T CommitSize
-);
-
+//
+// RTL Range List callbacks
+//
 #ifdef NTOS_MODE_USER
 typedef BOOLEAN
-(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK) (
+(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK)(
     PVOID Context,
     struct _RTL_RANGE *Range
 );
-#endif
 
-/* TYPES *********************************************************************/
+//
+// Custom Heap Commit Routine for RtlCreateHeap
+//
+typedef NTSTATUS
+(NTAPI * PRTL_HEAP_COMMIT_ROUTINE)(
+    IN PVOID Base,
+    IN OUT PVOID *CommitAddress,
+    IN OUT PSIZE_T CommitSize
+);
 
-#ifdef NTOS_MODE_USER
+//
+// Version Info redefinitions
+//
 typedef OSVERSIONINFOW RTL_OSVERSIONINFOW;
 typedef LPOSVERSIONINFOW PRTL_OSVERSIONINFOW;
 typedef OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW;
 typedef LPOSVERSIONINFOEXW PRTL_OSVERSIONINFOEXW;
 
+//
+// Simple pointer definitions
+//
+typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION;
+typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;
+
+//
+// Parameters for RtlCreateHeap
+//
 typedef struct _RTL_HEAP_PARAMETERS
 {
     ULONG Length;
@@ -412,6 +409,9 @@ typedef struct _RTL_HEAP_PARAMETERS
     SIZE_T Reserved[2];
 } RTL_HEAP_PARAMETERS, *PRTL_HEAP_PARAMETERS;
 
+//
+// RTL Bitmap structures
+//
 typedef struct _RTL_BITMAP
 {
     ULONG SizeOfBitMap;
@@ -424,17 +424,9 @@ typedef struct _RTL_BITMAP_RUN
     ULONG NumberOfBits;
 } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
 
-typedef struct _COMPRESSED_DATA_INFO
-{
-    USHORT CompressionFormatAndEngine;
-    UCHAR CompressionUnitShift;
-    UCHAR ChunkShift;
-    UCHAR ClusterShift;
-    UCHAR Reserved;
-    USHORT NumberOfChunks;
-    ULONG CompressedChunkSizes[ANYSIZE_ARRAY];
-} COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
-
+//
+// RtlGenerateXxxName context
+//
 typedef struct _GENERATE_NAME_CONTEXT
 {
     USHORT Checksum;
@@ -446,6 +438,9 @@ typedef struct _GENERATE_NAME_CONTEXT
     ULONG LastIndexValue;
 } GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT;
 
+//
+// RTL Splay and Balanced Links structures
+//
 typedef struct _RTL_SPLAY_LINKS
 {
     struct _RTL_SPLAY_LINKS *Parent;
@@ -453,9 +448,18 @@ typedef struct _RTL_SPLAY_LINKS
     struct _RTL_SPLAY_LINKS *RightChild;
 } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
 
-typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION;
-typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;
+typedef struct _RTL_BALANCED_LINKS
+{
+    struct _RTL_BALANCED_LINKS *Parent;
+    struct _RTL_BALANCED_LINKS *LeftChild;
+    struct _RTL_BALANCED_LINKS *RightChild;
+    CHAR Balance;
+    UCHAR Reserved[3];
+} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
 
+//
+// RTL Avl/Generic Tables
+//
 typedef struct _RTL_GENERIC_TABLE
 {
     PRTL_SPLAY_LINKS TableRoot;
@@ -469,15 +473,6 @@ typedef struct _RTL_GENERIC_TABLE
     PVOID TableContext;
 } RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
 
-typedef struct _RTL_BALANCED_LINKS
-{
-    struct _RTL_BALANCED_LINKS *Parent;
-    struct _RTL_BALANCED_LINKS *LeftChild;
-    struct _RTL_BALANCED_LINKS *RightChild;
-    CHAR Balance;
-    UCHAR Reserved[3];
-} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
-
 typedef struct _RTL_AVL_TABLE
 {
     RTL_BALANCED_LINKS BalancedRoot;
@@ -493,6 +488,9 @@ typedef struct _RTL_AVL_TABLE
     PVOID TableContext;
 } RTL_AVL_TABLE, *PRTL_AVL_TABLE;
 
+//
+// RtlQueryRegistry Data
+//
 typedef struct _RTL_QUERY_REGISTRY_TABLE
 {
     PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
@@ -504,6 +502,9 @@ typedef struct _RTL_QUERY_REGISTRY_TABLE
     ULONG DefaultLength;
 } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
 
+//
+// RTL Unicode Table Structures
+//
 typedef struct _UNICODE_PREFIX_TABLE_ENTRY
 {
     CSHORT NodeTypeCode;
@@ -522,6 +523,9 @@ typedef struct _UNICODE_PREFIX_TABLE
     PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry;
 } UNICODE_PREFIX_TABLE, *PUNICODE_PREFIX_TABLE;
 
+//
+// Time Structure for RTL Time calls
+//
 typedef struct _TIME_FIELDS
 {
     CSHORT Year;
@@ -535,20 +539,18 @@ typedef struct _TIME_FIELDS
 } TIME_FIELDS, *PTIME_FIELDS;
 #endif
 
-typedef EXCEPTION_DISPOSITION
-(*PEXCEPTION_HANDLER)(
-    struct _EXCEPTION_RECORD*,
-    PVOID,
-    struct _CONTEXT*,
-    PVOID
-);
-
+//
+// ACE Definition
+//
 typedef struct _ACE
 {
     ACE_HEADER Header;
     ACCESS_MASK AccessMask;
 } ACE, *PACE;
 
+//
+// Information Structures for RTL Debug Functions
+//
 typedef struct _RTL_PROCESS_MODULE_INFORMATION
 {
     ULONG Reserved[2];
@@ -641,6 +643,9 @@ typedef struct _RTL_DEBUG_BUFFER
     PVOID Reserved[8];
 } RTL_DEBUG_BUFFER, *PRTL_DEBUG_BUFFER;
 
+//
+// RTL Handle Structures
+//
 typedef struct _RTL_HANDLE_TABLE_ENTRY
 {
     ULONG Flags;
@@ -658,12 +663,18 @@ typedef struct _RTL_HANDLE_TABLE
     PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles;
 } RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
 
+//
+// Exception Record
+//
 typedef struct _EXCEPTION_REGISTRATION_RECORD
 {
     struct _EXCEPTION_REGISTRATION_RECORD *Next;
     PEXCEPTION_HANDLER Handler;
 } EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
 
+//
+// Current Directory Structures
+//
 typedef struct _CURDIR
 {
     UNICODE_STRING DosPath;
@@ -679,6 +690,10 @@ typedef struct RTL_DRIVE_LETTER_CURDIR
 } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
 
 #ifndef NTOS_MODE_USER
+
+//
+// RTL Critical Section Structures
+//
 typedef struct _RTL_CRITICAL_SECTION_DEBUG
 {
     USHORT Type;
@@ -699,13 +714,16 @@ typedef struct _RTL_CRITICAL_SECTION
     HANDLE LockSemaphore;
     ULONG_PTR SpinCount;
 } RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
-#endif
 
-#ifdef NTOS_MODE_USER
+#else
+
+//
+// RTL Range List Structures
+//
 typedef struct _RTL_RANGE_LIST
 {
     LIST_ENTRY ListHead;
-    ULONG Flags;  /* RTL_RANGE_LIST_... flags */
+    ULONG Flags;
     ULONG Count;
     ULONG Stamp;
 } RTL_RANGE_LIST, *PRTL_RANGE_LIST;
@@ -717,7 +735,7 @@ typedef struct _RTL_RANGE
     PVOID UserData;
     PVOID Owner;
     UCHAR Attributes;
-    UCHAR Flags;  /* RTL_RANGE_... flags */
+    UCHAR Flags;
 } RTL_RANGE, *PRTL_RANGE;
 
 typedef struct _RANGE_LIST_ITERATOR
@@ -730,6 +748,9 @@ typedef struct _RANGE_LIST_ITERATOR
 
 #endif
 
+//
+// RTL Resource
+//
 typedef struct _RTL_RESOURCE
 {
     RTL_CRITICAL_SECTION Lock;
@@ -743,6 +764,9 @@ typedef struct _RTL_RESOURCE
     PVOID DebugInfo;
 } RTL_RESOURCE, *PRTL_RESOURCE;
 
+//
+// RTL Message Structures for PE Resources
+//
 typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
 {
     USHORT Length;
@@ -763,19 +787,9 @@ typedef struct _RTL_MESSAGE_RESOURCE_DATA
     RTL_MESSAGE_RESOURCE_BLOCK Blocks[1];
 } RTL_MESSAGE_RESOURCE_DATA, *PRTL_MESSAGE_RESOURCE_DATA;
 
-typedef struct _NLS_FILE_HEADER
-{
-    USHORT HeaderSize;
-    USHORT CodePage;
-    USHORT MaximumCharacterSize;
-    USHORT DefaultChar;
-    USHORT UniDefaultChar;
-    USHORT TransDefaultChar;
-    USHORT TransUniDefaultChar;
-    USHORT DBCSCodePage;
-    UCHAR LeadByte[MAXIMUM_LEADBYTES];
-} NLS_FILE_HEADER, *PNLS_FILE_HEADER;
-
+//
+// Structures for RtlCreateUserProcess
+//
 typedef struct _RTL_USER_PROCESS_PARAMETERS
 {
     ULONG MaximumLength;
@@ -817,6 +831,9 @@ typedef struct _RTL_USER_PROCESS_INFORMATION
     SECTION_IMAGE_INFORMATION ImageInformation;
 } RTL_USER_PROCESS_INFORMATION, *PRTL_USER_PROCESS_INFORMATION;
 
+//
+// RTL Atom Table Structures
+//
 typedef struct _RTL_ATOM_TABLE_ENTRY
 {
     struct _RTL_ATOM_TABLE_ENTRY *HashLink;
@@ -828,29 +845,34 @@ typedef struct _RTL_ATOM_TABLE_ENTRY
     WCHAR Name[1];
 } RTL_ATOM_TABLE_ENTRY, *PRTL_ATOM_TABLE_ENTRY;
 
-#ifdef NTOS_MODE_USER
-typedef RTL_CRITICAL_SECTION FAST_MUTEX;
-typedef RTL_HANDLE_TABLE HANDLE_TABLE, *PHANDLE_TABLE;
-#endif
 typedef struct _RTL_ATOM_TABLE
 {
     ULONG Signature;
     union
     {
+#ifdef NTOS_MODE_USER
         RTL_CRITICAL_SECTION CriticalSection;
+#else
         FAST_MUTEX FastMutex;
+#endif
     };
     union
     {
+#ifdef NTOS_MODE_USER
         RTL_HANDLE_TABLE RtlHandleTable;
+#else
         PHANDLE_TABLE ExHandleTable;
+#endif
     };
     ULONG NumberOfBuckets;
     PRTL_ATOM_TABLE_ENTRY Buckets[1];
 } RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
 
 #ifndef NTOS_MODE_USER
-    
+
+//
+// System Time and Timezone Structures
+//
 typedef struct _SYSTEMTIME
 {
     USHORT wYear;
@@ -874,16 +896,22 @@ typedef struct _TIME_ZONE_INFORMATION
     LONG DaylightBias;
 } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
 
-typedef enum _ACL_INFORMATION_CLASS
-{
-    AclRevisionInformation = 1,
-    AclSizeInformation
-} ACL_INFORMATION_CLASS;
-
-#define TIME_ZONE_ID_UNKNOWN 0
-#define TIME_ZONE_ID_STANDARD 1
-#define TIME_ZONE_ID_DAYLIGHT 2
-#define TIME_ZONE_ID_INVALID 0xFFFFFFFF
 #endif
 
+//
+// Header for NLS Files
+//
+typedef struct _NLS_FILE_HEADER
+{
+    USHORT HeaderSize;
+    USHORT CodePage;
+    USHORT MaximumCharacterSize;
+    USHORT DefaultChar;
+    USHORT UniDefaultChar;
+    USHORT TransDefaultChar;
+    USHORT TransUniDefaultChar;
+    USHORT DBCSCodePage;
+    UCHAR LeadByte[MAXIMUM_LEADBYTES];
+} NLS_FILE_HEADER, *PNLS_FILE_HEADER;
+
 #endif
index 70ac60d..3b00bdf 100644 (file)
@@ -1,20 +1,27 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/sefuncs.h
- * PURPOSE:         Defintions for Security Subsystem Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
-#ifndef _SEFUNCS_H
-#define _SEFUNCS_H
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    sefuncs.h
+
+Abstract:
+
+    Function definitions for the security manager.
 
-/* DEPENDENCIES **************************************************************/
+Author:
 
-/* FUNCTION TYPES ************************************************************/
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
 
-/* PROTOTYPES ****************************************************************/
+--*/
 
+#ifndef _SEFUNCS_H
+#define _SEFUNCS_H
+
+//
+// Security Descriptors
+//
 NTSTATUS
 NTAPI
 SeCaptureSecurityDescriptor(
@@ -25,6 +32,17 @@ SeCaptureSecurityDescriptor(
     OUT PSECURITY_DESCRIPTOR *CapturedSecurityDescriptor
 );
 
+NTSTATUS
+NTAPI
+SeReleaseSecurityDescriptor(
+    IN PSECURITY_DESCRIPTOR CapturedSecurityDescriptor,
+    IN KPROCESSOR_MODE CurrentMode,
+    IN BOOLEAN CaptureIfKernelMode
+);
+
+//
+// Access States
+//
 NTSTATUS
 NTAPI
 SeCreateAccessState(
@@ -36,16 +54,13 @@ SeCreateAccessState(
 
 VOID
 NTAPI
-SeDeleteAccessState(IN PACCESS_STATE AccessState);
-
-NTSTATUS
-NTAPI
-SeReleaseSecurityDescriptor(
-    IN PSECURITY_DESCRIPTOR CapturedSecurityDescriptor,
-    IN KPROCESSOR_MODE CurrentMode,
-    IN BOOLEAN CaptureIfKernelMode
+SeDeleteAccessState(
+    IN PACCESS_STATE AccessState
 );
 
+//
+// Impersonation
+//
 SECURITY_IMPERSONATION_LEVEL
 NTAPI
 SeTokenImpersonationLevel(
index a148fa2..b8eef0d 100644 (file)
@@ -1,19 +1,31 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/setypes.h
- * PURPOSE:         Defintions for Security Subsystem Types not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    setypes.h
+
+Abstract:
+
+    Type definitions for the security manager.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _SETYPES_H
 #define _SETYPES_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 
-/* EXPORTED DATA *************************************************************/
-
-/* CONSTANTS *****************************************************************/
+//
+// Privilege constants
+//
 #ifdef NTOS_MODE_USER
 #define SE_MIN_WELL_KNOWN_PRIVILEGE       (2L)
 #define SE_CREATE_TOKEN_PRIVILEGE         (2L)
 #define SE_MAX_WELL_KNOWN_PRIVILEGE       (SE_REMOTE_SHUTDOWN_PRIVILEGE)
 #endif
 
-/* ENUMERATIONS **************************************************************/
-
-/* TYPES *********************************************************************/
-
+//
+// Policy types
+//
 #ifndef NTOS_MODE_USER
 typedef struct _SEP_AUDIT_POLICY_CATEGORIES
 {
@@ -77,6 +88,14 @@ typedef struct _SEP_AUDIT_POLICY
     };
 } SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY;
 
+typedef struct _SE_AUDIT_PROCESS_CREATION_INFO
+{
+    POBJECT_NAME_INFORMATION ImageFileName;
+} SE_AUDIT_PROCESS_CREATION_INFO, *PSE_AUDIT_PROCESS_CREATION_INFO;
+
+//
+// Token and auxiliary data
+//
 typedef struct _TOKEN
 {
     TOKEN_SOURCE TokenSource;                         /* 0x00 */
@@ -118,10 +137,5 @@ typedef struct _AUX_DATA
     ULONG Reserved;
 } AUX_DATA, *PAUX_DATA;
 
-typedef struct _SE_AUDIT_PROCESS_CREATION_INFO
-{
-    POBJECT_NAME_INFORMATION ImageFileName;
-} SE_AUDIT_PROCESS_CREATION_INFO, *PSE_AUDIT_PROCESS_CREATION_INFO;
-
 #endif
 #endif
index 6a61d6a..bef6d3d 100644 (file)
@@ -1,21 +1,33 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/umfuncs.h
- * PURPOSE:         Prototypes for NT Library Functions
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    umfuncs.h
+
+Abstract:
+
+    Function definitions for Native DLL (ntdll) APIs exclusive to User Mode.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _UMFUNCS_H
 #define _UMFUNCS_H
 
-/* DEPENDENCIES **************************************************************/
+//
+// Don't force inclusion of csrss header, leave this opaque.
+//
 struct _CSR_API_MESSAGE;
 struct _CSR_CAPTURE_BUFFER;
 
-/* PROTOTYPES ****************************************************************/
-
-/*
- * CSR Functions
- */
+//
+// CSR Functions
+//
 PVOID
 NTAPI
 CsrAllocateCaptureBuffer(
@@ -27,17 +39,17 @@ ULONG
 NTAPI
 CsrAllocateMessagePointer(
     struct _CSR_CAPTURE_BUFFER *CaptureBuffer,
-       ULONG MessageLength,
-       PVOID *CaptureData
+    ULONG MessageLength,
+    PVOID *CaptureData
 );
 
 VOID
 NTAPI
 CsrCaptureMessageBuffer(
     struct _CSR_CAPTURE_BUFFER *CaptureBuffer,
-       PVOID MessageString,
-       ULONG StringLength,
-       PVOID *CapturedData
+    PVOID MessageString,
+    ULONG StringLength,
+    PVOID *CapturedData
 );
 
 NTSTATUS
@@ -61,11 +73,15 @@ CsrClientCallServer(
 
 NTSTATUS
 NTAPI
-CsrIdentifyAlertableThread(VOID);
+CsrIdentifyAlertableThread(
+    VOID
+);
 
 VOID
 NTAPI
-CsrFreeCaptureBuffer(struct _CSR_CAPTURE_BUFFER *CaptureBuffer);
+CsrFreeCaptureBuffer(
+    struct _CSR_CAPTURE_BUFFER *CaptureBuffer
+);
 
 NTSTATUS
 NTAPI
@@ -94,57 +110,56 @@ CsrProbeForWrite(
     IN ULONG Alignment
 );
 
-/*
- * Debug Functions
- */
-ULONG
-__cdecl
-DbgPrint(
-    IN PCH  Format,
-    IN ...
-);
-
-VOID
-NTAPI
-DbgBreakPoint(VOID);
-
+//
+// Debug Functions
+//
 NTSYSAPI
 VOID
 NTAPI
-DbgBreakPointWithStatus(IN ULONG Status);
+DbgBreakPointWithStatus(
+    IN ULONG Status
+);
 
 NTSTATUS
 NTAPI
-DbgUiConnectToDbg(VOID);
+DbgUiConnectToDbg(
+    VOID
+);
 
 NTSTATUS
 NTAPI
 DbgUiContinue(
-    PCLIENT_ID ClientId,
-    ULONG ContinueStatus
+    IN PCLIENT_ID ClientId,
+    IN ULONG ContinueStatus
 );
 
 NTSTATUS
 NTAPI
 DbgUiWaitStateChange(
-    PDBGUI_WAIT_STATE_CHANGE DbgUiWaitStateCange,
-    PLARGE_INTEGER TimeOut
+    IN PDBGUI_WAIT_STATE_CHANGE DbgUiWaitStateCange,
+    IN PLARGE_INTEGER TimeOut
 );
 
 VOID
 NTAPI
-DbgUiRemoteBreakin(VOID);
+DbgUiRemoteBreakin(
+    VOID
+);
 
 NTSTATUS
 NTAPI
-DbgUiIssueRemoteBreakin(HANDLE Process);
+DbgUiIssueRemoteBreakin(
+    IN HANDLE Process
+);
 
-/*
- * Loader Functions
- */
+//
+// Loader Functions
+//
 NTSTATUS
 NTAPI
-LdrDisableThreadCalloutsForDll(IN PVOID BaseAddress);
+LdrDisableThreadCalloutsForDll(
+    IN PVOID BaseAddress
+);
 
 NTSTATUS
 NTAPI
@@ -219,15 +234,21 @@ LdrQueryProcessModuleInformation(
 
 NTSTATUS
 NTAPI
-LdrShutdownProcess(VOID);
+LdrShutdownProcess(
+    VOID
+);
 
 NTSTATUS
 NTAPI
-LdrShutdownThread(VOID);
+LdrShutdownThread(
+    VOID
+);
 
 NTSTATUS
 NTAPI
-LdrUnloadDll(IN PVOID BaseAddress);
+LdrUnloadDll(
+    IN PVOID BaseAddress
+);
 
 NTSTATUS
 NTAPI
@@ -239,4 +260,3 @@ LdrVerifyImageMatchesChecksum(
 );
 
 #endif
-/* EOF */
index 9031b1a..005812c 100644 (file)
@@ -1,64 +1,88 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/umtypes.h
- * PURPOSE:         Definitions needed for Native Headers if target is not Kernel-Mode.
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    umtypes.h
+
+Abstract:
+
+    Type definitions for the basic native types.
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
 
 #if !defined(_NTDEF_) && !defined(_NTDEF_H)
 #define _NTDEF_
 #define _NTDEF_H
+#undef WIN32_NO_STATUS
 
-/* DEPENDENCIES **************************************************************/
+//
+// Dependencies
+//
 #include <winioctl.h>
 #include <ntnls.h>
-#undef WIN32_NO_STATUS
 #include <ntstatus.h>
 
-/* CONSTANTS *****************************************************************/
+//
+// Compiler Definitions
+//
+#ifndef _MANAGED
+#if defined(_M_IX86)
+#define FASTCALL                _fastcall
+#else
+#define FASTCALL
+#endif
+#else
+#define FASTCALL                NTAPI
+#endif
+
+#if !defined(_M_CEE_PURE)
+#define NTAPI_INLINE            NTAPI
+#else
+#define NTAPI_INLINE
+#endif
 
-/* NTAPI/NTOSAPI Define */
-#define DECLSPEC_ADDRSAFE
-#define NTAPI __stdcall
-#define FASTCALL __fastcall
 #if !defined(_NTSYSTEM_)
-#define NTSYSAPI     DECLSPEC_IMPORT
-#define NTSYSCALLAPI DECLSPEC_IMPORT
+#define NTSYSAPI                DECLSPEC_IMPORT
+#define NTSYSCALLAPI            DECLSPEC_IMPORT
 #else
 #define NTSYSAPI
 #if defined(_NTDLLBUILD_)
 #define NTSYSCALLAPI
 #else
-#define NTSYSCALLAPI DECLSPEC_ADDRSAFE
+#define NTSYSCALLAPI            DECLSPEC_ADDRSAFE
 #endif
 #endif
-#if !defined(_M_CEE_PURE)
-#define NTAPI_INLINE    NTAPI
-#else
-#define NTAPI_INLINE
-#endif
 
-/* Native API Return Value Macros */
-#define NT_SUCCESS(x) ((x)>=0)
-#define NT_WARNING(x) ((ULONG)(x)>>30==2)
-#define NT_ERROR(x) ((ULONG)(x)>>30==3)
-
-/* Limits */
-#define MINCHAR             0x80
-#define MAXCHAR             0x7f
-#define MINSHORT            0x8000
-#define MAXSHORT            0x7fff
-#define MINLONG             0x80000000
-#define MAXLONG             0x7fffffff
-#define MAXUCHAR            0xff
-#define MAXUSHORT           0xffff
-#define MAXULONG            0xffffffff
-
-/* TYPES *********************************************************************/
-
-/* Basic Types that aren't defined in User-Mode Headers */
+//
+// Native API Return Value Macros
+//
+#define NT_SUCCESS(Status)      (((NTSTATUS)(Status)) >= 0)
+#define NT_INFORMATION(Status)  ((((ULONG)(Status)) >> 30) == 1)
+#define NT_WARNING(Status)      ((((ULONG)(Status)) >> 30) == 2)
+#define NT_ERROR(Status)        ((((ULONG)(Status)) >> 30) == 3)
+
+//
+// Limits
+//
+#define MINCHAR                 0x80
+#define MAXCHAR                 0x7f
+#define MINSHORT                0x8000
+#define MAXSHORT                0x7fff
+#define MINLONG                 0x80000000
+#define MAXLONG                 0x7fffffff
+#define MAXUCHAR                0xff
+#define MAXUSHORT               0xffff
+#define MAXULONG                0xffffffff
+
+//
+// Basic Types that aren't defined in User-Mode Headers
+//
 typedef CONST int CINT;
 typedef CONST char *PCSZ;
 typedef ULONG CLONG;
@@ -67,10 +91,12 @@ typedef CSHORT *PCSHORT;
 typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
 typedef LONG KPRIORITY;
 typedef LONG NTSTATUS, *PNTSTATUS;
-#define STATIC static
 
-/* Basic NT Types */
+//
+// Basic NT Types
+//
 #if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)
+
 typedef struct _UNICODE_STRING
 {
     USHORT Length;
index 5e3f893..327ac9d 100644 (file)
@@ -1,24 +1,36 @@
-/*
- * PROJECT:         ReactOS Native Headers
- * FILE:            include/ndk/zwfuncs.h
- * PURPOSE:         Defintions for Native Functions not defined in DDK/IFS
- * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
- * UPDATE HISTORY:
- *                  Created 06/10/04
- */
+/*++ NDK Version: 0095
+
+Copyright (c) Alex Ionescu.  All rights reserved.
+
+Header Name:
+
+    zwfuncs.h
+
+Abstract:
+
+    Function definitions for Native APIs (Nt/Zw).
+
+Author:
+
+    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+
+--*/
+
 #ifndef _ZWFUNCS_H
 #define _ZWFUNCS_H
-
-/* DEPENDENCIES **************************************************************/
 #define _WMIKM_
+
+//
+// Dependencies
+//
 #include <evntrace.h>
 #include "lpctypes.h"
 #include "dbgktypes.h"
 #include "kdtypes.h"
 
-/* FUNCTION TYPES ************************************************************/
-
-/* PROTOTYPES ****************************************************************/
+//
+// FIXME: Group these in logical groups.
+//
 
 NTSTATUS
 NTAPI
@@ -90,18 +102,18 @@ NtAccessCheckAndAuditAlarm(
 NTSTATUS
 NTAPI
 NtAddAtom(
-    IN     PWSTR  AtomName,
-    IN     ULONG AtomNameLength,
-    IN OUT PRTL_ATOM  Atom
+    IN PWSTR AtomName,
+    IN ULONG AtomNameLength,
+    IN OUT PRTL_ATOM Atom
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwAddAtom(
-    IN     PWSTR  AtomName,
-    IN     ULONG AtomNameLength,
-    IN OUT PRTL_ATOM  Atom
+    IN PWSTR AtomName,
+    IN ULONG AtomNameLength,
+    IN OUT PRTL_ATOM Atom
 );
 
 NTSTATUS
@@ -124,11 +136,11 @@ NTSTATUS
 NTAPI
 NtAdjustGroupsToken(
     IN HANDLE TokenHandle,
-    IN BOOLEAN  ResetToDefault,
-    IN PTOKEN_GROUPS  NewState,
-    IN ULONG  BufferLength,
-    OUT PTOKEN_GROUPS  PreviousState OPTIONAL,
-    OUT PULONG  ReturnLength
+    IN BOOLEAN ResetToDefault,
+    IN PTOKEN_GROUPS NewState,
+    IN ULONG BufferLength,
+    OUT PTOKEN_GROUPS PreviousState OPTIONAL,
+    OUT PULONG ReturnLength
 );
 
 NTSYSAPI
@@ -136,22 +148,22 @@ NTSTATUS
 NTAPI
 ZwAdjustGroupsToken(
     IN HANDLE TokenHandle,
-    IN BOOLEAN  ResetToDefault,
-    IN PTOKEN_GROUPS  NewState,
-    IN ULONG  BufferLength,
-    OUT PTOKEN_GROUPS  PreviousState,
-    OUT PULONG  ReturnLength
+    IN BOOLEAN ResetToDefault,
+    IN PTOKEN_GROUPS NewState,
+    IN ULONG BufferLength,
+    OUT PTOKEN_GROUPS PreviousState,
+    OUT PULONG ReturnLength
 );
 
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NtAdjustPrivilegesToken(
-    IN HANDLE  TokenHandle,
-    IN BOOLEAN  DisableAllPrivileges,
-    IN PTOKEN_PRIVILEGES  NewState,
-    IN ULONG  BufferLength,
-    OUT PTOKEN_PRIVILEGES  PreviousState,
+    IN HANDLE TokenHandle,
+    IN BOOLEAN DisableAllPrivileges,
+    IN PTOKEN_PRIVILEGES NewState,
+    IN ULONG BufferLength,
+    OUT PTOKEN_PRIVILEGES PreviousState,
     OUT PULONG ReturnLength
 );
 
@@ -159,11 +171,11 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwAdjustPrivilegesToken(
-    IN HANDLE  TokenHandle,
-    IN BOOLEAN  DisableAllPrivileges,
-    IN PTOKEN_PRIVILEGES  NewState,
-    IN ULONG  BufferLength,
-    OUT PTOKEN_PRIVILEGES  PreviousState,
+    IN HANDLE TokenHandle,
+    IN BOOLEAN DisableAllPrivileges,
+    IN PTOKEN_PRIVILEGES NewState,
+    IN ULONG BufferLength,
+    OUT PTOKEN_PRIVILEGES PreviousState,
     OUT PULONG ReturnLength
 );
 
@@ -233,10 +245,10 @@ NTAPI
 NtAllocateVirtualMemory(
     IN HANDLE ProcessHandle,
     IN OUT PVOID *BaseAddress,
-    IN ULONG  ZeroBits,
-    IN OUT PULONG  RegionSize,
-    IN ULONG  AllocationType,
-    IN ULONG  Protect
+    IN ULONG ZeroBits,
+    IN OUT PULONG RegionSize,
+    IN ULONG AllocationType,
+    IN ULONG Protect
 );
 
 NTSYSAPI
@@ -245,10 +257,10 @@ NTAPI
 ZwAllocateVirtualMemory(
     IN HANDLE ProcessHandle,
     IN OUT PVOID *BaseAddress,
-    IN ULONG  ZeroBits,
-    IN OUT PULONG  RegionSize,
-    IN ULONG  AllocationType,
-    IN ULONG  Protect
+    IN ULONG ZeroBits,
+    IN OUT PULONG RegionSize,
+    IN ULONG AllocationType,
+    IN ULONG Protect
 );
 
 NTSTATUS
@@ -535,21 +547,21 @@ ZwCreateFile(
 NTSTATUS
 NTAPI
 NtCreateIoCompletion(
-    OUT PHANDLE             IoCompletionHandle,
-    IN  ACCESS_MASK         DesiredAccess,
-    IN  POBJECT_ATTRIBUTES  ObjectAttributes,
-    IN  ULONG               NumberOfConcurrentThreads
-    );
+    OUT PHANDLE IoCompletionHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes,
+    IN ULONG NumberOfConcurrentThreads
+);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwCreateIoCompletion(
-   OUT PHANDLE             IoCompletionHandle,
-   IN  ACCESS_MASK         DesiredAccess,
-   IN  POBJECT_ATTRIBUTES  ObjectAttributes,
-   IN  ULONG               NumberOfConcurrentThreads
-   );
+   OUT PHANDLE IoCompletionHandle,
+   IN ACCESS_MASK DesiredAccess,
+   IN POBJECT_ATTRIBUTES ObjectAttributes,
+   IN ULONG NumberOfConcurrentThreads
+);
 
 NTSTATUS
 NTAPI
@@ -827,13 +839,13 @@ NTSTATUS
 NTAPI
 NtCreateThread(
     OUT PHANDLE ThreadHandle,
-    IN  ACCESS_MASK DesiredAccess,
-    IN  POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
-    IN  HANDLE ProcessHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN HANDLE ProcessHandle,
     OUT PCLIENT_ID ClientId,
-    IN  PCONTEXT ThreadContext,
-    IN  PINITIAL_TEB UserStack,
-    IN  BOOLEAN CreateSuspended
+    IN PCONTEXT ThreadContext,
+    IN PINITIAL_TEB UserStack,
+    IN BOOLEAN CreateSuspended
 );
 
 NTSYSAPI
@@ -1305,9 +1317,9 @@ NTSTATUS
 NTAPI
 NtFreeVirtualMemory(
     IN HANDLE ProcessHandle,
-    IN PVOID  *BaseAddress,
-    IN PULONG  RegionSize,
-    IN ULONG  FreeType
+    IN PVOID *BaseAddress,
+    IN PULONG RegionSize,
+    IN ULONG FreeType
 );
 
 NTSYSAPI
@@ -1315,9 +1327,9 @@ NTSTATUS
 NTAPI
 ZwFreeVirtualMemory(
     IN HANDLE ProcessHandle,
-    IN PVOID  *BaseAddress,
-    IN PULONG  RegionSize,
-    IN ULONG  FreeType
+    IN PVOID *BaseAddress,
+    IN PULONG RegionSize,
+    IN ULONG FreeType
 );
 
 NTSYSCALLAPI
@@ -1471,15 +1483,17 @@ ZwIsProcessInJob(
 
 NTSTATUS
 NTAPI
-NtListenPort(HANDLE PortHandle,
-             PPORT_MESSAGE ConnectionRequest
+NtListenPort(
+    HANDLE PortHandle,
+    PPORT_MESSAGE ConnectionRequest
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
-ZwListenPort(HANDLE PortHandle,
-             PPORT_MESSAGE ConnectionRequest
+ZwListenPort(
+    HANDLE PortHandle,
+    PPORT_MESSAGE ConnectionRequest
 );
 
 NTSTATUS
@@ -1531,16 +1545,16 @@ NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NtLockFile(
-    IN  HANDLE FileHandle,
-    IN  HANDLE Event OPTIONAL,
-    IN  PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-    IN  PVOID ApcContext OPTIONAL,
+    IN HANDLE FileHandle,
+    IN HANDLE Event OPTIONAL,
+    IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+    IN PVOID ApcContext OPTIONAL,
     OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  PLARGE_INTEGER ByteOffset,
-    IN  PLARGE_INTEGER Length,
-    IN  ULONG Key,
-    IN  BOOLEAN FailImmediatedly,
-    IN  BOOLEAN ExclusiveLock
+    IN PLARGE_INTEGER ByteOffset,
+    IN PLARGE_INTEGER Length,
+    IN ULONG Key,
+    IN BOOLEAN FailImmediatedly,
+    IN BOOLEAN ExclusiveLock
 );
 
 
@@ -1548,16 +1562,16 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwLockFile(
-    IN  HANDLE FileHandle,
-    IN  HANDLE Event OPTIONAL,
-    IN  PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-    IN  PVOID ApcContext OPTIONAL,
+    IN HANDLE FileHandle,
+    IN HANDLE Event OPTIONAL,
+    IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+    IN PVOID ApcContext OPTIONAL,
     OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  PLARGE_INTEGER ByteOffset,
-    IN  PLARGE_INTEGER Length,
-    IN  ULONG Key,
-    IN  BOOLEAN FailImmediatedly,
-    IN  BOOLEAN ExclusiveLock
+    IN PLARGE_INTEGER ByteOffset,
+    IN PLARGE_INTEGER Length,
+    IN ULONG Key,
+    IN BOOLEAN FailImmediatedly,
+    IN BOOLEAN ExclusiveLock
 );
 
 NTSTATUS
@@ -2305,26 +2319,26 @@ ZwQueryDirectoryFile(
 NTSTATUS
 NTAPI
 NtQueryDirectoryObject(
-    IN     HANDLE DirectoryHandle,
-    OUT    PVOID Buffer,
-    IN     ULONG BufferLength,
-    IN     BOOLEAN ReturnSingleEntry,
-    IN     BOOLEAN RestartScan,
+    IN HANDLE DirectoryHandle,
+    OUT PVOID Buffer,
+    IN ULONG BufferLength,
+    IN BOOLEAN ReturnSingleEntry,
+    IN BOOLEAN RestartScan,
     IN OUT PULONG Context,
-    OUT    PULONG ReturnLength OPTIONAL
+    OUT PULONG ReturnLength OPTIONAL
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQueryDirectoryObject(
-    IN     HANDLE DirectoryHandle,
-    OUT    PVOID Buffer,
-    IN     ULONG BufferLength,
-    IN     BOOLEAN ReturnSingleEntry,
-    IN     BOOLEAN RestartScan,
+    IN HANDLE DirectoryHandle,
+    OUT PVOID Buffer,
+    IN ULONG BufferLength,
+    IN BOOLEAN ReturnSingleEntry,
+    IN BOOLEAN RestartScan,
     IN OUT PULONG Context,
-    OUT    PULONG ReturnLength OPTIONAL
+    OUT PULONG ReturnLength OPTIONAL
 );
 
 NTSTATUS
@@ -2483,22 +2497,22 @@ ZwQueryInformationPort(
 NTSTATUS
 NTAPI
 NtQueryInformationProcess(
-    IN HANDLE  ProcessHandle,
-    IN PROCESSINFOCLASS  ProcessInformationClass,
-    OUT PVOID  ProcessInformation,
-    IN ULONG  ProcessInformationLength,
-    OUT PULONG  ReturnLength OPTIONAL
+    IN HANDLE ProcessHandle,
+    IN PROCESSINFOCLASS ProcessInformationClass,
+    OUT PVOID ProcessInformation,
+    IN ULONG ProcessInformationLength,
+    OUT PULONG ReturnLength OPTIONAL
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQueryInformationProcess(
-    IN HANDLE  ProcessHandle,
-    IN PROCESSINFOCLASS  ProcessInformationClass,
-    OUT PVOID  ProcessInformation,
-    IN ULONG  ProcessInformationLength,
-    OUT PULONG  ReturnLength OPTIONAL
+    IN HANDLE ProcessHandle,
+    IN PROCESSINFOCLASS ProcessInformationClass,
+    OUT PVOID ProcessInformation,
+    IN ULONG ProcessInformationLength,
+    OUT PULONG ReturnLength OPTIONAL
 );
 #endif
 
@@ -2576,10 +2590,10 @@ ZwQueryIntervalProfile(
 NTSTATUS
 NTAPI
 NtQueryIoCompletion(
-    IN  HANDLE IoCompletionHandle,
-    IN  IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
+    IN HANDLE IoCompletionHandle,
+    IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
     OUT PVOID IoCompletionInformation,
-    IN  ULONG IoCompletionInformationLength,
+    IN ULONG IoCompletionInformationLength,
     OUT PULONG ResultLength OPTIONAL
 );
 
@@ -2587,10 +2601,10 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQueryIoCompletion(
-    IN  HANDLE IoCompletionHandle,
-    IN  IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
+    IN HANDLE IoCompletionHandle,
+    IN IO_COMPLETION_INFORMATION_CLASS IoCompletionInformationClass,
     OUT PVOID IoCompletionInformation,
-    IN  ULONG IoCompletionInformationLength,
+    IN ULONG IoCompletionInformationLength,
     OUT PULONG ResultLength OPTIONAL
 );
 
@@ -2771,10 +2785,10 @@ ZwQuerySecurityObject(
 NTSTATUS
 NTAPI
 NtQuerySemaphore(
-    IN  HANDLE SemaphoreHandle,
-    IN  SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
+    IN HANDLE SemaphoreHandle,
+    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
     OUT PVOID SemaphoreInformation,
-    IN  ULONG Length,
+    IN ULONG Length,
     OUT PULONG ReturnLength
 );
 
@@ -2782,10 +2796,10 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQuerySemaphore(
-    IN  HANDLE SemaphoreHandle,
-    IN  SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
+    IN HANDLE SemaphoreHandle,
+    IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
     OUT PVOID SemaphoreInformation,
-    IN  ULONG Length,
+    IN ULONG Length,
     OUT PULONG ReturnLength
 );
 
@@ -2828,9 +2842,9 @@ ZwQuerySystemEnvironmentValue(
 NTSTATUS
 NTAPI
 NtQuerySystemInformation(
-    IN  SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
     OUT PVOID SystemInformation,
-    IN  ULONG Length,
+    IN ULONG Length,
     OUT PULONG ResultLength
 );
 
@@ -2838,9 +2852,9 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwQuerySystemInformation(
-    IN  SYSTEM_INFORMATION_CLASS SystemInformationClass,
+    IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
     OUT PVOID SystemInformation,
-    IN  ULONG Length,
+    IN ULONG Length,
     OUT PULONG ResultLength
 );
 
@@ -3112,7 +3126,7 @@ NtReadVirtualMemory(
     IN HANDLE ProcessHandle,
     IN PVOID BaseAddress,
     OUT PVOID Buffer,
-    IN ULONG  NumberOfBytesToRead,
+    IN ULONG NumberOfBytesToRead,
     OUT PULONG NumberOfBytesRead
 );
 
@@ -3123,7 +3137,7 @@ ZwReadVirtualMemory(
     IN HANDLE ProcessHandle,
     IN PVOID BaseAddress,
     OUT PVOID Buffer,
-    IN ULONG  NumberOfBytesToRead,
+    IN ULONG NumberOfBytesToRead,
     OUT PULONG NumberOfBytesRead
 );
 
@@ -3158,8 +3172,8 @@ ZwReleaseMutant(
 NTSTATUS
 NTAPI
 NtReleaseSemaphore(
-    IN  HANDLE SemaphoreHandle,
-    IN  LONG ReleaseCount,
+    IN HANDLE SemaphoreHandle,
+    IN LONG ReleaseCount,
     OUT PLONG PreviousCount
 );
 
@@ -3167,30 +3181,30 @@ NTSYSAPI
 NTSTATUS
 NTAPI
 ZwReleaseSemaphore(
-    IN  HANDLE SemaphoreHandle,
-    IN  LONG ReleaseCount,
+    IN HANDLE SemaphoreHandle,
+    IN LONG ReleaseCount,
     OUT PLONG PreviousCount
 );
 
 NTSTATUS
 NTAPI
 NtRemoveIoCompletion(
-    IN  HANDLE IoCompletionHandle,
+    IN HANDLE IoCompletionHandle,
     OUT PVOID *CompletionKey,
     OUT PVOID *CompletionContext,
     OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  PLARGE_INTEGER Timeout OPTIONAL
+    IN PLARGE_INTEGER Timeout OPTIONAL
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwRemoveIoCompletion(
-    IN  HANDLE IoCompletionHandle,
+    IN HANDLE IoCompletionHandle,
     OUT PVOID *CompletionKey,
     OUT PVOID *CompletionContext,
     OUT PIO_STATUS_BLOCK IoStatusBlock,
-    IN  PLARGE_INTEGER Timeout OPTIONAL
+    IN PLARGE_INTEGER Timeout OPTIONAL
 );
 
 NTSTATUS
@@ -3213,114 +3227,115 @@ ZwReplaceKey(
 NTSTATUS
 NTAPI
 NtReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcReply
+    IN HANDLE PortHandle,
+    IN PPORT_MESSAGE LpcReply
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcReply
+    IN HANDLE PortHandle,
+    IN PPORT_MESSAGE LpcReply
 );
 
 NTSTATUS
 NTAPI
 NtReplyWaitReceivePort(
-    HANDLE PortHandle,
-    PVOID *PortContext OPTIONAL,
-    PPORT_MESSAGE ReplyMessage OPTIONAL,
-    PPORT_MESSAGE ReceiveMessage
+    IN HANDLE PortHandle,
+    IN PVOID *PortContext OPTIONAL,
+    IN PPORT_MESSAGE ReplyMessage OPTIONAL,
+    OUT PPORT_MESSAGE ReceiveMessage
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwReplyWaitReceivePort(
-    HANDLE PortHandle,
-    PVOID *PortContext OPTIONAL,
-    PPORT_MESSAGE ReplyMessage,
-    PPORT_MESSAGE ReceiveMessage
+    IN HANDLE PortHandle,
+    IN PVOID *PortContext OPTIONAL,
+    IN PPORT_MESSAGE ReplyMessage OPTIONAL,
+    OUT PPORT_MESSAGE ReceiveMessage
 );
 
 NTSTATUS
 NTAPI
 NtReplyWaitReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE ReplyMessage
+    IN HANDLE PortHandle,
+    OUT PPORT_MESSAGE ReplyMessage
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwReplyWaitReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE ReplyMessage
+    IN HANDLE PortHandle,
+    OUT PPORT_MESSAGE ReplyMessage
 );
 
 NTSTATUS
 NTAPI
 NtRequestPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcMessage);
+    IN HANDLE PortHandle,
+    IN PPORT_MESSAGE LpcMessage
+);
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwRequestPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcMessage
+    IN HANDLE PortHandle,
+    IN PPORT_MESSAGE LpcMessage
 );
 
 NTSYSCALLAPI
 NTSTATUS
 NTAPI
 NtRequestWaitReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcReply,
-    PPORT_MESSAGE LpcRequest
+    IN HANDLE PortHandle,
+    OUT PPORT_MESSAGE LpcReply,
+    IN PPORT_MESSAGE LpcRequest
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwRequestWaitReplyPort(
-    HANDLE PortHandle,
-    PPORT_MESSAGE LpcReply,
-    PPORT_MESSAGE LpcRequest
+    IN HANDLE PortHandle,
+    OUT PPORT_MESSAGE LpcReply,
+    IN PPORT_MESSAGE LpcRequest
 );
 
 NTSTATUS
 NTAPI
 NtResetEvent(
-    HANDLE EventHandle,
-    PLONG NumberOfWaitingThreads OPTIONAL
+    IN HANDLE EventHandle,
+    OUT PLONG NumberOfWaitingThreads OPTIONAL
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwResetEvent(
-    HANDLE EventHandle,
-    PLONG NumberOfWaitingThreads OPTIONAL
+    IN HANDLE EventHandle,
+    OUT PLONG NumberOfWaitingThreads OPTIONAL
 );
 
 NTSTATUS
 NTAPI
 NtRestoreKey(
-    HANDLE KeyHandle,
-    HANDLE FileHandle,
-    ULONG RestoreFlags
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG RestoreFlags
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwRestoreKey(
-    HANDLE KeyHandle,
-    HANDLE FileHandle,
-    ULONG RestoreFlags
+    IN HANDLE KeyHandle,
+    IN HANDLE FileHandle,
+    IN ULONG RestoreFlags
 );
 
 NTSTATUS
@@ -3985,27 +4000,27 @@ ZwSignalAndWaitForSingleObject(
 NTSTATUS
 NTAPI
 NtStartProfile(
-    HANDLE ProfileHandle
+    IN HANDLE ProfileHandle
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwStartProfile(
-    HANDLE ProfileHandle
+    IN HANDLE ProfileHandle
 );
 
 NTSTATUS
 NTAPI
 NtStopProfile(
-    HANDLE ProfileHandle
+    IN HANDLE ProfileHandle
 );
 
 NTSYSAPI
 NTSTATUS
 NTAPI
 ZwStopProfile(
-    HANDLE ProfileHandle
+    IN HANDLE ProfileHandle
 );
 
 NTSTATUS
index 940a319..c5fa443 100644 (file)
@@ -1,22 +1,38 @@
 #ifndef _HELPER_H
 #define _HELPER_H
 
-/* FIXME: clean this mess up and move to NDK */
+#ifndef ROUNDUP
 #define ROUNDUP(a,b)   ((((a)+(b)-1)/(b))*(b))
+#endif
+
+#ifndef ROUNDUP
 #define ROUNDDOWN(a,b) (((a)/(b))*(b))
+#endif
+
+#ifndef ROUND_UP
 #define ROUND_UP ROUNDUP
+#endif
+
+#ifndef ROUND_DOWN
 #define ROUND_DOWN ROUNDDOWN
+#endif
+
+#ifndef PAGE_ROUND_DOWN
 #define PAGE_ROUND_DOWN(x) (((ULONG)x)&(~(PAGE_SIZE-1)))
+#endif
+
+#ifndef PAGE_ROUND_UP
 #define PAGE_ROUND_UP(x) ( (((ULONG)x)%PAGE_SIZE) ? ((((ULONG)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG)x) )
+#endif
+
 #define ABS_VALUE(V) (((V) < 0) ? -(V) : (V))
-#define RtlRosMin(X,Y) (((X) < (Y))? (X) : (Y))
+
 #define RtlRosMin3(X,Y,Z) (((X) < (Y)) ? RtlRosMin(X,Z) : RtlRosMin(Y,Z))
+
 #ifndef KEBUGCHECK
 #define KEBUGCHECKEX(a,b,c,d,e) DbgPrint("KeBugCheckEx at %s:%i\n",__FILE__,__LINE__), KeBugCheckEx(a,b,c,d,e)
 #define KEBUGCHECK(a) DbgPrint("KeBugCheck at %s:%i\n",__FILE__,__LINE__), KeBugCheck(a)
 #endif
-#define EXPORTED __declspec(dllexport)
-#define IMPORTED __declspec(dllimport)
 
 /* iterate through the list using a list entry. 
  * elem is set to NULL if the list is run thru without breaking out or if list is empty.
@@ -40,7 +56,9 @@
                         ((PIMAGE_DOS_HEADER)a)->e_lfanew    +  \
                         sizeof (IMAGE_NT_SIGNATURE)                 +  \
                         sizeof (IMAGE_FILE_HEADER)))
+#ifndef TAG
 #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
+#endif
 #define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m)))
 #define NTSTAT_SEVERITY_SHIFT 30
 #define NTSTAT_SEVERITY_MASK  0x00000003
index e9660bb..e03faa6 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __WIN32K_MISC_H
 #define __WIN32K_MISC_H
 
+#ifndef NTOS_MODE_USER
+
 /* W32PROCESS flags */
 #define W32PF_NOWINDOWGHOSTING (0x0001)
 #define W32PF_MANUALGUICHECK   (0x0002)
@@ -10,4 +12,6 @@ VOID
 FASTCALL
 DestroyThreadWindows(struct _ETHREAD *Thread);
 
+#endif
+
 #endif /* __WIN32K_MISC_H */
index 4467f67..166b979 100644 (file)
@@ -348,7 +348,7 @@ RtlAddAtomToAtomTable(IN PRTL_ATOM_TABLE AtomTable,
           {
              ULONG AtomNameLen = wcslen(AtomName);
              
-             if (AtomNameLen > MAX_ATOM_LEN)
+             if (AtomNameLen > RTL_MAXIMUM_ATOM_LENGTH)
              {
                 Status = STATUS_INVALID_PARAMETER;
                 goto end;
index eb9ec20..02940ec 100755 (executable)
@@ -17,8 +17,6 @@
 #include <ddk/ntifs.h>
 #include <ddk/wdmguid.h>
 #include <ndk/ntndk.h>
-#include <ndk/sysguid.h>
-#include <ndk/asm.h>
 
 /* FIXME: Temporary until CC Ros is gone */
 #include <ccros.h>
@@ -41,6 +39,9 @@
 /* SEH support with PSEH */
 #include <pseh/pseh.h>
 
+/* PNP GUIDs */
+#include <umpnpmgr/sysguid.h>
+
 /* Helper Header */
 #include <reactos/helper.h>
 
index 22cb9b9..04b74f0 100644 (file)
@@ -1,4 +1,4 @@
-#include <ndk/i386/segment.h>
+#include <ndk/asm.h>
 #include <../hal/halx86/include/halirq.h>
 
 #ifdef CONFIG_SMP
index 1791a4d..e0240a4 100644 (file)
@@ -30,7 +30,7 @@
 #include <windows.h>
 #define NTOS_MODE_USER
 #include <ndk/ntndk.h>
-#include <ndk/sysguid.h>
+#include <umpnpmgr/sysguid.h>
 #include <ddk/wdmguid.h>
 #include <ddk/cfgmgr32.h>
 
index e5199b9..967b067 100644 (file)
  * NOTE: The constants structs and typedefs below should be defined in the
  *       Win32 API headers.
  */
+#define EXCEPTION_EXECUTE_HANDLER       1
+#define EXCEPTION_CONTINUE_SEARCH       0
+#define EXCEPTION_CONTINUE_EXECUTION    -1
+
 #define        EH_NONCONTINUABLE       0x01
 #define        EH_UNWINDING            0x02
 #define        EH_EXIT_UNWIND          0x04
index 3f65659..e930b1a 100644 (file)
@@ -36,6 +36,7 @@ extern "C" {
 */
 #define DDKAPI __stdcall
 #define DDKFASTAPI __fastcall
+#define FASTCALL __fastcall
 #define DDKCDECLAPI __cdecl
 
 /* FIXME: REMOVE THIS UNCOMPATIBLE CRUFT!!! */
index 42b48df..298b340 100644 (file)
@@ -396,9 +396,6 @@ extern "C" {
 #define SLE_MINORERROR 2
 #define SLE_WARNING 3
 #define SHUTDOWN_NORETRY 1
-#define EXCEPTION_EXECUTE_HANDLER 1
-#define EXCEPTION_CONTINUE_EXECUTION (-1)
-#define EXCEPTION_CONTINUE_SEARCH 0
 #define MAXINTATOM 0xC000
 #define INVALID_ATOM ((ATOM)0)
 #define IGNORE 0
index 3cdde6e..1adf926 100644 (file)
@@ -103,7 +103,6 @@ extern "C" {
 #define PASCAL _pascal
 #define CDECL _cdecl
 #define STDCALL __stdcall
-#define FASTCALL __fastcall
 #define WINAPI __stdcall
 #define WINAPIV __cdecl
 #define APIENTRY __stdcall
index 36432ef..ef6a3df 100644 (file)
@@ -47,6 +47,24 @@ extern "C" {
 #define UNALIGNED
 #endif
 
+#ifndef DECLSPEC_ADDRSAFE
+#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
+#define DECLSPEC_ADDRSAFE __declspec(address_safe)
+#else
+#define DECLSPEC_ADDRSAFE
+#endif
+#endif
+
+#ifndef FORCEINLINE
+#if (_MSC_VER >= 1200)
+#define FORCEINLINE __forceinline
+#elif (_MSC_VER)
+#define FORCEINLINE __inline
+#else
+#define FORCEINLINE static __inline
+#endif
+#endif
+
 #ifndef VOID
 #define VOID void
 #endif
@@ -2456,6 +2474,11 @@ typedef struct _RTL_CRITICAL_SECTION {
 } RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
 #endif
 
+typedef LONG
+(NTAPI *PVECTORED_EXCEPTION_HANDLER)(
+    struct _EXCEPTION_POINTERS *ExceptionInfo
+);
+
 typedef struct _EVENTLOGRECORD {
        DWORD Length;
        DWORD Reserved;