[ros-diffs] [sginsberg] 38961: - Add 32-bit versions to wdbgexts.h - Add lots of missing definitions to windbgkd.h, gathered from Singularity, tinykrnl, articles, blogs, etc
sginsberg at svn.reactos.org
sginsberg at svn.reactos.org
Tue Jan 20 00:34:28 CET 2009
- Previous message: [ros-diffs] [sginsberg] 38960: Fix the completely retarded implementation of KdComPortInUse. The original definition of this variable seems to have been based on the retarded type in the serial.sys source sample, which defines it as: extern PUCHAR *KdComPortInUse; This, somehow, works in MSVC, but gcc complains about the lack of import specifier (KdComPortInUse is exported by HAL). This was 'fixed' by adding the import specifier to ros. So instead of: PUCHAR *KdComPortInUse; We ended up with: NTHALAPI PUCHAR *KdComPortInUse; Which becomes 3 dereferences instead of 2, which is incorrect. This was 'fixed' by hacking the variable in HAL too. Use "extern PUCHAR NTHALAPI KdComPortInUse" to be compatible with both compilers, remove the HAL hacks, and fix the usage of the variable. Fixes the serial.sys crash when booted with _WINKD_ + kdcom from Windows 2003, as kdcom would (due to the HAL hack) set the internal 'pointer' to the port value, and serial would end up dereferencing the port address
- Next message: [ros-diffs] [silverblade] 38962: setupldr previously worked by faking the FreeLdr OS menu function. Now FreeLdr has a special OS type for ReactOS Setup, which will only work for the bootcd. As a result, bootcd can display a menu now. This opens up the possibility of including both a "live" environment for users to play with as well as the opportunity to install, from the same disc.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: sginsberg
Date: Mon Jan 19 17:34:27 2009
New Revision: 38961
URL: http://svn.reactos.org/svn/reactos?rev=38961&view=rev
Log:
- Add 32-bit versions to wdbgexts.h
- Add lots of missing definitions to windbgkd.h, gathered from Singularity, tinykrnl, articles, blogs, etc
Modified:
trunk/reactos/include/psdk/wdbgexts.h
trunk/reactos/include/reactos/windbgkd.h
Modified: trunk/reactos/include/psdk/wdbgexts.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wdbgexts.h?rev=38961&r1=38960&r2=38961&view=diff
==============================================================================
--- trunk/reactos/include/psdk/wdbgexts.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/wdbgexts.h [iso-8859-1] Mon Jan 19 17:34:27 2009
@@ -21,6 +21,101 @@
#define DBGKD_VERS_FLAG_PARTITIONS 0x0020
#define KDBG_TAG TAG('K', 'D', 'B', 'G')
+
+typedef struct _DBGKD_GET_VERSION32
+{
+ USHORT MajorVersion;
+ USHORT MinorVersion;
+ USHORT ProtocolVersion;
+ USHORT Flags;
+ ULONG KernBase;
+ ULONG PsLoadedModuleList;
+ USHORT MachineType;
+ USHORT ThCallbackStack;
+ USHORT NextCallback;
+ USHORT FramePointer;
+ ULONG KiCallUserMode;
+ ULONG KeUserCallbackDispatcher;
+ ULONG BreakpointWithStatus;
+ ULONG DebuggerDataList;
+} DBGKD_GET_VERSION32, *PDBGKD_GET_VERSION32;
+
+typedef struct _DBGKD_DEBUG_DATA_HEADER32
+{
+ LIST_ENTRY32 List;
+ ULONG OwnerTag;
+ ULONG Size;
+} DBGKD_DEBUG_DATA_HEADER32, *PDBGKD_DEBUG_DATA_HEADER32;
+
+typedef struct _KDDEBUGGER_DATA32
+{
+ DBGKD_DEBUG_DATA_HEADER32 Header;
+ ULONG KernBase;
+ ULONG BreakpointWithStatus;
+ ULONG SavedContext;
+ USHORT ThCallbackStack;
+ USHORT NextCallback;
+ USHORT FramePointer;
+ USHORT PaeEnabled:1;
+ ULONG KiCallUserMode;
+ ULONG KeUserCallbackDispatcher;
+ ULONG PsLoadedModuleList;
+ ULONG PsActiveProcessHead;
+ ULONG PspCidTable;
+ ULONG ExpSystemResourcesList;
+ ULONG ExpPagedPoolDescriptor;
+ ULONG ExpNumberOfPagedPools;
+ ULONG KeTimeIncrement;
+ ULONG KeBugCheckCallbackListHead;
+ ULONG KiBugcheckData;
+ ULONG IopErrorLogListHead;
+ ULONG ObpRootDirectoryObject;
+ ULONG ObpTypeObjectType;
+ ULONG MmSystemCacheStart;
+ ULONG MmSystemCacheEnd;
+ ULONG MmSystemCacheWs;
+ ULONG MmPfnDatabase;
+ ULONG MmSystemPtesStart;
+ ULONG MmSystemPtesEnd;
+ ULONG MmSubsectionBase;
+ ULONG MmNumberOfPagingFiles;
+ ULONG MmLowestPhysicalPage;
+ ULONG MmHighestPhysicalPage;
+ ULONG MmNumberOfPhysicalPages;
+ ULONG MmMaximumNonPagedPoolInBytes;
+ ULONG MmNonPagedSystemStart;
+ ULONG MmNonPagedPoolStart;
+ ULONG MmNonPagedPoolEnd;
+ ULONG MmPagedPoolStart;
+ ULONG MmPagedPoolEnd;
+ ULONG MmPagedPoolInformation;
+ ULONG MmPageSize;
+ ULONG MmSizeOfPagedPoolInBytes;
+ ULONG MmTotalCommitLimit;
+ ULONG MmTotalCommittedPages;
+ ULONG MmSharedCommit;
+ ULONG MmDriverCommit;
+ ULONG MmProcessCommit;
+ ULONG MmPagedPoolCommit;
+ ULONG MmExtendedCommit;
+ ULONG MmZeroedPageListHead;
+ ULONG MmFreePageListHead;
+ ULONG MmStandbyPageListHead;
+ ULONG MmModifiedPageListHead;
+ ULONG MmModifiedNoWritePageListHead;
+ ULONG MmAvailablePages;
+ ULONG MmResidentAvailablePages;
+ ULONG PoolTrackTable;
+ ULONG NonPagedPoolDescriptor;
+ ULONG MmHighestUserAddress;
+ ULONG MmSystemRangeStart;
+ ULONG MmUserProbeAddress;
+ ULONG KdPrintCircularBuffer;
+ ULONG KdPrintCircularBufferEnd;
+ ULONG KdPrintWritePointer;
+ ULONG KdPrintRolloverCount;
+ ULONG MmLoadedUserImageList;
+} KDDEBUGGER_DATA32, *PKDDEBUGGER_DATA32;
typedef struct _DBGKD_GET_VERSION64
{
Modified: trunk/reactos/include/reactos/windbgkd.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/windbgkd.h?rev=38961&r1=38960&r2=38961&view=diff
==============================================================================
--- trunk/reactos/include/reactos/windbgkd.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/windbgkd.h [iso-8859-1] Mon Jan 19 17:34:27 2009
@@ -60,6 +60,12 @@
#define DbgKdLoadSymbolsStateChange 0x00003031
#define DbgKdCommandStringStateChange 0x00003032
#define DbgKdMaximumStateChange 0x00003033
+
+//
+// This is combined with the basic state change code
+// if the state is from an alternate source
+//
+#define DbgKdAlternateStateChange 0x00010000
//
// Manipulate Types
@@ -114,6 +120,25 @@
#define DbgKdGetStringApi 0x00003231
//
+// Trace I/O Types
+//
+#define DbgKdPrintTraceApi 0x00003330
+
+//
+// Control Request Types
+//
+#define DbgKdRequestHardwareBp 0x00004300
+#define DbgKdReleaseHardwareBp 0x00004301
+
+//
+// File I/O Types
+//
+#define DbgKdCreateFileApi 0x00003430
+#define DbgKdReadFileApi 0x00003431
+#define DbgKdWriteFileApi 0x00003432
+#define DbgKdCloseFileApi 0x00003433
+
+//
// Control Report Flags
//
#define REPORT_INCLUDES_SEGS 0x0001
@@ -140,6 +165,34 @@
#define DBGKD_QUERY_MEMORY_WRITE 0x02
#define DBGKD_QUERY_MEMORY_EXECUTE 0x04
#define DBGKD_QUERY_MEMORY_FIXED 0x08
+
+//
+// Internal Breakpoint Flags
+//
+#define DBGKD_INTERNAL_BP_FLAG_COUNTONLY 0x01
+#define DBGKD_INTERNAL_BP_FLAG_INVALID 0x02
+#define DBGKD_INTERNAL_BP_FLAG_SUSPENDED 0x04
+#define DBGKD_INTERNAL_BP_FLAG_DYING 0x08
+
+//
+// Fill Memory Flags
+//
+#define DBGKD_FILL_MEMORY_VIRTUAL 0x01
+#define DBGKD_FILL_MEMORY_PHYSICAL 0x002
+
+//
+// Physical Memory Caching Flags
+//
+#define DBGKD_CACHING_DEFAULT 0
+#define DBGKD_CACHING_CACHED 1
+#define DBGKD_CACHING_UNCACHED 2
+#define DBGKD_CACHING_WRITE_COMBINED 3
+
+//
+// Partition Switch Flags
+//
+#define DBGKD_PARTITION_DEFAULT 0x00
+#define DBGKD_PARTITION_ALTERNATE 0x01
//
// KD Packet Structure
@@ -189,6 +242,13 @@
ULONG64 CurrentSymbolEnd;
} AMD64_DBGKD_CONTROL_SET, *PAMD64_DBGKD_CONTROL_SET;
+typedef struct _ARM_DBGKD_CONTROL_SET
+{
+ ULONG Continue;
+ ULONG CurrentSymbolStart;
+ ULONG CurrentSymbolEnd;
+} ARM_DBGKD_CONTROL_SET, *PARM_DBGKD_CONTROL_SET;
+
typedef struct _DBGKD_ANY_CONTROL_SET
{
union
@@ -196,15 +256,22 @@
X86_DBGKD_CONTROL_SET X86ControlSet;
IA64_DBGKD_CONTROL_SET IA64ControlSet;
AMD64_DBGKD_CONTROL_SET Amd64ControlSet;
+ ARM_DBGKD_CONTROL_SET ArmControlSet;
};
} DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
#include <poppack.h>
-typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET;
+typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
//
// DBGKM Structure for Exceptions
//
+typedef struct _DBGKM_EXCEPTION32
+{
+ EXCEPTION_RECORD32 ExceptionRecord;
+ ULONG FirstChance;
+} DBGKM_EXCEPTION32, *PDBGKM_EXCEPTION32;
+
typedef struct _DBGKM_EXCEPTION64
{
EXCEPTION_RECORD64 ExceptionRecord;
@@ -214,10 +281,37 @@
//
// DBGKD Structure for State Change
//
-typedef struct _DBGKD_CONTROL_REPORT
-{
- ULONG Dr6;
- ULONG Dr7;
+typedef struct _X86_DBGKD_CONTROL_REPORT
+{
+ ULONG Dr6;
+ ULONG Dr7;
+ USHORT InstructionCount;
+ USHORT ReportFlags;
+ UCHAR InstructionStream[DBGKD_MAXSTREAM];
+ USHORT SegCs;
+ USHORT SegDs;
+ USHORT SegEs;
+ USHORT SegFs;
+ ULONG EFlags;
+} X86_DBGKD_CONTROL_REPORT, *PX86_DBGKD_CONTROL_REPORT;
+
+typedef struct _ALPHA_DBGKD_CONTROL_REPORT
+{
+ ULONG InstructionCount;
+ UCHAR InstructionStream[DBGKD_MAXSTREAM];
+} ALPHA_DBGKD_CONTROL_REPORT, *PALPHA_DBGKD_CONTROL_REPORT;
+
+typedef struct _IA64_DBGKD_CONTROL_REPORT
+{
+ ULONG InstructionCount;
+ UCHAR InstructionStream[DBGKD_MAXSTREAM];
+} IA64_DBGKD_CONTROL_REPORT, *PIA64_DBGKD_CONTROL_REPORT;
+
+typedef struct _AMD64_DBGKD_CONTROL_REPORT
+{
+ ULONG64 Dr6;
+ ULONG64 Dr7;
+ ULONG EFlags;
USHORT InstructionCount;
USHORT ReportFlags;
UCHAR InstructionStream[DBGKD_MAXSTREAM];
@@ -225,8 +319,20 @@
USHORT SegDs;
USHORT SegEs;
USHORT SegFs;
- ULONG EFlags;
-} DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+} AMD64_DBGKD_CONTROL_REPORT, *PAMD64_DBGKD_CONTROL_REPORT;
+
+typedef X86_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT;
+
+typedef struct _DBGKD_ANY_CONTROL_REPORT
+{
+ union
+ {
+ X86_DBGKD_CONTROL_REPORT X86ControlReport;
+ ALPHA_DBGKD_CONTROL_REPORT AlphaControlReport;
+ IA64_DBGKD_CONTROL_REPORT IA64ControlReport;
+ AMD64_DBGKD_CONTROL_REPORT Amd64ControlReport;
+ };
+} DBGKD_ANY_CONTROL_REPORT, *PDBGKD_ANY_CONTROL_REPORT;
//
// DBGKD Structure for Debug I/O Type Print String
@@ -261,8 +367,28 @@
} DBGKD_DEBUG_IO, *PDBGKD_DEBUG_IO;
//
+// DBGkD Structure for Command String
+//
+typedef struct _DBGKD_COMMAND_STRING
+{
+ ULONG Flags;
+ ULONG Reserved1;
+ ULONG64 Reserved2[7];
+} DBGKD_COMMAND_STRING, *PDBGKD_COMMAND_STRING;
+
+//
// DBGKD Structure for Load Symbols
//
+typedef struct _DBGKD_LOAD_SYMBOLS32
+{
+ ULONG PathNameLength;
+ ULONG BaseOfDll;
+ ULONG ProcessId;
+ ULONG CheckSum;
+ ULONG SizeOfImage;
+ BOOLEAN UnloadSymbols;
+} DBGKD_LOAD_SYMBOLS32, *PDBGKD_LOAD_SYMBOLS32;
+
typedef struct _DBGKD_LOAD_SYMBOLS64
{
ULONG PathNameLength;
@@ -276,6 +402,24 @@
//
// DBGKD Structure for Wait State Change
//
+
+typedef struct _DBGKD_WAIT_STATE_CHANGE32
+{
+ ULONG NewState;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ ULONG NumberProcessors;
+ ULONG Thread;
+ ULONG ProgramCounter;
+ union
+ {
+ DBGKM_EXCEPTION32 Exception;
+ DBGKD_LOAD_SYMBOLS32 LoadSymbols;
+ } u;
+ DBGKD_CONTROL_REPORT ControlReport;
+ CONTEXT Context;
+} DBGKD_WAIT_STATE_CHANGE32, *PDBGKD_WAIT_STATE_CHANGE32;
+
typedef struct _DBGKD_WAIT_STATE_CHANGE64
{
ULONG NewState;
@@ -293,9 +437,37 @@
CONTEXT Context;
} DBGKD_WAIT_STATE_CHANGE64, *PDBGKD_WAIT_STATE_CHANGE64;
+typedef struct _DBGKD_ANY_WAIT_STATE_CHANGE
+{
+ ULONG NewState;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ ULONG NumberProcessors;
+ ULONG64 Thread;
+ ULONG64 ProgramCounter;
+ union
+ {
+ DBGKM_EXCEPTION64 Exception;
+ DBGKD_LOAD_SYMBOLS64 LoadSymbols;
+ DBGKD_COMMAND_STRING CommandString;
+ } u;
+ union
+ {
+ DBGKD_CONTROL_REPORT ControlReport;
+ DBGKD_ANY_CONTROL_REPORT AnyControlReport;
+ };
+} DBGKD_ANY_WAIT_STATE_CHANGE, *PDBGKD_ANY_WAIT_STATE_CHANGE;
+
//
// DBGKD Manipulate Structures
//
+typedef struct _DBGKD_READ_MEMORY32
+{
+ ULONG TargetBaseAddress;
+ ULONG TransferCount;
+ ULONG ActualBytesRead;
+} DBGKD_READ_MEMORY32, *PDBGKD_READ_MEMORY32;
+
typedef struct _DBGKD_READ_MEMORY64
{
ULONG64 TargetBaseAddress;
@@ -303,6 +475,13 @@
ULONG ActualBytesRead;
} DBGKD_READ_MEMORY64, *PDBGKD_READ_MEMORY64;
+typedef struct _DBGKD_WRITE_MEMORY32
+{
+ ULONG TargetBaseAddress;
+ ULONG TransferCount;
+ ULONG ActualBytesWritten;
+} DBGKD_WRITE_MEMORY32, *PDBGKD_WRITE_MEMORY32;
+
typedef struct _DBGKD_WRITE_MEMORY64
{
ULONG64 TargetBaseAddress;
@@ -319,6 +498,12 @@
{
ULONG ContextFlags;
} DBGKD_SET_CONTEXT, *PDBGKD_SET_CONTEXT;
+
+typedef struct _DBGKD_WRITE_BREAKPOINT32
+{
+ ULONG BreakPointAddress;
+ ULONG BreakPointHandle;
+} DBGKD_WRITE_BREAKPOINT32, *PDBGKD_WRITE_BREAKPOINT32;
typedef struct _DBGKD_WRITE_BREAKPOINT64
{
@@ -348,12 +533,29 @@
} DBGKD_CONTINUE2, *PDBGKD_CONTINUE2;
#include <poppack.h>
+typedef struct _DBGKD_READ_WRITE_IO32
+{
+ ULONG IoAddress;
+ ULONG DataSize;
+ ULONG DataValue;
+} DBGKD_READ_WRITE_IO32, *PDBGKD_READ_WRITE_IO32;
+
typedef struct _DBGKD_READ_WRITE_IO64
{
ULONG64 IoAddress;
ULONG DataSize;
ULONG DataValue;
} DBGKD_READ_WRITE_IO64, *PDBGKD_READ_WRITE_IO64;
+
+typedef struct _DBGKD_READ_WRITE_IO_EXTENDED32
+{
+ ULONG DataSize;
+ ULONG InterfaceType;
+ ULONG BusNumber;
+ ULONG AddressSpace;
+ ULONG IoAddress;
+ ULONG DataValue;
+} DBGKD_READ_WRITE_IO_EXTENDED32, *PDBGKD_READ_WRITE_IO_EXTENDED32;
typedef struct _DBGKD_READ_WRITE_IO_EXTENDED64
{
@@ -377,16 +579,38 @@
ULONG NumberOfSpecialCalls;
} DBGKD_QUERY_SPECIAL_CALLS, *PDBGKD_QUERY_SPECIAL_CALLS;
+typedef struct _DBGKD_SET_SPECIAL_CALL32
+{
+ ULONG SpecialCall;
+} DBGKD_SET_SPECIAL_CALL32, *PDBGKD_SET_SPECIAL_CALL32;
+
typedef struct _DBGKD_SET_SPECIAL_CALL64
{
ULONG64 SpecialCall;
} DBGKD_SET_SPECIAL_CALL64, *PDBGKD_SET_SPECIAL_CALL64;
+
+typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT32
+{
+ ULONG BreakpointAddress;
+ ULONG Flags;
+} DBGKD_SET_INTERNAL_BREAKPOINT32, *PDBGKD_SET_INTERNAL_BREAKPOINT32;
typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT64
{
ULONG64 BreakpointAddress;
ULONG Flags;
} DBGKD_SET_INTERNAL_BREAKPOINT64, *PDBGKD_SET_INTERNAL_BREAKPOINT64;
+
+typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT32
+{
+ ULONG BreakpointAddress;
+ ULONG Flags;
+ ULONG Calls;
+ ULONG MaxCallsPerPeriod;
+ ULONG MinInstructions;
+ ULONG MaxInstructions;
+ ULONG TotalInstructions;
+} DBGKD_GET_INTERNAL_BREAKPOINT32, *PDBGKD_GET_INTERNAL_BREAKPOINT32;
typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT64
{
@@ -449,6 +673,41 @@
//
// DBGKD Structure for Manipulate
//
+typedef struct _DBGKD_MANIPULATE_STATE32
+{
+ ULONG ApiNumber;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ NTSTATUS ReturnStatus;
+ union
+ {
+ DBGKD_READ_MEMORY32 ReadMemory;
+ DBGKD_WRITE_MEMORY32 WriteMemory;
+ DBGKD_READ_MEMORY64 ReadMemory64;
+ DBGKD_WRITE_MEMORY64 WriteMemory64;
+ DBGKD_GET_CONTEXT GetContext;
+ DBGKD_SET_CONTEXT SetContext;
+ DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint;
+ DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint;
+ DBGKD_CONTINUE Continue;
+ DBGKD_CONTINUE2 Continue2;
+ DBGKD_READ_WRITE_IO32 ReadWriteIo;
+ DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended;
+ DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls;
+ DBGKD_SET_SPECIAL_CALL32 SetSpecialCall;
+ DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint;
+ DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint;
+ DBGKD_GET_VERSION32 GetVersion32;
+ DBGKD_BREAKPOINTEX BreakPointEx;
+ DBGKD_READ_WRITE_MSR ReadWriteMsr;
+ DBGKD_SEARCH_MEMORY SearchMemory;
+ DBGKD_GET_SET_BUS_DATA GetSetBusData;
+ DBGKD_FILL_MEMORY FillMemory;
+ DBGKD_QUERY_MEMORY QueryMemory;
+ DBGKD_SWITCH_PARTITION SwitchPartition;
+ } u;
+} DBGKD_MANIPULATE_STATE32, *PDBGKD_MANIPULATE_STATE32;
+
typedef struct _DBGKD_MANIPULATE_STATE64
{
ULONG ApiNumber;
@@ -482,6 +741,99 @@
} u;
} DBGKD_MANIPULATE_STATE64, *PDBGKD_MANIPULATE_STATE64;
+//
+// File I/O Structure
+//
+typedef struct _DBGKD_CREATE_FILE
+{
+ ULONG DesiredAccess;
+ ULONG FileAttributes;
+ ULONG ShareAccess;
+ ULONG CreateDisposition;
+ ULONG CreateOptions;
+ ULONG64 Handle;
+ ULONG64 Length;
+} DBGKD_CREATE_FILE, *PDBGKD_CREATE_FILE;
+
+typedef struct _DBGKD_READ_FILE
+{
+ ULONG64 Handle;
+ ULONG64 Offset;
+ ULONG Length;
+} DBGKD_READ_FILE, *PDBGKD_READ_FILE;
+
+typedef struct _DBGKD_WRITE_FILE
+{
+ ULONG64 Handle;
+ ULONG64 Offset;
+ ULONG Length;
+} DBGKD_WRITE_FILE, *PDBGKD_WRITE_FILE;
+
+typedef struct _DBGKD_CLOSE_FILE
+{
+ ULONG64 Handle;
+} DBGKD_CLOSE_FILE, *PDBGKD_CLOSE_FILE;
+
+typedef struct _DBGKD_FILE_IO
+{
+ ULONG ApiNumber;
+ ULONG Status;
+ union
+ {
+ ULONG64 ReserveSpace[7];
+ DBGKD_CREATE_FILE CreateFile;
+ DBGKD_READ_FILE ReadFile;
+ DBGKD_WRITE_FILE WriteFile;
+ DBGKD_CLOSE_FILE CloseFile;
+ } u;
+} DBGKD_FILE_IO, *PDBGKD_FILE_IO;
+
+
+//
+// Control Request Structure
+//
+typedef struct _DBGKD_REQUEST_BREAKPOINT
+{
+ ULONG HardwareBreakPointNumber;
+ ULONG Available;
+} DBGKD_REQUEST_BREAKPOINT, *PDBGKD_REQUEST_BREAKPOINT;
+
+typedef struct _DBGKD_RELEASE_BREAKPOINT
+{
+ ULONG HardwareBreakPointNumber;
+ ULONG Released;
+} DBGKD_RELEASE_BREAKPOINT, *PDBGKD_RELEASE_BREAKPOINT;
+
+typedef struct _DBGKD_CONTROL_REQUEST
+{
+ ULONG ApiNumber;
+ union
+ {
+ DBGKD_REQUEST_BREAKPOINT RequestBreakpoint;
+ DBGKD_RELEASE_BREAKPOINT ReleaseBreakpoint;
+ } u;
+} DBGKD_CONTROL_REQUEST, *PDBGKD_CONTROL_REQUEST;
+
+//
+// Trace I/O Structure
+//
+typedef struct _DBGKD_PRINT_TRACE
+{
+ ULONG LengthOfData;
+} DBGKD_PRINT_TRACE, *PDBGKD_PRINT_TRACE;
+
+typedef struct _DBGKD_TRACE_IO
+{
+ ULONG ApiNumber;
+ USHORT ProcessorLevel;
+ USHORT Processor;
+ union
+ {
+ ULONG64 ReserveSpace[7];
+ DBGKD_PRINT_TRACE PrintTrace;
+ } u;
+} DBGKD_TRACE_IO, *PDBGKD_TRACE_IO;
+
FORCEINLINE
VOID
ExceptionRecord32To64(IN PEXCEPTION_RECORD32 Ex32,
- Previous message: [ros-diffs] [sginsberg] 38960: Fix the completely retarded implementation of KdComPortInUse. The original definition of this variable seems to have been based on the retarded type in the serial.sys source sample, which defines it as: extern PUCHAR *KdComPortInUse; This, somehow, works in MSVC, but gcc complains about the lack of import specifier (KdComPortInUse is exported by HAL). This was 'fixed' by adding the import specifier to ros. So instead of: PUCHAR *KdComPortInUse; We ended up with: NTHALAPI PUCHAR *KdComPortInUse; Which becomes 3 dereferences instead of 2, which is incorrect. This was 'fixed' by hacking the variable in HAL too. Use "extern PUCHAR NTHALAPI KdComPortInUse" to be compatible with both compilers, remove the HAL hacks, and fix the usage of the variable. Fixes the serial.sys crash when booted with _WINKD_ + kdcom from Windows 2003, as kdcom would (due to the HAL hack) set the internal 'pointer' to the port value, and serial would end up dereferencing the port address
- Next message: [ros-diffs] [silverblade] 38962: setupldr previously worked by faking the FreeLdr OS menu function. Now FreeLdr has a special OS type for ReactOS Setup, which will only work for the bootcd. As a result, bootcd can display a menu now. This opens up the possibility of including both a "live" environment for users to play with as well as the opportunity to install, from the same disc.
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Ros-diffs
mailing list