Headers diff for dbgeng.dll between 6.0.6002.18005-Windows 6.0 and 6.1.7601.17514-Windows 7.0 versions



 dbgeng.h (6.0.6002.18005-Windows 6.0)   dbgeng.h (6.1.7601.17514-Windows 7.0) 
skipping to change at line 123 skipping to change at line 123
0xa0, 0x4f, 0x98, 0x7a, 0xc2, 0x9a, 0xd0, 0xd3); 0xa0, 0x4f, 0x98, 0x7a, 0xc2, 0x9a, 0xd0, 0xd3);
/* 9f50e42c-f136-499e-9a97-73036c94ed2d */ /* 9f50e42c-f136-499e-9a97-73036c94ed2d */
DEFINE_GUID(IID_IDebugInputCallbacks, 0x9f50e42c, 0xf136, 0x499e, DEFINE_GUID(IID_IDebugInputCallbacks, 0x9f50e42c, 0xf136, 0x499e,
0x9a, 0x97, 0x73, 0x03, 0x6c, 0x94, 0xed, 0x2d); 0x9a, 0x97, 0x73, 0x03, 0x6c, 0x94, 0xed, 0x2d);
/* 4bf58045-d654-4c40-b0af-683090f356dc */ /* 4bf58045-d654-4c40-b0af-683090f356dc */
DEFINE_GUID(IID_IDebugOutputCallbacks, 0x4bf58045, 0xd654, 0x4c40, DEFINE_GUID(IID_IDebugOutputCallbacks, 0x4bf58045, 0xd654, 0x4c40,
0xb0, 0xaf, 0x68, 0x30, 0x90, 0xf3, 0x56, 0xdc); 0xb0, 0xaf, 0x68, 0x30, 0x90, 0xf3, 0x56, 0xdc);
/* 4c7fd663-c394-4e26-8ef1-34ad5ed3764c */ /* 4c7fd663-c394-4e26-8ef1-34ad5ed3764c */
DEFINE_GUID(IID_IDebugOutputCallbacksWide, 0x4c7fd663, 0xc394, 0x4e26, DEFINE_GUID(IID_IDebugOutputCallbacksWide, 0x4c7fd663, 0xc394, 0x4e26,
0x8e, 0xf1, 0x34, 0xad, 0x5e, 0xd3, 0x76, 0x4c); 0x8e, 0xf1, 0x34, 0xad, 0x5e, 0xd3, 0x76, 0x4c);
/* 67721fe9-56d2-4a44-a325-2b65513ce6eb */
DEFINE_GUID(IID_IDebugOutputCallbacks2, 0x67721fe9, 0x56d2, 0x4a44,
0xa3, 0x25, 0x2b, 0x65, 0x51, 0x3c, 0xe6, 0xeb);
/* ce289126-9e84-45a7-937e-67bb18691493 */ /* ce289126-9e84-45a7-937e-67bb18691493 */
DEFINE_GUID(IID_IDebugRegisters, 0xce289126, 0x9e84, 0x45a7, DEFINE_GUID(IID_IDebugRegisters, 0xce289126, 0x9e84, 0x45a7,
0x93, 0x7e, 0x67, 0xbb, 0x18, 0x69, 0x14, 0x93); 0x93, 0x7e, 0x67, 0xbb, 0x18, 0x69, 0x14, 0x93);
/* 1656afa9-19c6-4e3a-97e7-5dc9160cf9c4 */ /* 1656afa9-19c6-4e3a-97e7-5dc9160cf9c4 */
DEFINE_GUID(IID_IDebugRegisters2, 0x1656afa9, 0x19c6, 0x4e3a, DEFINE_GUID(IID_IDebugRegisters2, 0x1656afa9, 0x19c6, 0x4e3a,
0x97, 0xe7, 0x5d, 0xc9, 0x16, 0x0c, 0xf9, 0xc4); 0x97, 0xe7, 0x5d, 0xc9, 0x16, 0x0c, 0xf9, 0xc4);
/* f2528316-0f1a-4431-aeed-11d096e1e2ab */ /* f2528316-0f1a-4431-aeed-11d096e1e2ab */
DEFINE_GUID(IID_IDebugSymbolGroup, 0xf2528316, 0x0f1a, 0x4431, DEFINE_GUID(IID_IDebugSymbolGroup, 0xf2528316, 0x0f1a, 0x4431,
0xae, 0xed, 0x11, 0xd0, 0x96, 0xe1, 0xe2, 0xab); 0xae, 0xed, 0x11, 0xd0, 0x96, 0xe1, 0xe2, 0xab);
/* 6a7ccc5f-fb5e-4dcc-b41c-6c20307bccc7 */ /* 6a7ccc5f-fb5e-4dcc-b41c-6c20307bccc7 */
skipping to change at line 203 skipping to change at line 206
typedef interface DECLSPEC_UUID("337be28b-5036-4d72-b6bf-c45fbb9f2eaa") typedef interface DECLSPEC_UUID("337be28b-5036-4d72-b6bf-c45fbb9f2eaa")
IDebugEventCallbacks* PDEBUG_EVENT_CALLBACKS; IDebugEventCallbacks* PDEBUG_EVENT_CALLBACKS;
typedef interface DECLSPEC_UUID("0690e046-9c23-45ac-a04f-987ac29ad0d3") typedef interface DECLSPEC_UUID("0690e046-9c23-45ac-a04f-987ac29ad0d3")
IDebugEventCallbacksWide* PDEBUG_EVENT_CALLBACKS_WIDE; IDebugEventCallbacksWide* PDEBUG_EVENT_CALLBACKS_WIDE;
typedef interface DECLSPEC_UUID("9f50e42c-f136-499e-9a97-73036c94ed2d") typedef interface DECLSPEC_UUID("9f50e42c-f136-499e-9a97-73036c94ed2d")
IDebugInputCallbacks* PDEBUG_INPUT_CALLBACKS; IDebugInputCallbacks* PDEBUG_INPUT_CALLBACKS;
typedef interface DECLSPEC_UUID("4bf58045-d654-4c40-b0af-683090f356dc") typedef interface DECLSPEC_UUID("4bf58045-d654-4c40-b0af-683090f356dc")
IDebugOutputCallbacks* PDEBUG_OUTPUT_CALLBACKS; IDebugOutputCallbacks* PDEBUG_OUTPUT_CALLBACKS;
typedef interface DECLSPEC_UUID("4c7fd663-c394-4e26-8ef1-34ad5ed3764c") typedef interface DECLSPEC_UUID("4c7fd663-c394-4e26-8ef1-34ad5ed3764c")
IDebugOutputCallbacksWide* PDEBUG_OUTPUT_CALLBACKS_WIDE; IDebugOutputCallbacksWide* PDEBUG_OUTPUT_CALLBACKS_WIDE;
typedef interface DECLSPEC_UUID("67721fe9-56d2-4a44-a325-2b65513ce6eb")
IDebugOutputCallbacks2* PDEBUG_OUTPUT_CALLBACKS2;
typedef interface DECLSPEC_UUID("ce289126-9e84-45a7-937e-67bb18691493") typedef interface DECLSPEC_UUID("ce289126-9e84-45a7-937e-67bb18691493")
IDebugRegisters* PDEBUG_REGISTERS; IDebugRegisters* PDEBUG_REGISTERS;
typedef interface DECLSPEC_UUID("1656afa9-19c6-4e3a-97e7-5dc9160cf9c4") typedef interface DECLSPEC_UUID("1656afa9-19c6-4e3a-97e7-5dc9160cf9c4")
IDebugRegisters2* PDEBUG_REGISTERS2; IDebugRegisters2* PDEBUG_REGISTERS2;
typedef interface DECLSPEC_UUID("f2528316-0f1a-4431-aeed-11d096e1e2ab") typedef interface DECLSPEC_UUID("f2528316-0f1a-4431-aeed-11d096e1e2ab")
IDebugSymbolGroup* PDEBUG_SYMBOL_GROUP; IDebugSymbolGroup* PDEBUG_SYMBOL_GROUP;
typedef interface DECLSPEC_UUID("6a7ccc5f-fb5e-4dcc-b41c-6c20307bccc7") typedef interface DECLSPEC_UUID("6a7ccc5f-fb5e-4dcc-b41c-6c20307bccc7")
IDebugSymbolGroup2* PDEBUG_SYMBOL_GROUP2; IDebugSymbolGroup2* PDEBUG_SYMBOL_GROUP2;
typedef interface DECLSPEC_UUID("8c31e98c-983a-48a5-9016-6fe5d667a950") typedef interface DECLSPEC_UUID("8c31e98c-983a-48a5-9016-6fe5d667a950")
IDebugSymbols* PDEBUG_SYMBOLS; IDebugSymbols* PDEBUG_SYMBOLS;
skipping to change at line 327 skipping to change at line 332
typedef struct _DEBUG_READ_USER_MINIDUMP_STREAM typedef struct _DEBUG_READ_USER_MINIDUMP_STREAM
{ {
IN ULONG StreamType; IN ULONG StreamType;
IN ULONG Flags; IN ULONG Flags;
IN ULONG64 Offset; IN ULONG64 Offset;
OUT PVOID Buffer; OUT PVOID Buffer;
IN ULONG BufferSize; IN ULONG BufferSize;
OUT ULONG BufferUsed; OUT ULONG BufferUsed;
} DEBUG_READ_USER_MINIDUMP_STREAM, *PDEBUG_READ_USER_MINIDUMP_STREAM; } DEBUG_READ_USER_MINIDUMP_STREAM, *PDEBUG_READ_USER_MINIDUMP_STREAM;
#define DEBUG_GET_TEXT_COMPLETIONS_NO_DOT_COMMANDS 0x00000001
#define DEBUG_GET_TEXT_COMPLETIONS_NO_EXTENSION_COMMANDS 0x00000002
#define DEBUG_GET_TEXT_COMPLETIONS_NO_SYMBOLS 0x00000004
typedef struct _DEBUG_GET_TEXT_COMPLETIONS_IN
{
ULONG Flags;
ULONG MatchCountLimit;
ULONG64 Reserved[3];
// Input text string follows.
} DEBUG_GET_TEXT_COMPLETIONS_IN, *PDEBUG_GET_TEXT_COMPLETIONS_IN;
#define DEBUG_GET_TEXT_COMPLETIONS_IS_DOT_COMMAND 0x00000001
#define DEBUG_GET_TEXT_COMPLETIONS_IS_EXTENSION_COMMAND 0x00000002
#define DEBUG_GET_TEXT_COMPLETIONS_IS_SYMBOL 0x00000004
typedef struct _DEBUG_GET_TEXT_COMPLETIONS_OUT
{
ULONG Flags;
// Char index in input string where completions start.
ULONG ReplaceIndex;
ULONG MatchCount;
ULONG Reserved1;
ULONG64 Reserved2[2];
// Completions follow.
// Completion data is zero-terminated strings ended
// by a final zero double-terminator.
} DEBUG_GET_TEXT_COMPLETIONS_OUT, *PDEBUG_GET_TEXT_COMPLETIONS_OUT;
typedef struct _DEBUG_CACHED_SYMBOL_INFO
{
ULONG64 ModBase;
ULONG64 Arg1;
ULONG64 Arg2;
ULONG Id;
ULONG Arg3;
} DEBUG_CACHED_SYMBOL_INFO, *PDEBUG_CACHED_SYMBOL_INFO;
// //
// Request requests. // Request requests.
// //
// InBuffer - Unused. // InBuffer - Unused.
// OutBuffer - Unused. // OutBuffer - Unused.
#define DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER 0 #define DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER 0
// InBuffer - Unused. // InBuffer - Unused.
// OutBuffer - Machine-specific CONTEXT. // OutBuffer - Machine-specific CONTEXT.
skipping to change at line 387 skipping to change at line 430
#define DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM 11 #define DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM 11
// InBuffer - Input data block. // InBuffer - Input data block.
// OutBuffer - Processed data block. // OutBuffer - Processed data block.
#define DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 12 #define DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 12
// InBuffer - Unused. // InBuffer - Unused.
// OutBuffer - Returned path. // OutBuffer - Returned path.
#define DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE 13 #define DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE 13
// InBuffer - DEBUG_GET_TEXT_COMPLETIONS_IN.
// OutBuffer - DEBUG_GET_TEXT_COMPLETIONS_OUT.
#define DEBUG_REQUEST_GET_TEXT_COMPLETIONS_WIDE 14
// InBuffer - ULONG64 cookie.
// OutBuffer - DEBUG_CACHED_SYMBOL_INFO.
#define DEBUG_REQUEST_GET_CACHED_SYMBOL_INFO 15
// InBuffer - DEBUG_CACHED_SYMBOL_INFO.
// OutBuffer - ULONG64 cookie.
#define DEBUG_REQUEST_ADD_CACHED_SYMBOL_INFO 16
// InBuffer - ULONG64 cookie.
// OutBuffer - Unused.
#define DEBUG_REQUEST_REMOVE_CACHED_SYMBOL_INFO 17
// InBuffer - DEBUG_GET_TEXT_COMPLETIONS_IN.
// OutBuffer - DEBUG_GET_TEXT_COMPLETIONS_OUT.
#define DEBUG_REQUEST_GET_TEXT_COMPLETIONS_ANSI 18
// InBuffer - Unused.
// OutBuffer - Unused.
#define DEBUG_REQUEST_CURRENT_OUTPUT_CALLBACKS_ARE_DML_AWARE 19
// InBuffer - ULONG64 offset.
// OutBuffer - Unwind information.
#define DEBUG_REQUEST_GET_OFFSET_UNWIND_INFORMATION 20
// InBuffer - Unused
// OutBuffer - returned DUMP_HEADER32/DUMP_HEADER64 structure.
#define DEBUG_REQUEST_GET_DUMP_HEADER 21
// InBuffer - DUMP_HEADER32/DUMP_HEADER64 structure.
// OutBuffer - Unused
#define DEBUG_REQUEST_SET_DUMP_HEADER 22
// InBuffer - Midori specific
// OutBuffer - Midori specific
#define DEBUG_REQUEST_MIDORI 23
// InBuffer - Unused
// OutBuffer - PROCESS_NAME_ENTRY blocks
#define DEBUG_REQUEST_PROCESS_DESCRIPTORS 24
// InBuffer - Unused
// OutBuffer - MINIDUMP_MISC_INFO_N blocks
#define DEBUG_REQUEST_MISC_INFORMATION 25
// InBuffer - Unused
// OutBuffer - ULONG64 as TokenHandle value
#define DEBUG_REQUEST_OPEN_PROCESS_TOKEN 26
// InBuffer - Unused
// OutBuffer - ULONG64 as TokenHandle value
#define DEBUG_REQUEST_OPEN_THREAD_TOKEN 27
// InBuffer - ULONG64 as TokenHandle being duplicated
// OutBuffer - ULONG64 as new duplicated TokenHandle
#define DEBUG_REQUEST_DUPLICATE_TOKEN 28
// InBuffer - a ULONG64 as TokenHandle and a ULONG as NtQueryInformationToken()
request code
// OutBuffer - NtQueryInformationToken() return
#define DEBUG_REQUEST_QUERY_INFO_TOKEN 29
// InBuffer - ULONG64 as TokenHandle
// OutBuffer - Unused
#define DEBUG_REQUEST_CLOSE_TOKEN 30
// //
// GetSourceFileInformation requests. // GetSourceFileInformation requests.
// //
// Arg64 - Module base. // Arg64 - Module base.
// Arg32 - Unused. // Arg32 - Unused.
#define DEBUG_SRCFILE_SYMBOL_TOKEN 0 #define DEBUG_SRCFILE_SYMBOL_TOKEN 0
// Arg64 - Module base. // Arg64 - Module base.
// Arg32 - Unused. // Arg32 - Unused.
skipping to change at line 436 skipping to change at line 547
// strings are zero-terminated and the final string in // strings are zero-terminated and the final string in
// a symbol is double-zero-terminated. // a symbol is double-zero-terminated.
#define DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS 3 #define DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS 3
// //
// GetSystemObjectInformation requests. // GetSystemObjectInformation requests.
// //
// Arg64 - Unused. // Arg64 - Unused.
// Arg32 - Debugger thread ID. // Arg32 - Debugger thread ID.
// Buffer - DEBUG_THREAD_BASIC_INFORMATION.
#define DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION 0 #define DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION 0
// Arg64 - Unused.
// Arg32 - Debugger thread ID.
// Buffer - Unicode name string.
#define DEBUG_SYSOBJINFO_THREAD_NAME_WIDE 1
// Arg64 - Unused.
// Arg32 - Unused.
// Buffer - ULONG cookie value.
#define DEBUG_SYSOBJINFO_CURRENT_PROCESS_COOKIE 2
#define DEBUG_TBINFO_EXIT_STATUS 0x00000001 #define DEBUG_TBINFO_EXIT_STATUS 0x00000001
#define DEBUG_TBINFO_PRIORITY_CLASS 0x00000002 #define DEBUG_TBINFO_PRIORITY_CLASS 0x00000002
#define DEBUG_TBINFO_PRIORITY 0x00000004 #define DEBUG_TBINFO_PRIORITY 0x00000004
#define DEBUG_TBINFO_TIMES 0x00000008 #define DEBUG_TBINFO_TIMES 0x00000008
#define DEBUG_TBINFO_START_OFFSET 0x00000010 #define DEBUG_TBINFO_START_OFFSET 0x00000010
#define DEBUG_TBINFO_AFFINITY 0x00000020 #define DEBUG_TBINFO_AFFINITY 0x00000020
#define DEBUG_TBINFO_ALL 0x0000003f #define DEBUG_TBINFO_ALL 0x0000003f
typedef struct _DEBUG_THREAD_BASIC_INFORMATION typedef struct _DEBUG_THREAD_BASIC_INFORMATION
{ {
skipping to change at line 1357 skipping to change at line 1479
// for debugging the debugger. Output // for debugging the debugger. Output
// may only occur in debug builds. // may only occur in debug builds.
// KD protocol output. // KD protocol output.
#define DEBUG_IOUTPUT_KD_PROTOCOL 0x80000000 #define DEBUG_IOUTPUT_KD_PROTOCOL 0x80000000
// Remoting output. // Remoting output.
#define DEBUG_IOUTPUT_REMOTING 0x40000000 #define DEBUG_IOUTPUT_REMOTING 0x40000000
// Breakpoint output. // Breakpoint output.
#define DEBUG_IOUTPUT_BREAKPOINT 0x20000000 #define DEBUG_IOUTPUT_BREAKPOINT 0x20000000
// Event output. // Event output.
#define DEBUG_IOUTPUT_EVENT 0x10000000 #define DEBUG_IOUTPUT_EVENT 0x10000000
// Virtual/Physical address translation
#define DEBUG_IOUTPUT_ADDR_TRANSLATE 0x08000000
// OutputIdentity flags. // OutputIdentity flags.
#define DEBUG_OUTPUT_IDENTITY_DEFAULT 0x00000000 #define DEBUG_OUTPUT_IDENTITY_DEFAULT 0x00000000
#undef INTERFACE #undef INTERFACE
#define INTERFACE IDebugClient #define INTERFACE IDebugClient
DECLARE_INTERFACE_(IDebugClient, IUnknown) DECLARE_INTERFACE_(IDebugClient, IUnknown)
{ {
// IUnknown. // IUnknown.
STDMETHOD(QueryInterface)( STDMETHOD(QueryInterface)(
skipping to change at line 1750 skipping to change at line 1874
// output are collected into larger groups to // output are collected into larger groups to
// reduce the overall number of output callback calls. // reduce the overall number of output callback calls.
// A client can use this method to force all pending // A client can use this method to force all pending
// callbacks to be delivered. This is rarely necessary. // callbacks to be delivered. This is rarely necessary.
STDMETHOD(FlushCallbacks)( STDMETHOD(FlushCallbacks)(
THIS THIS
) PURE; ) PURE;
}; };
// Per-dump-format control flags. // Per-dump-format control flags.
#define DEBUG_FORMAT_DEFAULT 0x00000000 #define DEBUG_FORMAT_DEFAULT 0x00000000
// When creating a CAB with secondary images do searches
// for all image files, regardless of whether they're
// needed for the current session or not.
#define DEBUG_FORMAT_CAB_SECONDARY_ALL_IMAGES 0x10000000
// Write dump to a temporary file, then package it // Write dump to a temporary file, then package it
// into a CAB file and delete the temporary file. // into a CAB file and delete the temporary file.
#define DEBUG_FORMAT_WRITE_CAB 0x20000000 #define DEBUG_FORMAT_WRITE_CAB 0x20000000
// When creating a CAB add secondary files such as // When creating a CAB add secondary files such as
// current symbols and mapped images. // current symbols and mapped images.
#define DEBUG_FORMAT_CAB_SECONDARY_FILES 0x40000000 #define DEBUG_FORMAT_CAB_SECONDARY_FILES 0x40000000
// Don't overwrite existing files. // Don't overwrite existing files.
#define DEBUG_FORMAT_NO_OVERWRITE 0x80000000 #define DEBUG_FORMAT_NO_OVERWRITE 0x80000000
#define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY 0x00000001 #define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY 0x00000001
#define DEBUG_FORMAT_USER_SMALL_HANDLE_DATA 0x00000002 #define DEBUG_FORMAT_USER_SMALL_HANDLE_DATA 0x00000002
#define DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES 0x00000004 #define DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES 0x00000004
#define DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY 0x00000008 #define DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY 0x00000008
#define DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS 0x00000010 #define DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS 0x00000010
#define DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY 0x00000020 #define DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY 0x00000020
#define DEBUG_FORMAT_USER_SMALL_FILTER_PATHS 0x00000040 #define DEBUG_FORMAT_USER_SMALL_FILTER_PATHS 0x00000040
#define DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA 0x00000080 #define DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA 0x00000080
#define DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY 0x00000100 #define DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY 0x00000100
#define DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA 0x00000200 #define DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA 0x00000200
#define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO 0x00000400 #define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO 0x00000400
#define DEBUG_FORMAT_USER_SMALL_THREAD_INFO 0x00000800 #define DEBUG_FORMAT_USER_SMALL_THREAD_INFO 0x00000800
#define DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS 0x00001000 #define DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS 0x00001000
#define DEBUG_FORMAT_USER_SMALL_NO_AUXILIARY_STATE 0x00002000 #define DEBUG_FORMAT_USER_SMALL_NO_AUXILIARY_STATE 0x00002000
#define DEBUG_FORMAT_USER_SMALL_FULL_AUXILIARY_STATE 0x00004000 #define DEBUG_FORMAT_USER_SMALL_FULL_AUXILIARY_STATE 0x00004000
#define DEBUG_FORMAT_USER_SMALL_IGNORE_INACCESSIBLE_MEM 0x08000000
// //
// Dump information file types. // Dump information file types.
// //
// Base dump file, returned when querying for dump files. // Base dump file, returned when querying for dump files.
#define DEBUG_DUMP_FILE_BASE 0xffffffff #define DEBUG_DUMP_FILE_BASE 0xffffffff
// Single file containing packed page file information. // Single file containing packed page file information.
#define DEBUG_DUMP_FILE_PAGE_FILE_DUMP 0x00000000 #define DEBUG_DUMP_FILE_PAGE_FILE_DUMP 0x00000000
skipping to change at line 4088 skipping to change at line 4217
// Output will be logged but not sent to callbacks. // Output will be logged but not sent to callbacks.
#define DEBUG_OUTCTL_LOG_ONLY 0x00000004 #define DEBUG_OUTCTL_LOG_ONLY 0x00000004
// All send control bits. // All send control bits.
#define DEBUG_OUTCTL_SEND_MASK 0x00000007 #define DEBUG_OUTCTL_SEND_MASK 0x00000007
// Do not place output from this client in // Do not place output from this client in
// the global log file. // the global log file.
#define DEBUG_OUTCTL_NOT_LOGGED 0x00000008 #define DEBUG_OUTCTL_NOT_LOGGED 0x00000008
// Send output to clients regardless of whether the // Send output to clients regardless of whether the
// mask allows it or not. // mask allows it or not.
#define DEBUG_OUTCTL_OVERRIDE_MASK 0x00000010 #define DEBUG_OUTCTL_OVERRIDE_MASK 0x00000010
// Text is markup instead of plain text.
#define DEBUG_OUTCTL_DML 0x00000020
// Special value which means leave the output settings // Special values which mean leave the output settings
// unchanged. // unchanged.
#define DEBUG_OUTCTL_AMBIENT 0xffffffff #define DEBUG_OUTCTL_AMBIENT_DML 0xfffffffe
#define DEBUG_OUTCTL_AMBIENT_TEXT 0xffffffff
// Old ambient flag which maps to text.
#define DEBUG_OUTCTL_AMBIENT DEBUG_OUTCTL_AMBIENT_TEXT
// Interrupt types. // Interrupt types.
// Force a break in if the debuggee is running. // Force a break in if the debuggee is running.
#define DEBUG_INTERRUPT_ACTIVE 0 #define DEBUG_INTERRUPT_ACTIVE 0
// Notify but do not force a break in. // Notify but do not force a break in.
#define DEBUG_INTERRUPT_PASSIVE 1 #define DEBUG_INTERRUPT_PASSIVE 1
// Try and get the current engine operation to // Try and get the current engine operation to
// complete so that the engine will be available // complete so that the engine will be available
// again. If no wait is active this is the same // again. If no wait is active this is the same
// as a passive interrupt. If a wait is active // as a passive interrupt. If a wait is active
skipping to change at line 4225 skipping to change at line 4360
// Disables symbol loading for all modules created // Disables symbol loading for all modules created
// after this flag is set. // after this flag is set.
#define DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD 0x00008000 #define DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD 0x00008000
// Disables execution commands. // Disables execution commands.
#define DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS 0x00010000 #define DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS 0x00010000
// Disallows mapping of image files from disk for any use. // Disallows mapping of image files from disk for any use.
// For example, this disallows image mapping for memory // For example, this disallows image mapping for memory
// content when debugging minidumps. // content when debugging minidumps.
// Does not affect existing mappings, only future attempts. // Does not affect existing mappings, only future attempts.
#define DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING 0x00020000 #define DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING 0x00020000
#define DEBUG_ENGOPT_ALL 0x0003FFFF // Requests that dbgeng run DML-enhanced versions of commands
// and operations by default.
#define DEBUG_ENGOPT_PREFER_DML 0x00040000
#define DEBUG_ENGOPT_ALL 0x0007FFFF
// General unspecified ID constant. // General unspecified ID constant.
#define DEBUG_ANY_ID 0xffffffff #define DEBUG_ANY_ID 0xffffffff
typedef struct _DEBUG_STACK_FRAME typedef struct _DEBUG_STACK_FRAME
{ {
ULONG64 InstructionOffset; ULONG64 InstructionOffset;
ULONG64 ReturnOffset; ULONG64 ReturnOffset;
ULONG64 FrameOffset; ULONG64 FrameOffset;
ULONG64 StackOffset; ULONG64 StackOffset;
skipping to change at line 4278 skipping to change at line 4416
// Show frame numbers // Show frame numbers
#define DEBUG_STACK_FRAME_NUMBERS 0x00000040 #define DEBUG_STACK_FRAME_NUMBERS 0x00000040
// Show typed source parameters. // Show typed source parameters.
#define DEBUG_STACK_PARAMETERS 0x00000080 #define DEBUG_STACK_PARAMETERS 0x00000080
// Show just return address in stack frame addresses. // Show just return address in stack frame addresses.
#define DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY 0x00000100 #define DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY 0x00000100
// Show frame-to-frame memory usage. // Show frame-to-frame memory usage.
#define DEBUG_STACK_FRAME_MEMORY_USAGE 0x00000200 #define DEBUG_STACK_FRAME_MEMORY_USAGE 0x00000200
// Show typed source parameters one to a line. // Show typed source parameters one to a line.
#define DEBUG_STACK_PARAMETERS_NEWLINE 0x00000400 #define DEBUG_STACK_PARAMETERS_NEWLINE 0x00000400
// Produce stack output enhanced with DML content.
#define DEBUG_STACK_DML 0x00000800
// Show offset from stack frame
#define DEBUG_STACK_FRAME_OFFSETS 0x00001000
// Classes of debuggee. Each class // Classes of debuggee. Each class
// has different qualifiers for specific // has different qualifiers for specific
// kinds of debuggees. // kinds of debuggees.
#define DEBUG_CLASS_UNINITIALIZED 0 #define DEBUG_CLASS_UNINITIALIZED 0
#define DEBUG_CLASS_KERNEL 1 #define DEBUG_CLASS_KERNEL 1
#define DEBUG_CLASS_USER_WINDOWS 2 #define DEBUG_CLASS_USER_WINDOWS 2
#define DEBUG_CLASS_IMAGE_FILE 3 #define DEBUG_CLASS_IMAGE_FILE 3
// Generic dump types. These can be used // Generic dump types. These can be used
skipping to change at line 4302 skipping to change at line 4444
#define DEBUG_DUMP_DEFAULT 1025 #define DEBUG_DUMP_DEFAULT 1025
#define DEBUG_DUMP_FULL 1026 #define DEBUG_DUMP_FULL 1026
#define DEBUG_DUMP_IMAGE_FILE 1027 #define DEBUG_DUMP_IMAGE_FILE 1027
#define DEBUG_DUMP_TRACE_LOG 1028 #define DEBUG_DUMP_TRACE_LOG 1028
#define DEBUG_DUMP_WINDOWS_CE 1029 #define DEBUG_DUMP_WINDOWS_CE 1029
// Specific types of kernel debuggees. // Specific types of kernel debuggees.
#define DEBUG_KERNEL_CONNECTION 0 #define DEBUG_KERNEL_CONNECTION 0
#define DEBUG_KERNEL_LOCAL 1 #define DEBUG_KERNEL_LOCAL 1
#define DEBUG_KERNEL_EXDI_DRIVER 2 #define DEBUG_KERNEL_EXDI_DRIVER 2
#define DEBUG_KERNEL_IDNA 3
#define DEBUG_KERNEL_SMALL_DUMP DEBUG_DUMP_SMALL #define DEBUG_KERNEL_SMALL_DUMP DEBUG_DUMP_SMALL
#define DEBUG_KERNEL_DUMP DEBUG_DUMP_DEFAULT #define DEBUG_KERNEL_DUMP DEBUG_DUMP_DEFAULT
#define DEBUG_KERNEL_FULL_DUMP DEBUG_DUMP_FULL #define DEBUG_KERNEL_FULL_DUMP DEBUG_DUMP_FULL
#define DEBUG_KERNEL_TRACE_LOG DEBUG_DUMP_TRACE_LOG #define DEBUG_KERNEL_TRACE_LOG DEBUG_DUMP_TRACE_LOG
// Specific types of Windows user debuggees. // Specific types of Windows user debuggees.
#define DEBUG_USER_WINDOWS_PROCESS 0 #define DEBUG_USER_WINDOWS_PROCESS 0
#define DEBUG_USER_WINDOWS_PROCESS_SERVER 1 #define DEBUG_USER_WINDOWS_PROCESS_SERVER 1
skipping to change at line 7341 skipping to change at line 7484
) PURE; ) PURE;
}; };
// //
// Log file flags. // Log file flags.
// //
#define DEBUG_LOG_DEFAULT 0x00000000 #define DEBUG_LOG_DEFAULT 0x00000000
#define DEBUG_LOG_APPEND 0x00000001 #define DEBUG_LOG_APPEND 0x00000001
#define DEBUG_LOG_UNICODE 0x00000002 #define DEBUG_LOG_UNICODE 0x00000002
#define DEBUG_LOG_DML 0x00000004
// //
// System version strings. // System version strings.
// //
#define DEBUG_SYSVERSTR_SERVICE_PACK 0x00000000 #define DEBUG_SYSVERSTR_SERVICE_PACK 0x00000000
#define DEBUG_SYSVERSTR_BUILD 0x00000001 #define DEBUG_SYSVERSTR_BUILD 0x00000001
// //
// GetManagedStatus flags and strings. // GetManagedStatus flags and strings.
skipping to change at line 8395 skipping to change at line 8539
__out PBOOL Append __out PBOOL Append
) PURE; ) PURE;
STDMETHOD(OpenLogFileWide)( STDMETHOD(OpenLogFileWide)(
THIS_ THIS_
__in PCWSTR File, __in PCWSTR File,
__in BOOL Append __in BOOL Append
) PURE; ) PURE;
STDMETHOD(InputWide)( STDMETHOD(InputWide)(
THIS_ THIS_
__out PWSTR Buffer, __out_ecount(BufferSize) PWSTR Buffer,
__in ULONG BufferSize, __in ULONG BufferSize,
__out_opt PULONG InputSize __out_opt PULONG InputSize
) PURE; ) PURE;
STDMETHOD(ReturnInputWide)( STDMETHOD(ReturnInputWide)(
THIS_ THIS_
__in PCWSTR Buffer __in PCWSTR Buffer
) PURE; ) PURE;
STDMETHODV(OutputWide)( STDMETHODV(OutputWide)(
THIS_ THIS_
skipping to change at line 8900 skipping to change at line 9044
#define DEBUG_DATA_SizePrcb 688 #define DEBUG_DATA_SizePrcb 688
#define DEBUG_DATA_OffsetPrcbDpcRoutine 690 #define DEBUG_DATA_OffsetPrcbDpcRoutine 690
#define DEBUG_DATA_OffsetPrcbCurrentThread 692 #define DEBUG_DATA_OffsetPrcbCurrentThread 692
#define DEBUG_DATA_OffsetPrcbMhz 694 #define DEBUG_DATA_OffsetPrcbMhz 694
#define DEBUG_DATA_OffsetPrcbCpuType 696 #define DEBUG_DATA_OffsetPrcbCpuType 696
#define DEBUG_DATA_OffsetPrcbVendorString 698 #define DEBUG_DATA_OffsetPrcbVendorString 698
#define DEBUG_DATA_OffsetPrcbProcessorState 700 #define DEBUG_DATA_OffsetPrcbProcessorState 700
#define DEBUG_DATA_OffsetPrcbNumber 702 #define DEBUG_DATA_OffsetPrcbNumber 702
#define DEBUG_DATA_SizeEThread 704 #define DEBUG_DATA_SizeEThread 704
#define DEBUG_DATA_KdPrintCircularBufferPtrAddr 712 #define DEBUG_DATA_KdPrintCircularBufferPtrAddr 712
#define DEBUG_DATA_KdPrintBufferSizeAddr 720 #define DEBUG_DATA_KdPrintBufferSizeAddr 720
#define DEBUG_DATA_MmBadPagesDetected 800 #define DEBUG_DATA_MmBadPagesDetected 800
#define DEBUG_DATA_EtwpDebuggerData 816
#define DEBUG_DATA_PaeEnabled 100000 #define DEBUG_DATA_PaeEnabled 100000
#define DEBUG_DATA_SharedUserData 100008 #define DEBUG_DATA_SharedUserData 100008
#define DEBUG_DATA_ProductType 100016 #define DEBUG_DATA_ProductType 100016
#define DEBUG_DATA_SuiteMask 100024 #define DEBUG_DATA_SuiteMask 100024
#define DEBUG_DATA_DumpWriterStatus 100032 #define DEBUG_DATA_DumpWriterStatus 100032
#define DEBUG_DATA_DumpFormatVersion 100040 #define DEBUG_DATA_DumpFormatVersion 100040
#define DEBUG_DATA_DumpWriterVersion 100048 #define DEBUG_DATA_DumpWriterVersion 100048
#define DEBUG_DATA_DumpPowerState 100056 #define DEBUG_DATA_DumpPowerState 100056
#define DEBUG_DATA_DumpMmStorage 100064 #define DEBUG_DATA_DumpMmStorage 100064
skipping to change at line 9756 skipping to change at line 9901
__out PULONG Size __out PULONG Size
) PURE; ) PURE;
STDMETHOD(EndEnumTagged)( STDMETHOD(EndEnumTagged)(
THIS_ THIS_
__in ULONG64 Handle __in ULONG64 Handle
) PURE; ) PURE;
}; };
#define DEBUG_OFFSINFO_VIRTUAL_SOURCE 0x00000001 #define DEBUG_OFFSINFO_VIRTUAL_SOURCE 0x00000001
#define DEBUG_VSOURCE_INVALID 0x00000000 #define DEBUG_VSOURCE_INVALID 0x00000000
#define DEBUG_VSOURCE_DEBUGGEE 0x00000001 #define DEBUG_VSOURCE_DEBUGGEE 0x00000001
#define DEBUG_VSOURCE_MAPPED_IMAGE 0x00000002 #define DEBUG_VSOURCE_MAPPED_IMAGE 0x00000002
#define DEBUG_VSOURCE_DUMP_WITHOUT_MEMINFO 0x00000003
#define DEBUG_VSEARCH_DEFAULT 0x00000000 #define DEBUG_VSEARCH_DEFAULT 0x00000000
#define DEBUG_VSEARCH_WRITABLE_ONLY 0x00000001 #define DEBUG_VSEARCH_WRITABLE_ONLY 0x00000001
#define DEBUG_PHYSICAL_DEFAULT 0x00000000 #define DEBUG_PHYSICAL_DEFAULT 0x00000000
#define DEBUG_PHYSICAL_CACHED 0x00000001 #define DEBUG_PHYSICAL_CACHED 0x00000001
#define DEBUG_PHYSICAL_UNCACHED 0x00000002 #define DEBUG_PHYSICAL_UNCACHED 0x00000002
#define DEBUG_PHYSICAL_WRITE_COMBINED 0x00000003 #define DEBUG_PHYSICAL_WRITE_COMBINED 0x00000003
#undef INTERFACE #undef INTERFACE
skipping to change at line 10719 skipping to change at line 10865
// This method is only called if the supplied mask // This method is only called if the supplied mask
// is allowed by the clients output control. // is allowed by the clients output control.
// The return value is ignored. // The return value is ignored.
STDMETHOD(Output)( STDMETHOD(Output)(
THIS_ THIS_
__in ULONG Mask, __in ULONG Mask,
__in PCWSTR Text __in PCWSTR Text
) PURE; ) PURE;
}; };
//
// IDebugOutputCallbacks2 interest mask flags.
//
// Indicates that the callback wants notifications
// of all explicit flushes.
#define DEBUG_OUTCBI_EXPLICIT_FLUSH 0x00000001
// Indicates that the callback wants
// content in text form.
#define DEBUG_OUTCBI_TEXT 0x00000002
// Indicates that the callback wants
// content in markup form.
#define DEBUG_OUTCBI_DML 0x00000004
#define DEBUG_OUTCBI_ANY_FORMAT 0x00000006
//
// Different kinds of output callback notifications
// that can be sent to Output2.
//
// Plain text content, flags are below, argument is mask.
#define DEBUG_OUTCB_TEXT 0
// Debugger markup content, flags are below, argument is mask.
#define DEBUG_OUTCB_DML 1
// Notification of an explicit output flush, flags and argument are zero.
#define DEBUG_OUTCB_EXPLICIT_FLUSH 2
//
// Flags for various Output2 callbacks.
//
// The content string was followed by an
// explicit flush. This flag will be used
// instead of a separate DEBUG_OUTCB_EXPLICIT_FLUSH
// callback when a flush has text to flush,
// thus avoiding two callbacks.
#define DEBUG_OUTCBF_COMBINED_EXPLICIT_FLUSH 0x00000001
// The markup content string has embedded tags.
#define DEBUG_OUTCBF_DML_HAS_TAGS 0x00000002
// The markup content has encoded special characters like ", &, < and >.
#define DEBUG_OUTCBF_DML_HAS_SPECIAL_CHARACTERS 0x00000004
#undef INTERFACE
#define INTERFACE IDebugOutputCallbacks2
DECLARE_INTERFACE_(IDebugOutputCallbacks2, IUnknown)
{
// IUnknown.
STDMETHOD(QueryInterface)(
THIS_
__in REFIID InterfaceId,
__out PVOID* Interface
) PURE;
STDMETHOD_(ULONG, AddRef)(
THIS
) PURE;
STDMETHOD_(ULONG, Release)(
THIS
) PURE;
// IDebugOutputCallbacks.
// This method is not used.
STDMETHOD(Output)(
THIS_
__in ULONG Mask,
__in PCSTR Text
) PURE;
// IDebugOutputCallbacks2.
// The engine calls GetInterestMask once when
// the callbacks are set for a client.
STDMETHOD(GetInterestMask)(
THIS_
__out PULONG Mask
) PURE;
STDMETHOD(Output2)(
THIS_
__in ULONG Which,
__in ULONG Flags,
__in ULONG64 Arg,
__in_opt PCWSTR Text
) PURE;
};
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// //
// IDebugRegisters. // IDebugRegisters.
// //
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
#define DEBUG_REGISTERS_DEFAULT 0x00000000 #define DEBUG_REGISTERS_DEFAULT 0x00000000
#define DEBUG_REGISTERS_INT32 0x00000001 #define DEBUG_REGISTERS_INT32 0x00000001
#define DEBUG_REGISTERS_INT64 0x00000002 #define DEBUG_REGISTERS_INT64 0x00000002
#define DEBUG_REGISTERS_FLOAT 0x00000004 #define DEBUG_REGISTERS_FLOAT 0x00000004
skipping to change at line 11438 skipping to change at line 11672
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// //
// Information about a module. // Information about a module.
// //
// Flags. // Flags.
#define DEBUG_MODULE_LOADED 0x00000000 #define DEBUG_MODULE_LOADED 0x00000000
#define DEBUG_MODULE_UNLOADED 0x00000001 #define DEBUG_MODULE_UNLOADED 0x00000001
#define DEBUG_MODULE_USER_MODE 0x00000002 #define DEBUG_MODULE_USER_MODE 0x00000002
#define DEBUG_MODULE_EXE_MODULE 0x00000004
#define DEBUG_MODULE_EXPLICIT 0x00000008 #define DEBUG_MODULE_EXPLICIT 0x00000008
#define DEBUG_MODULE_SECONDARY 0x00000010 #define DEBUG_MODULE_SECONDARY 0x00000010
#define DEBUG_MODULE_SYNTHETIC 0x00000020 #define DEBUG_MODULE_SYNTHETIC 0x00000020
#define DEBUG_MODULE_SYM_BAD_CHECKSUM 0x00010000 #define DEBUG_MODULE_SYM_BAD_CHECKSUM 0x00010000
// Symbol types. // Symbol types.
#define DEBUG_SYMTYPE_NONE 0 #define DEBUG_SYMTYPE_NONE 0
#define DEBUG_SYMTYPE_COFF 1 #define DEBUG_SYMTYPE_COFF 1
#define DEBUG_SYMTYPE_CODEVIEW 2 #define DEBUG_SYMTYPE_CODEVIEW 2
#define DEBUG_SYMTYPE_PDB 3 #define DEBUG_SYMTYPE_PDB 3
skipping to change at line 11510 skipping to change at line 11745
#define DEBUG_FIND_SOURCE_NO_SRCSRV 0x00000004 #define DEBUG_FIND_SOURCE_NO_SRCSRV 0x00000004
// Restrict FindSourceFileAndToken to token lookup only. // Restrict FindSourceFileAndToken to token lookup only.
#define DEBUG_FIND_SOURCE_TOKEN_LOOKUP 0x00000008 #define DEBUG_FIND_SOURCE_TOKEN_LOOKUP 0x00000008
// A special value marking an offset that should not // A special value marking an offset that should not
// be treated as a valid offset. This is only used // be treated as a valid offset. This is only used
// in special situations where it is unlikely that // in special situations where it is unlikely that
// this value would be a valid offset. // this value would be a valid offset.
#define DEBUG_INVALID_OFFSET ((ULONG64)-1) #define DEBUG_INVALID_OFFSET ((ULONG64)-1)
// Module index sort order used by GetModuleByIndex() API.
#define MODULE_ORDERS_MASK 0xF0000000
#define MODULE_ORDERS_LOADTIME 0x10000000
#define MODULE_ORDERS_MODULENAME 0x20000000
#undef INTERFACE #undef INTERFACE
#define INTERFACE IDebugSymbols #define INTERFACE IDebugSymbols
DECLARE_INTERFACE_(IDebugSymbols, IUnknown) DECLARE_INTERFACE_(IDebugSymbols, IUnknown)
{ {
// IUnknown. // IUnknown.
STDMETHOD(QueryInterface)( STDMETHOD(QueryInterface)(
THIS_ THIS_
__in REFIID InterfaceId, __in REFIID InterfaceId,
__out PVOID* Interface __out PVOID* Interface
) PURE; ) PURE;
skipping to change at line 15115 skipping to change at line 15355
// //
// Extension callbacks. // Extension callbacks.
// //
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// Returns a version with the major version in // Returns a version with the major version in
// the high word and the minor version in the low word. // the high word and the minor version in the low word.
#define DEBUG_EXTENSION_VERSION(Major, Minor) \ #define DEBUG_EXTENSION_VERSION(Major, Minor) \
((((Major) & 0xffff) << 16) | ((Minor) & 0xffff)) ((((Major) & 0xffff) << 16) | ((Minor) & 0xffff))
//
// Descriptive flags returned from extension initialization.
//
// Extension has a !help command which can give
// per-command help.
#define DEBUG_EXTINIT_HAS_COMMAND_HELP 0x00000001
// Initialization routine. Called once when the extension DLL // Initialization routine. Called once when the extension DLL
// is loaded. Returns a version and returns flags detailing // is loaded. Returns a version and returns flags detailing
// overall qualities of the extension DLL. // overall qualities of the extension DLL.
// A session may or may not be active at the time the DLL // A session may or may not be active at the time the DLL
// is loaded so initialization routines should not expect // is loaded so initialization routines should not expect
// to be able to query session information. // to be able to query session information.
typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_INITIALIZE) typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_INITIALIZE)
(__out PULONG Version, __out PULONG Flags); (__out PULONG Version, __out PULONG Flags);
// Exit routine. Called once just before the extension DLL is // Exit routine. Called once just before the extension DLL is
// unloaded. As with initialization, a session may or // unloaded. As with initialization, a session may or
skipping to change at line 15146 skipping to change at line 15394
// The debuggee is running or inaccessible. // The debuggee is running or inaccessible.
#define DEBUG_NOTIFY_SESSION_INACCESSIBLE 0x00000003 #define DEBUG_NOTIFY_SESSION_INACCESSIBLE 0x00000003
typedef void (CALLBACK* PDEBUG_EXTENSION_NOTIFY) typedef void (CALLBACK* PDEBUG_EXTENSION_NOTIFY)
(__in ULONG Notify, __in ULONG64 Argument); (__in ULONG Notify, __in ULONG64 Argument);
// A PDEBUG_EXTENSION_CALL function can return this code // A PDEBUG_EXTENSION_CALL function can return this code
// to indicate that it was unable to handle the request // to indicate that it was unable to handle the request
// and that the search for an extension function should // and that the search for an extension function should
// continue down the extension DLL chain. // continue down the extension DLL chain.
// Taken from STATUS_VALIDATE_CONTINUE // Taken from STATUS_VALIDATE_CONTINUE.
#define DEBUG_EXTENSION_CONTINUE_SEARCH \ #define DEBUG_EXTENSION_CONTINUE_SEARCH \
HRESULT_FROM_NT(0xC0000271L) HRESULT_FROM_NT(0xC0000271L)
// A PDEBUG_EXTENSION_CALL function can return this code
// to indicate that the engine should unload and reload
// the extension binary. This allows extensions to implement
// auto-update functionality.
#define DEBUG_EXTENSION_RELOAD_EXTENSION \
HRESULT_FROM_NT(0xC00000EEL)
// Every routine in an extension DLL has the following prototype. // Every routine in an extension DLL has the following prototype.
// The extension may be called from multiple clients so it // The extension may be called from multiple clients so it
// should not cache the client value between calls. // should not cache the client value between calls.
typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_CALL) typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_CALL)
(__in PDEBUG_CLIENT Client, __in_opt PCSTR Args); (__in PDEBUG_CLIENT Client, __in_opt PCSTR Args);
//
// KnownStructOutput[Ex] flags
//
// Return names of supported structs.
#define DEBUG_KNOWN_STRUCT_GET_NAMES 1
// Return value output for type.
#define DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT 2
// Return S_OK if suppressing type name.
#define DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME 3
// Extensions may export this callback in order to dump structs that // Extensions may export this callback in order to dump structs that
// are well known to them. The engine calls this to inject extension // are well known to them. The engine calls this to inject extension
// output into dt's struct dump. // output into dt's struct dump.
typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_KNOWN_STRUCT) typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_KNOWN_STRUCT)
(__in ULONG Flags, (__in ULONG Flags,
__in ULONG64 Offset, __in ULONG64 Offset,
__in_opt PSTR TypeName, __in_opt PSTR TypeName,
__out_ecount_opt(*BufferChars) PSTR Buffer, __out_ecount_opt(*BufferChars) PSTR Buffer,
__inout_opt PULONG BufferChars); __inout_opt PULONG BufferChars);
typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_KNOWN_STRUCT_EX) typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_KNOWN_STRUCT_EX)
skipping to change at line 15178 skipping to change at line 15443
__in ULONG Flags, __in ULONG Flags,
__in ULONG64 Offset, __in ULONG64 Offset,
__in_opt PCSTR TypeName, __in_opt PCSTR TypeName,
__out_ecount_opt(*BufferChars) PSTR Buffer, __out_ecount_opt(*BufferChars) PSTR Buffer,
__inout_opt PULONG BufferChars); __inout_opt PULONG BufferChars);
// Backwards compatibility with old, incorrect name. // Backwards compatibility with old, incorrect name.
typedef PDEBUG_EXTENSION_KNOWN_STRUCT PDEBUG_ENTENSION_KNOWNSTRUCT; typedef PDEBUG_EXTENSION_KNOWN_STRUCT PDEBUG_ENTENSION_KNOWNSTRUCT;
// //
// KnownStructOutput[Ex] flags // Extensions can provide pseudo-register values that
// operate similiarly to the debugger's built-in $teb, etc.
// //
// Return names of supported structs. #define DEBUG_EXT_QVALUE_DEFAULT 0x00000000
#define DEBUG_KNOWN_STRUCT_GET_NAMES 1
// Return value output for type. typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_QUERY_VALUE_NAMES)
#define DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT 2 (__in PDEBUG_CLIENT Client,
// Return S_OK if suppressing type name. __in ULONG Flags,
#define DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME 3 __out_ecount(BufferChars) PWSTR Buffer,
__in ULONG BufferChars,
__out PULONG BufferNeeded);
#define DEBUG_EXT_PVALUE_DEFAULT 0x00000000
#define DEBUG_EXT_PVTYPE_IS_VALUE 0x00000000
#define DEBUG_EXT_PVTYPE_IS_POINTER 0x00000001
typedef HRESULT (CALLBACK* PDEBUG_EXTENSION_PROVIDE_VALUE)
(__in PDEBUG_CLIENT Client,
__in ULONG Flags,
__in PCWSTR Name,
__out PULONG64 Value,
__out PULONG64 TypeModBase,
__out PULONG TypeId,
__out PULONG TypeFlags);
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// //
// Extension functions. // Extension functions.
// //
// Extension functions differ from extension callbacks in that // Extension functions differ from extension callbacks in that
// they are arbitrary functions exported from an extension DLL // they are arbitrary functions exported from an extension DLL
// for other code callers instead of for human invocation from // for other code callers instead of for human invocation from
// debugger commands. Extension function pointers are retrieved // debugger commands. Extension function pointers are retrieved
// for an extension DLL with IDebugControl::GetExtensionFunction. // for an extension DLL with IDebugControl::GetExtensionFunction.
skipping to change at line 15686 skipping to change at line 15968
#define GetSpecificFilterArgumentT GetSpecificFilterArgumentWide #define GetSpecificFilterArgumentT GetSpecificFilterArgumentWide
#define SetSpecificFilterArgumentT SetSpecificFilterArgumentWide #define SetSpecificFilterArgumentT SetSpecificFilterArgumentWide
#define GetExceptionFilterSecondCommandT GetExceptionFilterSecondCommandWide #define GetExceptionFilterSecondCommandT GetExceptionFilterSecondCommandWide
#define SetExceptionFilterSecondCommandT SetExceptionFilterSecondCommandWide #define SetExceptionFilterSecondCommandT SetExceptionFilterSecondCommandWide
#define GetLastEventInformationT GetLastEventInformationWide #define GetLastEventInformationT GetLastEventInformationWide
#define GetTextReplacementT GetTextReplacementWide #define GetTextReplacementT GetTextReplacementWide
#define SetTextReplacementT SetTextReplacementWide #define SetTextReplacementT SetTextReplacementWide
#define SetExpressionSyntaxByNameT SetExpressionSyntaxByNameWide #define SetExpressionSyntaxByNameT SetExpressionSyntaxByNameWide
#define GetExpressionSyntaxNamesT GetExpressionSyntaxNamesWide #define GetExpressionSyntaxNamesT GetExpressionSyntaxNamesWide
#define GetEventIndexDescriptionT GetEventIndexDescriptionWide #define GetEventIndexDescriptionT GetEventIndexDescriptionWide
#define GetLogFile2T GetLogFileWide #define GetLogFile2T GetLogFile2Wide
#define OpenLogFile2T OpenLogFileWide #define OpenLogFile2T OpenLogFile2Wide
#define GetSystemVersionStringT GetSystemVersionStringWide #define GetSystemVersionStringT GetSystemVersionStringWide
#define ReadMultiByteStringVirtualT ReadMultiByteStringVirtualWide #define ReadMultiByteStringVirtualT ReadMultiByteStringVirtualWide
#define ReadUnicodeStringVirtualT ReadUnicodeStringVirtualWide #define ReadUnicodeStringVirtualT ReadUnicodeStringVirtualWide
#define GetDescriptionT GetDescriptionWide #define GetDescriptionT GetDescriptionWide
#define GetIndexByNameT GetIndexByNameWide #define GetIndexByNameT GetIndexByNameWide
#define GetPseudoDescriptionT GetPseudoDescriptionWide #define GetPseudoDescriptionT GetPseudoDescriptionWide
#define GetPseudoIndexByNameT GetPseudoIndexByNameWide #define GetPseudoIndexByNameT GetPseudoIndexByNameWide
#define AddSymbolT AddSymbolWide #define AddSymbolT AddSymbolWide
#define RemoveSymbolByNameT RemoveSymbolByNameWide #define RemoveSymbolByNameT RemoveSymbolByNameWide
#define GetSymbolNameT GetSymbolNameWide #define GetSymbolNameT GetSymbolNameWide
skipping to change at line 15819 skipping to change at line 16101
#define GetSpecificFilterArgumentT GetSpecificFilterArgument #define GetSpecificFilterArgumentT GetSpecificFilterArgument
#define SetSpecificFilterArgumentT SetSpecificFilterArgument #define SetSpecificFilterArgumentT SetSpecificFilterArgument
#define GetExceptionFilterSecondCommandT GetExceptionFilterSecondCommand #define GetExceptionFilterSecondCommandT GetExceptionFilterSecondCommand
#define SetExceptionFilterSecondCommandT SetExceptionFilterSecondCommand #define SetExceptionFilterSecondCommandT SetExceptionFilterSecondCommand
#define GetLastEventInformationT GetLastEventInformation #define GetLastEventInformationT GetLastEventInformation
#define GetTextReplacementT GetTextReplacement #define GetTextReplacementT GetTextReplacement
#define SetTextReplacementT SetTextReplacement #define SetTextReplacementT SetTextReplacement
#define SetExpressionSyntaxByNameT SetExpressionSyntaxByName #define SetExpressionSyntaxByNameT SetExpressionSyntaxByName
#define GetExpressionSyntaxNamesT GetExpressionSyntaxNames #define GetExpressionSyntaxNamesT GetExpressionSyntaxNames
#define GetEventIndexDescriptionT GetEventIndexDescription #define GetEventIndexDescriptionT GetEventIndexDescription
#define GetLogFile2T GetLogFile #define GetLogFile2T GetLogFile2
#define OpenLogFile2T OpenLogFile #define OpenLogFile2T OpenLogFile2
#define GetSystemVersionStringT GetSystemVersionString #define GetSystemVersionStringT GetSystemVersionString
#define ReadMultiByteStringVirtualT ReadMultiByteStringVirtual #define ReadMultiByteStringVirtualT ReadMultiByteStringVirtual
#define ReadUnicodeStringVirtualT ReadUnicodeStringVirtual #define ReadUnicodeStringVirtualT ReadUnicodeStringVirtual
#define GetDescriptionT GetDescription #define GetDescriptionT GetDescription
#define GetIndexByNameT GetIndexByName #define GetIndexByNameT GetIndexByName
#define GetPseudoDescriptionT GetPseudoDescription #define GetPseudoDescriptionT GetPseudoDescription
#define GetPseudoIndexByNameT GetPseudoIndexByName #define GetPseudoIndexByNameT GetPseudoIndexByName
#define AddSymbolT AddSymbol #define AddSymbolT AddSymbol
#define RemoveSymbolByNameT RemoveSymbolByName #define RemoveSymbolByNameT RemoveSymbolByName
#define GetSymbolNameT GetSymbolName #define GetSymbolNameT GetSymbolName
 End of changes. 33 change blocks. 
26 lines changed or deleted 309 lines changed or added

This html diff was produced by rfcdiff 1.41.