- Define DECLSPEC_ADDRSAFE and FORCEINLINE for gcc in winnt.h
- 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.
Modified: trunk/reactos/ReactOS.xml
Modified: trunk/reactos/hal/halx86/mp/mps.S
Added: trunk/reactos/include/libs/umpnpmgr/
Added: trunk/reactos/include/libs/umpnpmgr/sysguid.h
Modified: trunk/reactos/include/ndk/arch/ketypes.h
Modified: trunk/reactos/include/ndk/arch/mmtypes.h
Modified: trunk/reactos/include/ndk/asm.h
Modified: trunk/reactos/include/ndk/cctypes.h
Modified: trunk/reactos/include/ndk/cmtypes.h
Modified: trunk/reactos/include/ndk/dbgktypes.h
Modified: trunk/reactos/include/ndk/exfuncs.h
Modified: trunk/reactos/include/ndk/extypes.h
Modified: trunk/reactos/include/ndk/fixmes.txt
Modified: trunk/reactos/include/ndk/halfuncs.h
Modified: trunk/reactos/include/ndk/haltypes.h
Deleted: trunk/reactos/include/ndk/i386/floatsave.h
Modified: trunk/reactos/include/ndk/i386/ketypes.h
Modified: trunk/reactos/include/ndk/i386/mmtypes.h
Deleted: trunk/reactos/include/ndk/i386/segment.h
Modified: trunk/reactos/include/ndk/ifssupp.h
Modified: trunk/reactos/include/ndk/inbvfuncs.h
Modified: trunk/reactos/include/ndk/iofuncs.h
Modified: trunk/reactos/include/ndk/iotypes.h
Modified: trunk/reactos/include/ndk/kdfuncs.h
Modified: trunk/reactos/include/ndk/kdtypes.h
Modified: trunk/reactos/include/ndk/kefuncs.h
Modified: trunk/reactos/include/ndk/ketypes.h
Modified: trunk/reactos/include/ndk/ldrfuncs.h
Modified: trunk/reactos/include/ndk/ldrtypes.h
Modified: trunk/reactos/include/ndk/lpctypes.h
Modified: trunk/reactos/include/ndk/mmfuncs.h
Modified: trunk/reactos/include/ndk/mmtypes.h
Modified: trunk/reactos/include/ndk/ntndk.h
Modified: trunk/reactos/include/ndk/obfuncs.h
Modified: trunk/reactos/include/ndk/obtypes.h
Modified: trunk/reactos/include/ndk/potypes.h
Modified: trunk/reactos/include/ndk/psfuncs.h
Modified: trunk/reactos/include/ndk/pstypes.h
Added: trunk/reactos/include/ndk/readme.txt
Modified: trunk/reactos/include/ndk/rtlfuncs.h
Modified: trunk/reactos/include/ndk/rtltypes.h
Modified: trunk/reactos/include/ndk/sefuncs.h
Modified: trunk/reactos/include/ndk/setypes.h
Deleted: trunk/reactos/include/ndk/sysguid.h
Modified: trunk/reactos/include/ndk/umfuncs.h
Modified: trunk/reactos/include/ndk/umtypes.h
Modified: trunk/reactos/include/ndk/zwfuncs.h
Modified: trunk/reactos/include/reactos/helper.h
Modified: trunk/reactos/include/win32k/misc.h
Modified: trunk/reactos/lib/rtl/atom.c
Modified: trunk/reactos/ntoskrnl/include/ntoskrnl.h
Modified: trunk/reactos/ntoskrnl/ke/i386/irqhand.s
Modified: trunk/reactos/services/umpnpmgr/umpnpmgr.c
Modified: trunk/reactos/w32api/include/crt/excpt.h
Modified: trunk/reactos/w32api/include/ddk/winddk.h
Modified: trunk/reactos/w32api/include/winbase.h
Modified: trunk/reactos/w32api/include/windef.h
Modified: trunk/reactos/w32api/include/winnt.h
_____
Modified: trunk/reactos/ReactOS.xml
--- trunk/reactos/ReactOS.xml 2005-11-22 04:54:18 UTC (rev 19449)
+++ trunk/reactos/ReactOS.xml 2005-11-22 04:57:45 UTC (rev 19450)
@@ -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>
_____
Modified: trunk/reactos/hal/halx86/mp/mps.S
--- trunk/reactos/hal/halx86/mp/mps.S 2005-11-22 04:54:18 UTC (rev
19449)
+++ trunk/reactos/hal/halx86/mp/mps.S 2005-11-22 04:57:45 UTC (rev
19450)
@@ -11,7 +11,7 @@
/* INCLUDES
******************************************************************/
-#include <ndk/i386/segment.h>
+#include <ndk/asm.h>
/* FUNCTIONS
*****************************************************************/
_____
Copied: trunk/reactos/include/libs/umpnpmgr/sysguid.h (from rev 19381,
trunk/reactos/include/ndk/sysguid.h)
--- trunk/reactos/include/ndk/sysguid.h 2005-11-20 17:52:53 UTC (rev
19381)
+++ trunk/reactos/include/libs/umpnpmgr/sysguid.h 2005-11-22
04:57:45 UTC (rev 19450)
@@ -0,0 +1,48 @@
+/*
+ * 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
+#define _SYSGUID_H
+
+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_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_SAFE_REMOVAL,
+ 0x8FBEF967, 0xD6C5, 0x11D2, 0x97, 0xB5, 0x00, 0xA0, 0xC9, 0x40, 0x52,
0x2E);
+
+DEFINE_GUID(GUID_DEVICE_ARRIVAL,
+ 0xCB3A4009, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_ENUMERATED,
+ 0xCB3A400A, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_ENUMERATE_REQUEST,
+ 0xCB3A400B, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_START_REQUEST,
+ 0xCB3A400C, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_REMOVE_PENDING,
+ 0xCB3A400D, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_QUERY_AND_REMOVE,
+ 0xCB3A400E, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_EJECT,
+ 0xCB3A400F, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_NOOP,
+ 0xCB3A4010, 0x46F0, 0x11D0, 0xB0, 0x8F, 0x00, 0x60, 0x97, 0x13, 0x05,
0x3F);
+DEFINE_GUID(GUID_DEVICE_WARM_EJECT_VETOED,
+ 0xCBF4C1F9, 0x18D5, 0x11D3, 0x97, 0xDB, 0x00, 0xA0, 0xC9, 0x40, 0x52,
0x2E);
+DEFINE_GUID(GUID_DEVICE_SURPRISE_REMOVAL,
+ 0xCE5AF000, 0x80DD, 0x11D2, 0xA8, 0x8D, 0x00, 0xA0, 0xC9, 0x69, 0x6B,
0x4B);
+DEFINE_GUID(GUID_DEVICE_EJECT_VETOED,
+ 0xCF7B71E8, 0xD8FD, 0x11D2, 0x97, 0xB5, 0x00, 0xA0, 0xC9, 0x40, 0x52,
0x2E);
+DEFINE_GUID(GUID_DEVICE_EVENT_RBC,
+ 0xD0744792, 0xA98E, 0x11D2, 0x91, 0x7A, 0x00, 0xA0, 0xC9, 0x06, 0x8F,
0xF3);
+
+#endif
_____
Modified: trunk/reactos/include/ndk/arch/ketypes.h
--- trunk/reactos/include/ndk/arch/ketypes.h 2005-11-22 04:54:18 UTC
(rev 19449)
+++ trunk/reactos/include/ndk/arch/ketypes.h 2005-11-22 04:57:45 UTC
(rev 19450)
@@ -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(a)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(a)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 @@
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
_____
Modified: trunk/reactos/include/ndk/arch/mmtypes.h
--- trunk/reactos/include/ndk/arch/mmtypes.h 2005-11-22 04:54:18 UTC
(rev 19449)
+++ trunk/reactos/include/ndk/arch/mmtypes.h 2005-11-22 04:57:45 UTC
(rev 19450)
@@ -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(a)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(a)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
_____
Modified: trunk/reactos/include/ndk/asm.h
--- trunk/reactos/include/ndk/asm.h 2005-11-22 04:54:18 UTC (rev
19449)
+++ trunk/reactos/include/ndk/asm.h 2005-11-22 04:57:45 UTC (rev
19450)
@@ -1,217 +1,259 @@
-/*
- * PROJECT: ReactOS Native Headers
- * FILE: include/ndk/asm.h
- * PURPOSE: Defintions for Structures used in Assembly Code
- * PROGRAMMER: Alex Ionescu (alex(a)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(a)reactos.com) 06-Oct-2004
+
+--*/
+
#ifndef _ASM_H
#define _ASM_H
-/* DEPENDENCIES
**************************************************************/
+//
+// 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)
-/* EXPORTED DATA
*************************************************************/
+//
+// 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
-/* CONSTANTS
*****************************************************************/
+//
+// TSS Offsets
+//
+#define KTSS_ESP0 0x4
+#define KTSS_CR3 0x1C
+#define KTSS_EFLAGS 0x24
+#define KTSS_IOMAPBASE 0x66
-/*
- * 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
+//
+// 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
-#define TF_SAVED_EXCEPTION_STACK 0x8C
-#define TF_REGS 0x90
-#define TF_ORIG_EBP 0x94
+//
+// KPROCESS Offsets
+//
+#define KPROCESS_DIRECTORY_TABLE_BASE 0x18
+#define KPROCESS_LDT_DESCRIPTOR0 0x20
+#define KPROCESS_LDT_DESCRIPTOR1 0x24
+#define KPROCESS_IOPM_OFFSET 0x30
-/* TSS Offsets */
-#define KTSS_ESP0 0x4
-#define KTSS_CR3 0x1C
-#define KTSS_EFLAGS 0x24
-#define KTSS_IOMAPBASE 0x66
+//
+// 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
-/*
- * 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
+//
+// 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
-#define KPROCESS_DIRECTORY_TABLE_BASE 0x18
-#define KPROCESS_LDT_DESCRIPTOR0 0x20
-#define KPROCESS_LDT_DESCRIPTOR1 0x24
-#define KPROCESS_IOPM_OFFSET 0x30
+//
+// 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
-#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
+//
+// 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
-/* 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
+//
+// 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
-/* 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
+//
+// 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
-/* 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
+//
+// 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
-/* 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
+//
+// PEB Offsets
+//
+#define PEB_KERNEL_CALLBACK_TABLE 0x2C
-/* 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
+//
+// 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
+
_____
Modified: trunk/reactos/include/ndk/cctypes.h
--- trunk/reactos/include/ndk/cctypes.h 2005-11-22 04:54:18 UTC (rev
19449)
+++ trunk/reactos/include/ndk/cctypes.h 2005-11-22 04:57:45 UTC (rev
19450)
@@ -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(a)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(a)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
**************************************************************/
+#endif // _CCTYPES_H
-/* TYPES
*********************************************************************/
-
-#endif
-
_____
Modified: trunk/reactos/include/ndk/cmtypes.h
--- trunk/reactos/include/ndk/cmtypes.h 2005-11-22 04:54:18 UTC (rev
19449)
+++ trunk/reactos/include/ndk/cmtypes.h 2005-11-22 04:57:45 UTC (rev
19450)
@@ -1,37 +1,124 @@
-/*
- * PROJECT: ReactOS Native Headers
- * FILE: include/ndk/cmtypes.h
- * PURPOSE: Definitions for Config Manager Types not defined in
DDK/IFS
- * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net)
- * UPDATE HISTORY:
- * Created 06/10/04
- */
+/*++ NDK Version: 0095
+Copyright (c) Alex Ionescu. All rights reserved.
+
+Header Name:
+
+ cmtypes.h
+
+Abstract:
+
+ Type definitions for the Configuration Manager.
+
+Author:
+
+ Alex Ionescu (alex.ionescu(a)reactos.com) 06-Oct-2004
+
+--*/
+
#ifndef _CMTYPES_H
#define _CMTYPES_H
-/* DEPENDENCIES
**************************************************************/
+//
+// Dependencies
+//
#include <cfg.h>
#include "iotypes.h"
-/* EXPORTED DATA
*************************************************************/
-
-/* CONSTANTS
*****************************************************************/
#define MAX_BUS_NAME 24
-/* PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relation values */
-#define PNP_GET_PARENT_DEVICE 1
-#define PNP_GET_CHILD_DEVICE 2
-#define PNP_GET_SIBLING_DEVICE 3
+//
+// PLUGPLAY_CONTROL_RELATED_DEVICE_DATA.Relations
+//
+#define PNP_GET_PARENT_DEVICE 1
+#define PNP_GET_CHILD_DEVICE 2
+#define PNP_GET_SIBLING_DEVICE 3
-/* PLUGPLAY_CONTROL_STATUS_DATA.Operation values */
-#define PNP_GET_DEVICE_STATUS 0
-#define PNP_SET_DEVICE_STATUS 1
-#define PNP_CLEAR_DEVICE_STATUS 2
+//
+// PLUGPLAY_CONTROL_STATUS_DATA Operations
+//
+#define PNP_GET_DEVICE_STATUS 0
+#define PNP_SET_DEVICE_STATUS 1
+#define PNP_CLEAR_DEVICE_STATUS 2
-/* ENUMERATIONS
**************************************************************/
+//
+// Resource Type
+//
+#define CmResourceTypeNull 0
+#define CmResourceTypePort 1
+#define CmResourceTypeInterrupt 2
+#define CmResourceTypeMemory 3
+#define CmResourceTypeDma 4
+#define CmResourceTypeDeviceSpecific 5
+#define CmResourceTypeBusNumber 6
+#define CmResourceTypeMaximum 7
+#define CmResourceTypeNonArbitrated 128
+#define CmResourceTypeConfigData 128
+#define CmResourceTypeDevicePrivate 129
+#define CmResourceTypePcCardConfig 130
+#define CmResourceTypeMfCardConfig 131
#ifdef NTOS_MODE_USER
+
+//
+// Resource Descriptor Share Dispositions
+//
+typedef enum _CM_SHARE_DISPOSITION
+{
+ CmResourceShareUndetermined,
+ CmResourceShareDeviceExclusive,
+ CmResourceShareDriverExclusive,
+ CmResourceShareShared
+} CM_SHARE_DISPOSITION;
+
+#endif
+
+//
+// Port Resource Descriptor Flags
+//
+#define CM_RESOURCE_PORT_MEMORY 0x0000
+#define CM_RESOURCE_PORT_IO 0x0001
+#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004
+#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008
+#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010
+#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020
+#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040
+#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080
+
+//
+// Interrupt Resource Descriptor Flags
+//
+#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0x0000
+#define CM_RESOURCE_INTERRUPT_LATCHED 0x0001
+
+//
+// Memory Resource Descriptor Flags
+//
+#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000
+#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001
+#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002
+#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004
+#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008
+#define CM_RESOURCE_MEMORY_24 0x0010
+#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020
+
+//
+// DMA Resource Descriptor Flags
+//
+#define CM_RESOURCE_DMA_8 0x0000
+#define CM_RESOURCE_DMA_16 0x0001
+#define CM_RESOURCE_DMA_32 0x0002
+#define CM_RESOURCE_DMA_8_AND_16 0x0004
+#define CM_RESOURCE_DMA_BUS_MASTER 0x0008
+#define CM_RESOURCE_DMA_TYPE_A 0x0010
+#define CM_RESOURCE_DMA_TYPE_B 0x0020
+#define CM_RESOURCE_DMA_TYPE_F 0x0040
+
+#ifdef NTOS_MODE_USER
+
+//
+// Information Classes for NtQueryKey
+//
typedef enum _KEY_INFORMATION_CLASS
{
KeyBasicInformation,
@@ -57,8 +144,12 @@
KeyUserFlagsInformation,
MaxKeySetInfoClass
} KEY_SET_INFORMATION_CLASS;
+
#endif
+//
+// Plag and Play Classes
+//
typedef enum _PLUGPLAY_CONTROL_CLASS
{
PlugPlayControlUserResponse = 0x07,
@@ -76,12 +167,18 @@
MaxPlugPlayBusClass
} PLUGPLAY_BUS_CLASS, *PPLUGPLAY_BUS_CLASS;
+//
+// Plag and Play Bus Types
+//
typedef enum _PLUGPLAY_VIRTUAL_BUS_TYPE
{
Root,
MaxPlugPlayVirtualBusType
} PLUGPLAY_VIRTUAL_BUS_TYPE, *PPLUGPLAY_VIRTUAL_BUS_TYPE;
+//
+// Plag and Play Event Categories
+//
typedef enum _PLUGPLAY_EVENT_CATEGORY
{
HardwareProfileChangeEvent,
@@ -95,9 +192,12 @@
BlockedDriverEvent,
MaxPlugEventCategory
} PLUGPLAY_EVENT_CATEGORY;
-/* TYPES
*********************************************************************/
#ifdef NTOS_MODE_USER
+
+//
+// Information Structures for NtQueryKeyInformation
+//
typedef struct _KEY_WRITE_TIME_INFORMATION
{
LARGE_INTEGER LastWriteTime;
@@ -177,6 +277,9 @@
#endif
+//
+// Plug and Play Event Block
+//
typedef struct _PLUGPLAY_EVENT_BLOCK
{
GUID EventGuid;
@@ -226,7 +329,11 @@
};
} PLUGPLAY_EVENT_BLOCK, *PPLUGPLAY_EVENT_BLOCK;
-/* Class 0x0A */
+//
+// Plug and Play Control Classes
+//
+
+//Class 0x0A
typedef struct _PLUGPLAY_CONTROL_PROPERTY_DATA
{
UNICODE_STRING DeviceInstance;
@@ -235,36 +342,39 @@
ULONG BufferSize;
} PLUGPLAY_CONTROL_PROPERTY_DATA, *PPLUGPLAY_CONTROL_PROPERTY_DATA;
-/* Class 0x0C */
+// Class 0x0C
typedef struct _PLUGPLAY_CONTROL_RELATED_DEVICE_DATA
{
UNICODE_STRING TargetDeviceInstance;
- ULONG Relation; /* 1: Parent 2: Child 3: Sibling */
+ ULONG Relation;
UNICODE_STRING RelatedDeviceInstance;
} PLUGPLAY_CONTROL_RELATED_DEVICE_DATA,
*PPLUGPLAY_CONTROL_RELATED_DEVICE_DATA;
-/* Class 0x0E */
+// Class 0x0E
typedef struct _PLUGPLAY_CONTOL_STATUS_DATA
{
UNICODE_STRING DeviceInstance;
- ULONG Operation; /* 0: Get 1: Set 2: Clear */
- ULONG DeviceStatus; /* DN_ see cfg.h */
- ULONG DeviceProblem; /* CM_PROB_ see cfg.h */
+ ULONG Operation;
+ ULONG DeviceStatus;
+ ULONG DeviceProblem;
} PLUGPLAY_CONTROL_STATUS_DATA, *PPLUGPLAY_CONTROL_STATUS_DATA;
-/* Class 0x0F */
+// Class 0x0F
typedef struct _PLUGPLAY_CONTROL_DEPTH_DATA
{
UNICODE_STRING DeviceInstance;
ULONG Depth;
} PLUGPLAY_CONTROL_DEPTH_DATA, *PPLUGPLAY_CONTROL_DEPTH_DATA;
-/* Class 0x14 */
+// Class 0x14
typedef struct _PLUGPLAY_CONTROL_RESET_DEVICE_DATA
{
UNICODE_STRING DeviceInstance;
} PLUGPLAY_CONTROL_RESET_DEVICE_DATA,
*PPLUGPLAY_CONTROL_RESET_DEVICE_DATA;
+//
+// Plug and Play Bus Type Definition
+//
typedef struct _PLUGPLAY_BUS_TYPE
{
PLUGPLAY_BUS_CLASS BusClass;
@@ -275,6 +385,9 @@
};
} PLUGPLAY_BUS_TYPE, *PPLUGPLAY_BUS_TYPE;
+//
+// Plug and Play Bus Instance Definition
+//
typedef struct _PLUGPLAY_BUS_INSTANCE
{
PLUGPLAY_BUS_TYPE BusType;
@@ -284,149 +397,110 @@
#ifdef NTOS_MODE_USER
+//
+// Partial Resource Descriptor and List for Hardware
+//
#include <pshpack1.h>
-typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
- UCHAR Type;
- UCHAR ShareDisposition;
- USHORT Flags;
- union {
- struct {
- PHYSICAL_ADDRESS Start;
- ULONG Length;
- } Generic;
- struct {
- PHYSICAL_ADDRESS Start;
- ULONG Length;
- } Port;
- struct {
- ULONG Level;
- ULONG Vector;
- ULONG Affinity;
- } Interrupt;
- struct {
- PHYSICAL_ADDRESS Start;
- ULONG Length;
- } Memory;
- struct {
- ULONG Channel;
- ULONG Port;
- ULONG Reserved1;
[truncated at 1000 lines; 8918 more skipped]