mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
- Add 32-bit versions to wdbgexts.h
- Add lots of missing definitions to windbgkd.h, gathered from Singularity, tinykrnl, articles, blogs, etc svn path=/trunk/; revision=38961
This commit is contained in:
parent
dc7184e73f
commit
56a1175be8
2 changed files with 453 additions and 6 deletions
|
@ -22,6 +22,101 @@ enum
|
|||
|
||||
#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
|
||||
{
|
||||
USHORT MajorVersion;
|
||||
|
|
|
@ -61,6 +61,12 @@
|
|||
#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
|
||||
//
|
||||
|
@ -113,6 +119,25 @@
|
|||
#define DbgKdPrintStringApi 0x00003230
|
||||
#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
|
||||
//
|
||||
|
@ -141,6 +166,34 @@
|
|||
#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 @@ typedef struct _AMD64_DBGKD_CONTROL_SET
|
|||
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 @@ typedef struct _DBGKD_ANY_CONTROL_SET
|
|||
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 @@ typedef struct _DBGKM_EXCEPTION64
|
|||
//
|
||||
// DBGKD Structure for State Change
|
||||
//
|
||||
typedef struct _DBGKD_CONTROL_REPORT
|
||||
typedef struct _X86_DBGKD_CONTROL_REPORT
|
||||
{
|
||||
ULONG Dr6;
|
||||
ULONG Dr7;
|
||||
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 @@ typedef struct _DBGKD_CONTROL_REPORT
|
|||
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
|
||||
|
@ -260,9 +366,29 @@ typedef struct _DBGKD_DEBUG_IO
|
|||
} u;
|
||||
} 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 @@ typedef struct _DBGKD_LOAD_SYMBOLS64
|
|||
//
|
||||
// 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 @@ typedef struct _DBGKD_WAIT_STATE_CHANGE64
|
|||
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 @@ typedef struct _DBGKD_READ_MEMORY64
|
|||
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;
|
||||
|
@ -320,6 +499,12 @@ typedef struct _DBGKD_SET_CONTEXT
|
|||
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
|
||||
{
|
||||
ULONG64 BreakPointAddress;
|
||||
|
@ -348,6 +533,13 @@ typedef struct _DBGKD_CONTINUE2
|
|||
} 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;
|
||||
|
@ -355,6 +547,16 @@ typedef struct _DBGKD_READ_WRITE_IO64
|
|||
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
|
||||
{
|
||||
ULONG DataSize;
|
||||
|
@ -377,17 +579,39 @@ typedef struct _DBGKD_QUERY_SPECIAL_CALLS
|
|||
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
|
||||
{
|
||||
ULONG64 BreakpointAddress;
|
||||
|
@ -449,6 +673,41 @@ typedef struct _DBGKD_SWITCH_PARTITION
|
|||
//
|
||||
// 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 @@ typedef struct _DBGKD_MANIPULATE_STATE64
|
|||
} 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,
|
||||
|
|
Loading…
Reference in a new issue