;--- include file created by h2incx v0.99.20 (copyright 2005-2009 japheth)
;--- source file: D:\Microsoft SDK\Include\DbgEng.h, last modified: 6/9/2001 1:27
;--- cmdline used for creation: -i -d3 -o ASM2 DbgEng.h

ifndef __DBGENG_H__
__DBGENG_H__	EQU	<>
	include stdarg.inc
	include objbase.inc

ifndef _WDBGEXTS_
PWINDBG_EXTENSION_APIS32 typedef ptr _WINDBG_EXTENSION_APIS32
PWINDBG_EXTENSION_APIS64 typedef ptr _WINDBG_EXTENSION_APIS64
endif 

ifndef _CRASHLIB_
PMEMORY_BASIC_INFORMATION64 typedef ptr MEMORY_BASIC_INFORMATION64
endif 

ifdef __cplusplus
;extern "C"
;{
endif 

DEFINE_GUID( IID_IDebugAdvanced , 0f2df5f53h , 071fh , 47bdh , 9dh , 0e6h , 57h , 34h , 0c3h , 0feh , 0d6h , 89h)
DEFINE_GUID( IID_IDebugAdvanced2 , 716d14c9h , 119bh , 4ba5h , 0afh , 1fh , 08h , 90h , 0e6h , 72h , 41h , 6ah)
DEFINE_GUID( IID_IDebugAdvanced3 , 0cba4abb4h , 84c4h , 444dh , 87h , 0cah , 0a0h , 4eh , 13h , 28h , 67h , 39h)
DEFINE_GUID( IID_IDebugBreakpoint , 5bd9d474h , 5975h , 423ah , 0b8h , 8bh , 65h , 0a8h , 0e7h , 11h , 0eh , 65h)
DEFINE_GUID( IID_IDebugBreakpoint2 , 1b278d20h , 79f2h , 426eh , 0a3h , 0f9h , 0c1h , 0ddh , 0f3h , 75h , 0d4h , 8eh)
DEFINE_GUID( IID_IDebugClient , 27fe5639h , 8407h , 4f47h , 83h , 64h , 0eeh , 11h , 8fh , 0b0h , 8ah , 0c8h)
DEFINE_GUID( IID_IDebugClient2 , 0edbed635h , 372eh , 4dabh , 0bbh , 0feh , 0edh , 0dh , 2fh , 63h , 0beh , 81h)
DEFINE_GUID( IID_IDebugClient3 , 0dd492d7fh , 71b8h , 4ad6h , 0a8h , 0dch , 1ch , 88h , 74h , 79h , 0ffh , 91h)
DEFINE_GUID( IID_IDebugClient4 , 0ca83c3deh , 5089h , 4cf8h , 93h , 0c8h , 0d8h , 92h , 38h , 7fh , 2ah , 5eh)
DEFINE_GUID( IID_IDebugClient5 , 0e3acb9d7h , 7ec2h , 4f0ch , 0a0h , 0dah , 0e8h , 1eh , 0ch , 0bbh , 0e6h , 28h)
DEFINE_GUID( IID_IDebugControl , 5182e668h , 105eh , 416eh , 0adh , 92h , 24h , 0efh , 80h , 04h , 24h , 0bah)
DEFINE_GUID( IID_IDebugControl2 , 0d4366723h , 44dfh , 4bedh , 8ch , 7eh , 4ch , 05h , 42h , 4fh , 45h , 88h)
DEFINE_GUID( IID_IDebugControl3 , 7df74a86h , 0b03fh , 407fh , 90h , 0abh , 0a2h , 0dh , 0adh , 0ceh , 0adh , 08h)
DEFINE_GUID( IID_IDebugControl4 , 94e60ce9h , 9b41h , 4b19h , 9fh , 0c0h , 6dh , 9eh , 0b3h , 52h , 72h , 0b3h)
DEFINE_GUID( IID_IDebugDataSpaces , 88f7dfabh , 3ea7h , 4c3ah , 0aeh , 0fbh , 0c4h , 0e8h , 10h , 61h , 73h , 0aah)
DEFINE_GUID( IID_IDebugDataSpaces2 , 7a5e852fh , 96e9h , 468fh , 0ach , 1bh , 0bh , 3ah , 0ddh , 0c4h , 0a0h , 49h)
DEFINE_GUID( IID_IDebugDataSpaces3 , 23f79d6ch , 8aafh , 4f7ch , 0a6h , 07h , 99h , 95h , 0f5h , 40h , 7eh , 63h)
DEFINE_GUID( IID_IDebugDataSpaces4 , 0d98ada1fh , 29e9h , 4ef5h , 0a6h , 0c0h , 0e5h , 33h , 49h , 88h , 32h , 12h)
DEFINE_GUID( IID_IDebugEventCallbacks , 337be28bh , 5036h , 4d72h , 0b6h , 0bfh , 0c4h , 5fh , 0bbh , 9fh , 2eh , 0aah)
DEFINE_GUID( IID_IDebugEventCallbacksWide , 0690e046h , 9c23h , 45ach , 0a0h , 4fh , 98h , 7ah , 0c2h , 9ah , 0d0h , 0d3h)
DEFINE_GUID( IID_IDebugInputCallbacks , 9f50e42ch , 0f136h , 499eh , 9ah , 97h , 73h , 03h , 6ch , 94h , 0edh , 2dh)
DEFINE_GUID( IID_IDebugOutputCallbacks , 4bf58045h , 0d654h , 4c40h , 0b0h , 0afh , 68h , 30h , 90h , 0f3h , 56h , 0dch)
DEFINE_GUID( IID_IDebugOutputCallbacksWide , 4c7fd663h , 0c394h , 4e26h , 8eh , 0f1h , 34h , 0adh , 5eh , 0d3h , 76h , 4ch)
DEFINE_GUID( IID_IDebugOutputCallbacks2 , 67721fe9h , 56d2h , 4a44h , 0a3h , 25h , 2bh , 65h , 51h , 3ch , 0e6h , 0ebh)
DEFINE_GUID( IID_IDebugRegisters , 0ce289126h , 9e84h , 45a7h , 93h , 7eh , 67h , 0bbh , 18h , 69h , 14h , 93h)
DEFINE_GUID( IID_IDebugRegisters2 , 1656afa9h , 19c6h , 4e3ah , 97h , 0e7h , 5dh , 0c9h , 16h , 0ch , 0f9h , 0c4h)
DEFINE_GUID( IID_IDebugSymbolGroup , 0f2528316h , 0f1ah , 4431h , 0aeh , 0edh , 11h , 0d0h , 96h , 0e1h , 0e2h , 0abh)
DEFINE_GUID( IID_IDebugSymbolGroup2 , 6a7ccc5fh , 0fb5eh , 4dcch , 0b4h , 1ch , 6ch , 20h , 30h , 7bh , 0cch , 0c7h)
DEFINE_GUID( IID_IDebugSymbols , 8c31e98ch , 983ah , 48a5h , 90h , 16h , 6fh , 0e5h , 0d6h , 67h , 0a9h , 50h)
DEFINE_GUID( IID_IDebugSymbols2 , 3a707211h , 0afddh , 4495h , 0adh , 4fh , 56h , 0feh , 0cdh , 0f8h , 16h , 3fh)
DEFINE_GUID( IID_IDebugSymbols3 , 0f02fbecch , 50ach , 4f36h , 9ah , 0d9h , 0c9h , 75h , 0e8h , 0f3h , 2fh , 0f8h)
DEFINE_GUID( IID_IDebugSystemObjects , 6b86fe2ch , 2c4fh , 4f0ch , 9dh , 0a2h , 17h , 43h , 11h , 0ach , 0c3h , 27h)
DEFINE_GUID( IID_IDebugSystemObjects2 , 0ae9f5ffh , 1852h , 4679h , 0b0h , 55h , 49h , 4bh , 0eeh , 64h , 07h , 0eeh)
DEFINE_GUID( IID_IDebugSystemObjects3 , 0e9676e2fh , 0e286h , 4ea3h , 0b0h , 0f9h , 0dfh , 0e5h , 0d9h , 0fch , 33h , 0eh)
DEFINE_GUID( IID_IDebugSystemObjects4 , 489468e6h , 7d0fh , 4af5h , 87h , 0abh , 25h , 20h , 74h , 54h , 0d5h , 53h)

PDEBUG_ADVANCED     typedef ptr IDebugAdvanced
PDEBUG_ADVANCED2    typedef ptr IDebugAdvanced2
PDEBUG_ADVANCED3    typedef ptr IDebugAdvanced3
PDEBUG_BREAKPOINT   typedef ptr IDebugBreakpoint
PDEBUG_BREAKPOINT2  typedef ptr IDebugBreakpoint2
PDEBUG_CLIENT       typedef ptr IDebugClient
PDEBUG_CLIENT2      typedef ptr IDebugClient2
PDEBUG_CLIENT3      typedef ptr IDebugClient3
PDEBUG_CLIENT4      typedef ptr IDebugClient4
PDEBUG_CLIENT5      typedef ptr IDebugClient5
PDEBUG_CONTROL      typedef ptr IDebugControl
PDEBUG_CONTROL2     typedef ptr IDebugControl2
PDEBUG_CONTROL3     typedef ptr IDebugControl3
PDEBUG_CONTROL4     typedef ptr IDebugControl4
PDEBUG_DATA_SPACES  typedef ptr IDebugDataSpaces
PDEBUG_DATA_SPACES2 typedef ptr IDebugDataSpaces2
PDEBUG_DATA_SPACES3 typedef ptr IDebugDataSpaces3
PDEBUG_DATA_SPACES4 typedef ptr IDebugDataSpaces4
PDEBUG_EVENT_CALLBACKS       typedef ptr IDebugEventCallbacks
PDEBUG_EVENT_CALLBACKS_WIDE  typedef ptr IDebugEventCallbacksWide
PDEBUG_INPUT_CALLBACKS       typedef ptr IDebugInputCallbacks
PDEBUG_OUTPUT_CALLBACKS      typedef ptr IDebugOutputCallbacks
PDEBUG_OUTPUT_CALLBACKS_WIDE typedef ptr IDebugOutputCallbacksWide
PDEBUG_OUTPUT_CALLBACKS2     typedef ptr IDebugOutputCallbacks2
PDEBUG_REGISTERS       typedef ptr IDebugRegisters
PDEBUG_REGISTERS2      typedef ptr IDebugRegisters2
PDEBUG_SYMBOL_GROUP    typedef ptr IDebugSymbolGroup
PDEBUG_SYMBOL_GROUP2   typedef ptr IDebugSymbolGroup2
PDEBUG_SYMBOLS         typedef ptr IDebugSymbols
PDEBUG_SYMBOLS2        typedef ptr IDebugSymbols2
PDEBUG_SYMBOLS3        typedef ptr IDebugSymbols3
PDEBUG_SYSTEM_OBJECTS  typedef ptr IDebugSystemObjects
PDEBUG_SYSTEM_OBJECTS2 typedef ptr IDebugSystemObjects2
PDEBUG_SYSTEM_OBJECTS3 typedef ptr IDebugSystemObjects3
PDEBUG_SYSTEM_OBJECTS4 typedef ptr IDebugSystemObjects4

DEBUG_EXTEND64 macro Addr
	exitm <Addr>
	endm

@DefProto DECLSPEC_IMPORT, DebugConnect, stdcall, , <:PCSTR, :REFIID, :ptr PVOID>, 12
@DefProto DECLSPEC_IMPORT, DebugCreate,  stdcall, , <:REFIID, :ptr PVOID>, 8

DEBUG_OFFSET_REGION	struct 
Base	ULONG64	?
Size_	ULONG64	?
DEBUG_OFFSET_REGION	ends

PDEBUG_OFFSET_REGION typedef ptr DEBUG_OFFSET_REGION

;#undef INTERFACE 
INTERFACE	EQU	<IDebugAdvanced>
DECLARE_INTERFACE_( IDebugAdvanced , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetThreadContext , :PVOID, :DWORD
STDMETHOD  SetThreadContext , :PVOID, :DWORD
;}
DECLARE_INTERFACE__END

DEBUG_CREATE_PROCESS_OPTIONS struct
CreateFlags    DWORD ?
EngCreateFlags DWORD ?
VerifierFlags  DWORD ?
Reserved       DWORD ?
DEBUG_CREATE_PROCESS_OPTIONS ends

DEBUG_BREAKPOINT_CODE	EQU	0
DEBUG_BREAKPOINT_DATA	EQU	1
DEBUG_BREAKPOINT_GO_ONLY	EQU	00000001h
DEBUG_BREAKPOINT_DEFERRED	EQU	00000002h
DEBUG_BREAKPOINT_ENABLED	EQU	00000004h
DEBUG_BREAKPOINT_ADDER_ONLY	EQU	00000008h
DEBUG_BREAKPOINT_ONE_SHOT	EQU	00000010h
DEBUG_BREAK_READ	EQU	00000001h
DEBUG_BREAK_WRITE	EQU	00000002h
DEBUG_BREAK_EXECUTE	EQU	00000004h
DEBUG_BREAK_IO	EQU	00000008h

DEBUG_BREAKPOINT_PARAMETERS	struct 
Offset_	ULONG64	?
Id	DWORD	?
BreakType	DWORD	?
ProcType	DWORD	?
Flags	DWORD	?
DataSize	DWORD	?
DataAccessType	DWORD	?
PassCount	DWORD	?
CurrentPassCount	DWORD	?
MatchThread	DWORD	?
CommandSize	DWORD	?
OffsetExpressionSize	DWORD	?
DEBUG_BREAKPOINT_PARAMETERS	ends

PDEBUG_BREAKPOINT_PARAMETERS typedef ptr DEBUG_BREAKPOINT_PARAMETERS

;#undef INTERFACE 
INTERFACE	EQU	<IDebugBreakpoint>
DECLARE_INTERFACE_( IDebugBreakpoint , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetId , :PULONG
STDMETHOD  GetType , :PULONG, :PULONG
STDMETHOD  GetAdder , :ptr PDEBUG_CLIENT
STDMETHOD  GetFlags , :PULONG
STDMETHOD  AddFlags , :DWORD
STDMETHOD  RemoveFlags , :DWORD
STDMETHOD  SetFlags , :DWORD
STDMETHOD  GetOffset , :PULONG64
STDMETHOD  SetOffset , :ULONG64
STDMETHOD  GetDataParameters , :PULONG, :PULONG
STDMETHOD  SetDataParameters , :DWORD, :DWORD
STDMETHOD  GetPassCount , :PULONG
STDMETHOD  SetPassCount , :DWORD
STDMETHOD  GetCurrentPassCount , :PULONG
STDMETHOD  GetMatchThreadId , :PULONG
STDMETHOD  SetMatchThreadId , :DWORD
STDMETHOD  GetCommand , :PSTR, :DWORD, :PULONG
STDMETHOD  SetCommand , :PCSTR
STDMETHOD  GetOffsetExpression , :PSTR, :DWORD, :PULONG
STDMETHOD  SetOffsetExpression , :PCSTR
STDMETHOD  GetParameters , :PDEBUG_BREAKPOINT_PARAMETERS
;}
DECLARE_INTERFACE__END

DEBUG_ATTACH_KERNEL_CONNECTION	EQU	00000000h
DEBUG_ATTACH_LOCAL_KERNEL	EQU	00000001h
DEBUG_ATTACH_EXDI_DRIVER	EQU	00000002h
DEBUG_GET_PROC_DEFAULT	EQU	00000000h
DEBUG_GET_PROC_FULL_MATCH	EQU	00000001h
DEBUG_GET_PROC_ONLY_MATCH	EQU	00000002h
DEBUG_PROC_DESC_DEFAULT	EQU	00000000h
DEBUG_PROC_DESC_NO_PATHS	EQU	00000001h
DEBUG_ATTACH_DEFAULT	EQU	00000000h
DEBUG_ATTACH_NONINVASIVE	EQU	00000001h
DEBUG_ATTACH_EXISTING	EQU	00000002h
DEBUG_CREATE_PROCESS_NO_DEBUG_HEAP	EQU	<CREATE_UNICODE_ENVIRONMENT>
DEBUG_PROCESS_DETACH_ON_EXIT	EQU	00000001h
DEBUG_PROCESS_ONLY_THIS_PROCESS	EQU	00000002h
DEBUG_CONNECT_SESSION_DEFAULT	EQU	00000000h
DEBUG_CONNECT_SESSION_NO_VERSION	EQU	00000001h
DEBUG_CONNECT_SESSION_NO_ANNOUNCE	EQU	00000002h
DEBUG_SERVERS_DEBUGGER	EQU	00000001h
DEBUG_SERVERS_PROCESS	EQU	00000002h
DEBUG_SERVERS_ALL	EQU	00000003h
DEBUG_END_PASSIVE	EQU	00000000h
DEBUG_END_ACTIVE_TERMINATE	EQU	00000001h
DEBUG_END_ACTIVE_DETACH	EQU	00000002h
DEBUG_END_REENTRANT	EQU	00000003h
DEBUG_OUTPUT_NORMAL	EQU	00000001h
DEBUG_OUTPUT_ERROR	EQU	00000002h
DEBUG_OUTPUT_WARNING	EQU	00000004h
DEBUG_OUTPUT_VERBOSE	EQU	00000008h
DEBUG_OUTPUT_PROMPT	EQU	00000010h
DEBUG_OUTPUT_PROMPT_REGISTERS	EQU	00000020h
DEBUG_OUTPUT_EXTENSION_WARNING	EQU	00000040h
DEBUG_OUTPUT_DEBUGGEE	EQU	00000080h
DEBUG_OUTPUT_DEBUGGEE_PROMPT	EQU	00000100h
DEBUG_IOUTPUT_KD_PROTOCOL	EQU	80000000h
DEBUG_IOUTPUT_REMOTING	EQU	40000000h
DEBUG_IOUTPUT_BREAKPOINT	EQU	20000000h
DEBUG_IOUTPUT_EVENT	EQU	10000000h
DEBUG_OUTPUT_IDENTITY_DEFAULT	EQU	00000000h
;#undef INTERFACE 
INTERFACE	EQU	<IDebugClient>
DECLARE_INTERFACE_( IDebugClient , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  AttachKernel , :DWORD, :PCSTR
STDMETHOD  GetKernelConnectionOptions , :PSTR, :DWORD, :PULONG
STDMETHOD  SetKernelConnectionOptions , :PCSTR
STDMETHOD  StartProcessServer , :DWORD, :PCSTR, :PVOID
STDMETHOD  ConnectProcessServer , :PCSTR, :PULONG64
STDMETHOD  DisconnectProcessServer , :ULONG64
STDMETHOD  GetRunningProcessSystemIds , :ULONG64, :PULONG, :DWORD, :PULONG
STDMETHOD  GetRunningProcessSystemIdByExecutableName , :ULONG64, :PCSTR, :DWORD, :PULONG
STDMETHOD  GetRunningProcessDescription , :ULONG64, :DWORD, :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  AttachProcess , :ULONG64, :DWORD, :DWORD
STDMETHOD  CreateProcess , :ULONG64, :PSTR, :DWORD
STDMETHOD  CreateProcessAndAttach , :ULONG64, :PSTR, :DWORD, :DWORD, :DWORD
STDMETHOD  GetProcessOptions , :PULONG
STDMETHOD  AddProcessOptions , :DWORD
STDMETHOD  RemoveProcessOptions , :DWORD
STDMETHOD  SetProcessOptions , :DWORD
STDMETHOD  OpenDumpFile , :PCSTR
STDMETHOD  WriteDumpFile , :PCSTR, :DWORD
STDMETHOD  ConnectSession , :DWORD, :DWORD
STDMETHOD  StartServer , :PCSTR
STDMETHOD  OutputServers , :DWORD, :PCSTR, :DWORD
STDMETHOD  TerminateProcesses 
STDMETHOD  DetachProcesses 
STDMETHOD  EndSession , :DWORD
STDMETHOD  GetExitCode , :PULONG
STDMETHOD  DispatchCallbacks , :DWORD
STDMETHOD  ExitDispatch , :PDEBUG_CLIENT
STDMETHOD  CreateClient , :ptr PDEBUG_CLIENT
STDMETHOD  GetInputCallbacks , :ptr PDEBUG_INPUT_CALLBACKS
STDMETHOD  SetInputCallbacks , :PDEBUG_INPUT_CALLBACKS
STDMETHOD  GetOutputCallbacks , :ptr PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  SetOutputCallbacks , :PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  GetOutputMask , :PULONG
STDMETHOD  SetOutputMask , :DWORD
STDMETHOD  GetOtherOutputMask , :PDEBUG_CLIENT, :PULONG
STDMETHOD  SetOtherOutputMask , :PDEBUG_CLIENT, :DWORD
STDMETHOD  GetOutputWidth , :PULONG
STDMETHOD  SetOutputWidth , :DWORD
STDMETHOD  GetOutputLinePrefix , :PSTR, :DWORD, :PULONG
STDMETHOD  SetOutputLinePrefix , :PCSTR
STDMETHOD  GetIdentity , :PSTR, :DWORD, :PULONG
STDMETHOD  OutputIdentity , :DWORD, :DWORD, :PCSTR
STDMETHOD  GetEventCallbacks , :ptr PDEBUG_EVENT_CALLBACKS
STDMETHOD  SetEventCallbacks , :PDEBUG_EVENT_CALLBACKS
STDMETHOD  FlushCallbacks 
;}
DECLARE_INTERFACE__END

DEBUG_FORMAT_DEFAULT	EQU	00000000h
DEBUG_FORMAT_USER_SMALL_FULL_MEMORY	EQU	00000001h
DEBUG_FORMAT_USER_SMALL_HANDLE_DATA	EQU	00000002h
DEBUG_DUMP_FILE_PAGE_FILE_DUMP	EQU	00000000h
;#undef INTERFACE 
INTERFACE	EQU	<IDebugClient2>
DECLARE_INTERFACE_( IDebugClient2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  AttachKernel , :DWORD, :PCSTR
STDMETHOD  GetKernelConnectionOptions , :PSTR, :DWORD, :PULONG
STDMETHOD  SetKernelConnectionOptions , :PCSTR
STDMETHOD  StartProcessServer , :DWORD, :PCSTR, :PVOID
STDMETHOD  ConnectProcessServer , :PCSTR, :PULONG64
STDMETHOD  DisconnectProcessServer , :ULONG64
STDMETHOD  GetRunningProcessSystemIds , :ULONG64, :PULONG, :DWORD, :PULONG
STDMETHOD  GetRunningProcessSystemIdByExecutableName , :ULONG64, :PCSTR, :DWORD, :PULONG
STDMETHOD  GetRunningProcessDescription , :ULONG64, :DWORD, :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  AttachProcess , :ULONG64, :DWORD, :DWORD
STDMETHOD  CreateProcess , :ULONG64, :PSTR, :DWORD
STDMETHOD  CreateProcessAndAttach , :ULONG64, :PSTR, :DWORD, :DWORD, :DWORD
STDMETHOD  GetProcessOptions , :PULONG
STDMETHOD  AddProcessOptions , :DWORD
STDMETHOD  RemoveProcessOptions , :DWORD
STDMETHOD  SetProcessOptions , :DWORD
STDMETHOD  OpenDumpFile , :PCSTR
STDMETHOD  WriteDumpFile , :PCSTR, :DWORD
STDMETHOD  ConnectSession , :DWORD, :DWORD
STDMETHOD  StartServer , :PCSTR
STDMETHOD  OutputServers , :DWORD, :PCSTR, :DWORD
STDMETHOD  TerminateProcesses 
STDMETHOD  DetachProcesses 
STDMETHOD  EndSession , :DWORD
STDMETHOD  GetExitCode , :PULONG
STDMETHOD  DispatchCallbacks , :DWORD
STDMETHOD  ExitDispatch , :PDEBUG_CLIENT
STDMETHOD  CreateClient , :ptr PDEBUG_CLIENT
STDMETHOD  GetInputCallbacks , :ptr PDEBUG_INPUT_CALLBACKS
STDMETHOD  SetInputCallbacks , :PDEBUG_INPUT_CALLBACKS
STDMETHOD  GetOutputCallbacks , :ptr PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  SetOutputCallbacks , :PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  GetOutputMask , :PULONG
STDMETHOD  SetOutputMask , :DWORD
STDMETHOD  GetOtherOutputMask , :PDEBUG_CLIENT, :PULONG
STDMETHOD  SetOtherOutputMask , :PDEBUG_CLIENT, :DWORD
STDMETHOD  GetOutputWidth , :PULONG
STDMETHOD  SetOutputWidth , :DWORD
STDMETHOD  GetOutputLinePrefix , :PSTR, :DWORD, :PULONG
STDMETHOD  SetOutputLinePrefix , :PCSTR
STDMETHOD  GetIdentity , :PSTR, :DWORD, :PULONG
STDMETHOD  OutputIdentity , :DWORD, :DWORD, :PCSTR
STDMETHOD  GetEventCallbacks , :ptr PDEBUG_EVENT_CALLBACKS
STDMETHOD  SetEventCallbacks , :PDEBUG_EVENT_CALLBACKS
STDMETHOD  FlushCallbacks 
STDMETHOD  WriteDumpFile2 , :PCSTR, :DWORD, :DWORD, :PCSTR
STDMETHOD  AddDumpInformationFile , :PCSTR, :DWORD
STDMETHOD  EndProcessServer , :ULONG64
STDMETHOD  WaitForProcessServerEnd , :DWORD
STDMETHOD  IsKernelDebuggerEnabled 
STDMETHOD  TerminateCurrentProcess 
STDMETHOD  DetachCurrentProcess 
STDMETHOD  AbandonCurrentProcess 
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugClient5>
DECLARE_INTERFACE_( IDebugClient5 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  AttachKernel , :DWORD, :PCSTR
STDMETHOD  GetKernelConnectionOptions , :PSTR, :DWORD, :PULONG
STDMETHOD  SetKernelConnectionOptions , :PCSTR
STDMETHOD  StartProcessServer , :DWORD, :PCSTR, :PVOID
STDMETHOD  ConnectProcessServer , :PCSTR, :PULONG64
STDMETHOD  DisconnectProcessServer , :ULONG64
STDMETHOD  GetRunningProcessSystemIds , :ULONG64, :PULONG, :DWORD, :PULONG
STDMETHOD  GetRunningProcessSystemIdByExecutableName , :ULONG64, :PCSTR, :DWORD, :PULONG
STDMETHOD  GetRunningProcessDescription , :ULONG64, :DWORD, :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  AttachProcess , :ULONG64, :DWORD, :DWORD
STDMETHOD  CreateProcess , :ULONG64, :PSTR, :DWORD
STDMETHOD  CreateProcessAndAttach , :ULONG64, :PSTR, :DWORD, :DWORD, :DWORD
STDMETHOD  GetProcessOptions , :PULONG
STDMETHOD  AddProcessOptions , :DWORD
STDMETHOD  RemoveProcessOptions , :DWORD
STDMETHOD  SetProcessOptions , :DWORD
STDMETHOD  OpenDumpFile , :PCSTR
STDMETHOD  WriteDumpFile , :PCSTR, :DWORD
STDMETHOD  ConnectSession , :DWORD, :DWORD
STDMETHOD  StartServer , :PCSTR
STDMETHOD  OutputServers , :DWORD, :PCSTR, :DWORD
STDMETHOD  TerminateProcesses 
STDMETHOD  DetachProcesses 
STDMETHOD  EndSession , :DWORD
STDMETHOD  GetExitCode , :PULONG
STDMETHOD  DispatchCallbacks , :DWORD
STDMETHOD  ExitDispatch , :PDEBUG_CLIENT
STDMETHOD  CreateClient , :ptr PDEBUG_CLIENT
STDMETHOD  GetInputCallbacks , :ptr PDEBUG_INPUT_CALLBACKS
STDMETHOD  SetInputCallbacks , :PDEBUG_INPUT_CALLBACKS
STDMETHOD  GetOutputCallbacks , :ptr PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  SetOutputCallbacks , :PDEBUG_OUTPUT_CALLBACKS
STDMETHOD  GetOutputMask , :PULONG
STDMETHOD  SetOutputMask , :DWORD
STDMETHOD  GetOtherOutputMask , :PDEBUG_CLIENT, :PULONG
STDMETHOD  SetOtherOutputMask , :PDEBUG_CLIENT, :DWORD
STDMETHOD  GetOutputWidth , :PULONG
STDMETHOD  SetOutputWidth , :DWORD
STDMETHOD  GetOutputLinePrefix , :PSTR, :DWORD, :PULONG
STDMETHOD  SetOutputLinePrefix , :PCSTR
STDMETHOD  GetIdentity , :PSTR, :DWORD, :PULONG
STDMETHOD  OutputIdentity , :DWORD, :DWORD, :PCSTR
STDMETHOD  GetEventCallbacks , :ptr PDEBUG_EVENT_CALLBACKS
STDMETHOD  SetEventCallbacks , :PDEBUG_EVENT_CALLBACKS
STDMETHOD  FlushCallbacks 
STDMETHOD  WriteDumpFile2 , :PCSTR, :DWORD, :DWORD, :PCSTR
STDMETHOD  AddDumpInformationFile , :PCSTR, :DWORD
STDMETHOD  EndProcessServer , :ULONG64
STDMETHOD  WaitForProcessServerEnd , :DWORD
STDMETHOD  IsKernelDebuggerEnabled 
STDMETHOD  TerminateCurrentProcess 
STDMETHOD  DetachCurrentProcess 
STDMETHOD  AbandonCurrentProcess 
STDMETHOD  GetRunningProcessSystemIdByExecutableNameWide , :ULONG64, :PCWSTR, :DWORD, :PULONG
STDMETHOD  GetRunningProcessDescriptionWide , :ULONG64, :DWORD, :DWORD, :PWSTR, :DWORD, :PULONG, :PWSTR, :DWORD, :PULONG
STDMETHOD  CreateProcessWide , :ULONG64, :PWSTR, :DWORD
STDMETHOD  CreateProcessAndAttachWide , :ULONG64, :PWSTR, :DWORD, :DWORD, :DWORD
STDMETHOD  OpenDumpFileWide , :PCWSTR, :ULONG64
STDMETHOD  WriteDumpFileWide , :PCWSTR, :ULONG64, :DWORD, :DWORD, :PCWSTR
STDMETHOD  AddDumpInformationFileWide , :PCWSTR, :ULONG64, :DWORD
STDMETHOD  GetNumberDumpFiles , :PULONG
STDMETHOD  GetDumpFile , :DWORD, :PSTR, :DWORD, :PULONG, :PULONG64, :PULONG
STDMETHOD  GetDumpFileWide , :DWORD, :PWSTR, :DWORD, :PULONG, :PULONG64, :PULONG
STDMETHOD  AttachKernelWide , :DWORD, :PCWSTR
STDMETHOD  GetKernelConnectionOptionsWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  SetKernelConnectionOptionsWide , :PCWSTR
STDMETHOD  StartProcessServerWide , :DWORD, :PCWSTR, :PVOID
STDMETHOD  ConnectProcessServerWide , :PCWSTR, :PULONG64
STDMETHOD  StartServerWide , :PCWSTR
STDMETHOD  OutputServersWide , :DWORD, :PCWSTR, :DWORD
STDMETHOD  GetOutputCallbacksWide , :ptr PDEBUG_OUTPUT_CALLBACKS_WIDE
STDMETHOD  SetOutputCallbacksWide , :PDEBUG_OUTPUT_CALLBACKS_WIDE
STDMETHOD  GetOutputLinePrefixWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  SetOutputLinePrefixWide , :PCWSTR
STDMETHOD  GetIdentityWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  OutputIdentityWide , :DWORD, :DWORD, :PCWSTR
STDMETHOD  GetEventCallbacksWide , :ptr PDEBUG_EVENT_CALLBACKS_WIDE
STDMETHOD  SetEventCallbacksWide , :PDEBUG_EVENT_CALLBACKS_WIDE
STDMETHOD  CreateProcess2 , :ULONG64, :PSTR, :PVOID, :DWORD, :PCSTR, :PCSTR
STDMETHOD  CreateProcess2Wide , :ULONG64, :PWSTR, :PVOID, :DWORD, :PCWSTR, :PCWSTR
STDMETHOD  CreateProcessAndAttach2 , :ULONG64, :PSTR, :PVOID, :DWORD, :PCSTR, :PCSTR, :DWORD, :DWORD
STDMETHOD  CreateProcessAndAttach2Wide , :ULONG64, :PWSTR, :PVOID, :DWORD, :PCWSTR, :PCWSTR, :DWORD, :DWORD
STDMETHOD  PushOutputLinePrefix , :PCSTR, :PULONG64
STDMETHOD  PushOutputLinePrefixWide , :PCWSTR, :PULONG64
STDMETHOD  PopOutputLinePrefix , :ULONG64
STDMETHOD  GetNumberInputCallbacks , :PULONG
STDMETHOD  GetNumberOutputCallbacks , :PULONG
STDMETHOD  GetNumberEventCallbacks , :DWORD, :PULONG
STDMETHOD  GetQuitLockString , :PSTR, :DWORD, :PULONG
STDMETHOD  SetQuitLockString , :PCSTR
STDMETHOD  GetQuitLockStringWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  SetQuitLockStringWide , :PCWSTR
;}
DECLARE_INTERFACE__END

DEBUG_STATUS_NO_CHANGE	EQU	0
DEBUG_STATUS_GO	EQU	1
DEBUG_STATUS_GO_HANDLED	EQU	2
DEBUG_STATUS_GO_NOT_HANDLED	EQU	3
DEBUG_STATUS_STEP_OVER	EQU	4
DEBUG_STATUS_STEP_INTO	EQU	5
DEBUG_STATUS_BREAK	EQU	6
DEBUG_STATUS_NO_DEBUGGEE	EQU	7
DEBUG_STATUS_STEP_BRANCH	EQU	8
DEBUG_STATUS_IGNORE_EVENT	EQU	9
DEBUG_STATUS_MASK	EQU	0fh
DEBUG_STATUS_INSIDE_WAIT	EQU	100000000h
DEBUG_OUTCTL_THIS_CLIENT	EQU	00000000h
DEBUG_OUTCTL_ALL_CLIENTS	EQU	00000001h
DEBUG_OUTCTL_ALL_OTHER_CLIENTS	EQU	00000002h
DEBUG_OUTCTL_IGNORE	EQU	00000003h
DEBUG_OUTCTL_LOG_ONLY	EQU	00000004h
DEBUG_OUTCTL_SEND_MASK	EQU	00000007h
DEBUG_OUTCTL_NOT_LOGGED	EQU	00000008h
DEBUG_OUTCTL_OVERRIDE_MASK	EQU	00000010h
DEBUG_OUTCTL_AMBIENT	EQU	0ffffffffh
DEBUG_INTERRUPT_ACTIVE	EQU	0
DEBUG_INTERRUPT_PASSIVE	EQU	1
DEBUG_INTERRUPT_EXIT	EQU	2
DEBUG_CURRENT_DEFAULT	EQU	0000000fh
DEBUG_CURRENT_SYMBOL	EQU	00000001h
DEBUG_CURRENT_DISASM	EQU	00000002h
DEBUG_CURRENT_REGISTERS	EQU	00000004h
DEBUG_CURRENT_SOURCE_LINE	EQU	00000008h
DEBUG_DISASM_EFFECTIVE_ADDRESS	EQU	00000001h
DEBUG_DISASM_MATCHING_SYMBOLS	EQU	00000002h
DEBUG_LEVEL_SOURCE	EQU	0
DEBUG_LEVEL_ASSEMBLY	EQU	1
DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION	EQU	00000001h
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS	EQU	00000002h
DEBUG_ENGOPT_ALLOW_NETWORK_PATHS	EQU	00000004h
DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS	EQU	00000008h
DEBUG_ENGOPT_NETWORK_PATHS	EQU	( 00000004h  or  00000008h )
DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS	EQU	00000010h
DEBUG_ENGOPT_INITIAL_BREAK	EQU	00000020h
DEBUG_ENGOPT_INITIAL_MODULE_BREAK	EQU	00000040h
DEBUG_ENGOPT_FINAL_BREAK	EQU	00000080h
DEBUG_ENGOPT_NO_EXECUTE_REPEAT	EQU	00000100h
DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION	EQU	00000200h
DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS	EQU	00000400h
DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS	EQU	00000800h
DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS	EQU	00001000h
DEBUG_ENGOPT_ALL	EQU	00001FFFh
DEBUG_ANY_ID	EQU	0ffffffffh
DEBUG_STACK_FRAME	struct 
InstructionOffset	ULONG64	?
ReturnOffset	ULONG64	?
FrameOffset	ULONG64	?
StackOffset	ULONG64	?
FuncTableEntry	ULONG64	?
Params	ULONG64 4 dup (?)
Reserved	ULONG64 6 dup (?)
Virtual	BOOL	?
FrameNumber	DWORD	?
DEBUG_STACK_FRAME	ends

PDEBUG_STACK_FRAME typedef ptr DEBUG_STACK_FRAME

DEBUG_STACK_ARGUMENTS	EQU	00000001h
DEBUG_STACK_FUNCTION_INFO	EQU	00000002h
DEBUG_STACK_SOURCE_LINE	EQU	00000004h
DEBUG_STACK_FRAME_ADDRESSES	EQU	00000008h
DEBUG_STACK_COLUMN_NAMES	EQU	00000010h
DEBUG_STACK_NONVOLATILE_REGISTERS	EQU	00000020h
DEBUG_STACK_FRAME_NUMBERS	EQU	00000040h
DEBUG_STACK_PARAMETERS	EQU	00000080h
DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY	EQU	00000100h
DEBUG_CLASS_UNINITIALIZED	EQU	0
DEBUG_CLASS_KERNEL	EQU	1
DEBUG_CLASS_USER_WINDOWS	EQU	2
DEBUG_DUMP_SMALL	EQU	1024
DEBUG_DUMP_DEFAULT	EQU	1025
DEBUG_DUMP_FULL	EQU	1026
DEBUG_KERNEL_CONNECTION	EQU	0
DEBUG_KERNEL_LOCAL	EQU	1
DEBUG_KERNEL_EXDI_DRIVER	EQU	2
DEBUG_KERNEL_SMALL_DUMP	EQU	<DEBUG_DUMP_SMALL>
DEBUG_KERNEL_DUMP	EQU	<DEBUG_DUMP_DEFAULT>
DEBUG_KERNEL_FULL_DUMP	EQU	<DEBUG_DUMP_FULL>
DEBUG_USER_WINDOWS_PROCESS	EQU	0
DEBUG_USER_WINDOWS_PROCESS_SERVER	EQU	1
DEBUG_USER_WINDOWS_SMALL_DUMP	EQU	<DEBUG_DUMP_SMALL>
DEBUG_USER_WINDOWS_DUMP	EQU	<DEBUG_DUMP_DEFAULT>
DEBUG_EXTENSION_AT_ENGINE	EQU	00000000h
DEBUG_EXECUTE_DEFAULT	EQU	00000000h
DEBUG_EXECUTE_ECHO	EQU	00000001h
DEBUG_EXECUTE_NOT_LOGGED	EQU	00000002h
DEBUG_EXECUTE_NO_REPEAT	EQU	00000004h
DEBUG_FILTER_CREATE_THREAD	EQU	00000000h
DEBUG_FILTER_EXIT_THREAD	EQU	00000001h
DEBUG_FILTER_CREATE_PROCESS	EQU	00000002h
DEBUG_FILTER_EXIT_PROCESS	EQU	00000003h
DEBUG_FILTER_LOAD_MODULE	EQU	00000004h
DEBUG_FILTER_UNLOAD_MODULE	EQU	00000005h
DEBUG_FILTER_SYSTEM_ERROR	EQU	00000006h
DEBUG_FILTER_INITIAL_BREAKPOINT	EQU	00000007h
DEBUG_FILTER_INITIAL_MODULE_LOAD	EQU	00000008h
DEBUG_FILTER_DEBUGGEE_OUTPUT	EQU	00000009h
DEBUG_FILTER_BREAK	EQU	00000000h
DEBUG_FILTER_SECOND_CHANCE_BREAK	EQU	00000001h
DEBUG_FILTER_OUTPUT	EQU	00000002h
DEBUG_FILTER_IGNORE	EQU	00000003h
DEBUG_FILTER_REMOVE	EQU	00000004h
DEBUG_FILTER_GO_HANDLED	EQU	00000000h
DEBUG_FILTER_GO_NOT_HANDLED	EQU	00000001h
DEBUG_SPECIFIC_FILTER_PARAMETERS	struct 
ExecutionOption	DWORD	?
ContinueOption	DWORD	?
TextSize	DWORD	?
CommandSize	DWORD	?
ArgumentSize	DWORD	?
DEBUG_SPECIFIC_FILTER_PARAMETERS	ends

PDEBUG_SPECIFIC_FILTER_PARAMETERS typedef ptr DEBUG_SPECIFIC_FILTER_PARAMETERS

DEBUG_EXCEPTION_FILTER_PARAMETERS	struct 
ExecutionOption	DWORD	?
ContinueOption	DWORD	?
TextSize	DWORD	?
CommandSize	DWORD	?
SecondCommandSize	DWORD	?
ExceptionCode	DWORD	?
DEBUG_EXCEPTION_FILTER_PARAMETERS	ends

PDEBUG_EXCEPTION_FILTER_PARAMETERS typedef ptr DEBUG_EXCEPTION_FILTER_PARAMETERS

DEBUG_WAIT_DEFAULT	EQU	00000000h
DEBUG_LAST_EVENT_INFO_BREAKPOINT	struct 
Id	DWORD	?
DEBUG_LAST_EVENT_INFO_BREAKPOINT	ends

PDEBUG_LAST_EVENT_INFO_BREAKPOINT typedef ptr DEBUG_LAST_EVENT_INFO_BREAKPOINT

DEBUG_LAST_EVENT_INFO_EXCEPTION	struct 
ExceptionRecord	EXCEPTION_RECORD64	<>
FirstChance	DWORD	?
DEBUG_LAST_EVENT_INFO_EXCEPTION	ends

PDEBUG_LAST_EVENT_INFO_EXCEPTION typedef ptr DEBUG_LAST_EVENT_INFO_EXCEPTION

DEBUG_LAST_EVENT_INFO_EXIT_THREAD	struct 
ExitCode	DWORD	?
DEBUG_LAST_EVENT_INFO_EXIT_THREAD	ends

PDEBUG_LAST_EVENT_INFO_EXIT_THREAD typedef ptr DEBUG_LAST_EVENT_INFO_EXIT_THREAD

DEBUG_LAST_EVENT_INFO_EXIT_PROCESS	struct 
ExitCode	DWORD	?
DEBUG_LAST_EVENT_INFO_EXIT_PROCESS	ends

PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS typedef ptr DEBUG_LAST_EVENT_INFO_EXIT_PROCESS

DEBUG_LAST_EVENT_INFO_LOAD_MODULE	struct 
Base	ULONG64	?
DEBUG_LAST_EVENT_INFO_LOAD_MODULE	ends

PDEBUG_LAST_EVENT_INFO_LOAD_MODULE typedef ptr DEBUG_LAST_EVENT_INFO_LOAD_MODULE

DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE	struct 
Base	ULONG64	?
DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE	ends

PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE typedef ptr DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE

DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR	struct 
Error	DWORD	?
Level	DWORD	?
DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR	ends

PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR typedef ptr DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR

DEBUG_VALUE_INVALID	EQU	0
DEBUG_VALUE_INT8	EQU	1
DEBUG_VALUE_INT16	EQU	2
DEBUG_VALUE_INT32	EQU	3
DEBUG_VALUE_INT64	EQU	4
DEBUG_VALUE_FLOAT32	EQU	5
DEBUG_VALUE_FLOAT64	EQU	6
DEBUG_VALUE_FLOAT80	EQU	7
DEBUG_VALUE_FLOAT82	EQU	8
DEBUG_VALUE_FLOAT128	EQU	9
DEBUG_VALUE_VECTOR64	EQU	10
DEBUG_VALUE_VECTOR128	EQU	11
DEBUG_VALUE_TYPES	EQU	12
ifndef defined
defined macro x
ifdef x
  exitm <-1>
else
  exitm <0>
endif
endm
endif
if defined(_MSC_VER)
if _MSC_VER ge 800
if _MSC_VER ge 1200
;#pragma warning ( push ) 
endif 
;#pragma warning ( disable : 4201 ) 
endif 
endif 
	include pshpack4.inc
DEBUG_VALUE	struct 
union
I8	BYTE	?
I16	WORD	?
I32	DWORD	?
struct
I64	ULONG64	?
Nat	BOOL	?
ends
F32	REAL4	?
F64	REAL8	?
F80Bytes	BYTE 10 dup (?)
F82Bytes	BYTE 11 dup (?)
F128Bytes	BYTE 16 dup (?)
VI8	BYTE 16 dup (?)
VI16	WORD 8 dup (?)
VI32	DWORD 4 dup (?)
VI64	ULONG64 2 dup (?)
VF32	REAL4 4 dup (?)
VF64	REAL8 2 dup (?)
struct I64Parts32
LowPart	DWORD	?
HighPart	DWORD	?
ends
struct F128Parts64
LowPart	ULONG64	?
HighPart	LONG64	?
ends
RawBytes	BYTE 28 dup (?)
ends
Type_	DWORD	?
DEBUG_VALUE	ends

PDEBUG_VALUE typedef ptr DEBUG_VALUE

	include poppack.inc
if defined(_MSC_VER)
if _MSC_VER ge 800
if _MSC_VER ge 1200
;#pragma warning ( pop ) 
else 
;#pragma warning ( disable : 4201 ) 
endif 
endif 
endif 
;#undef INTERFACE 
INTERFACE	EQU	<IDebugControl>
DECLARE_INTERFACE_( IDebugControl , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetInterrupt 
STDMETHOD  SetInterrupt , :DWORD
STDMETHOD  GetInterruptTimeout , :PULONG
STDMETHOD  SetInterruptTimeout , :DWORD
STDMETHOD  GetLogFile , :PSTR, :DWORD, :PULONG, :PBOOL
STDMETHOD  OpenLogFile , :PCSTR, :BOOL
STDMETHOD  CloseLogFile 
STDMETHOD  GetLogMask , :PULONG
STDMETHOD  SetLogMask , :DWORD
STDMETHOD  Input , :PSTR, :DWORD, :PULONG
STDMETHOD  ReturnInput , :PCSTR
STDMETHODV Output, :DWORD, :PCSTR
STDMETHOD  OutputVaList , :DWORD, :PCSTR, :va_list
STDMETHODV ControlledOutput, :DWORD, :DWORD, :PCSTR
STDMETHOD  ControlledOutputVaList , :DWORD, :DWORD, :PCSTR, :va_list
STDMETHODV OutputPrompt , :DWORD, :PCSTR
STDMETHOD  OutputPromptVaList , :DWORD, :PCSTR, :va_list
STDMETHOD  GetPromptText , :PSTR, :DWORD, :PULONG
STDMETHOD  OutputCurrentState , :DWORD, :DWORD
STDMETHOD  OutputVersionInformation , :DWORD
STDMETHOD  GetNotifyEventHandle , :PULONG64
STDMETHOD  SetNotifyEventHandle , :ULONG64
STDMETHOD  Assemble , :ULONG64, :PCSTR, :PULONG64
STDMETHOD  Disassemble , :ULONG64, :DWORD, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetDisassembleEffectiveOffset , :PULONG64
STDMETHOD  OutputDisassembly , :DWORD, :ULONG64, :DWORD, :PULONG64
STDMETHOD  OutputDisassemblyLines , :DWORD, :DWORD, :DWORD, :ULONG64, :DWORD, :PULONG, :PULONG64, :PULONG64, :PULONG64
STDMETHOD  GetNearInstruction , :ULONG64, :SDWORD, :PULONG64
STDMETHOD  GetStackTrace , :ULONG64, :ULONG64, :ULONG64, :PDEBUG_STACK_FRAME, :DWORD, :PULONG
STDMETHOD  GetReturnOffset , :PULONG64
STDMETHOD  OutputStackTrace , :DWORD, :PDEBUG_STACK_FRAME, :DWORD, :DWORD
STDMETHOD  GetDebuggeeType , :PULONG, :PULONG
STDMETHOD  GetActualProcessorType , :PULONG
STDMETHOD  GetExecutingProcessorType , :PULONG
STDMETHOD  GetNumberPossibleExecutingProcessorTypes , :PULONG
STDMETHOD  GetPossibleExecutingProcessorTypes , :DWORD, :DWORD, :PULONG
STDMETHOD  GetNumberProcessors , :PULONG
STDMETHOD  GetSystemVersion , :PULONG, :PULONG, :PULONG, :PSTR, :DWORD, :PULONG, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetPageSize , :PULONG
STDMETHOD  IsPointer64Bit 
STDMETHOD  ReadBugCheckData , :PULONG, :PULONG64, :PULONG64, :PULONG64, :PULONG64
STDMETHOD  GetNumberSupportedProcessorTypes , :PULONG
STDMETHOD  GetSupportedProcessorTypes , :DWORD, :DWORD, :PULONG
STDMETHOD  GetProcessorTypeNames , :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetEffectiveProcessorType , :PULONG
STDMETHOD  SetEffectiveProcessorType , :DWORD
STDMETHOD  GetExecutionStatus , :PULONG
STDMETHOD  SetExecutionStatus , :DWORD
STDMETHOD  GetCodeLevel , :PULONG
STDMETHOD  SetCodeLevel , :DWORD
STDMETHOD  GetEngineOptions , :PULONG
STDMETHOD  AddEngineOptions , :DWORD
STDMETHOD  RemoveEngineOptions , :DWORD
STDMETHOD  SetEngineOptions , :DWORD
STDMETHOD  GetSystemErrorControl , :PULONG, :PULONG
STDMETHOD  SetSystemErrorControl , :DWORD, :DWORD
STDMETHOD  GetTextMacro , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetTextMacro , :DWORD, :PCSTR
STDMETHOD  GetRadix , :PULONG
STDMETHOD  SetRadix , :DWORD
STDMETHOD  Evaluate , :PCSTR, :DWORD, :PDEBUG_VALUE, :PULONG
STDMETHOD  CoerceValue , :PDEBUG_VALUE, :DWORD, :PDEBUG_VALUE
STDMETHOD  CoerceValues , :DWORD, :PDEBUG_VALUE, :PULONG, :PDEBUG_VALUE
STDMETHOD  Execute , :DWORD, :PCSTR, :DWORD
STDMETHOD  ExecuteCommandFile , :DWORD, :PCSTR, :DWORD
STDMETHOD  GetNumberBreakpoints , :PULONG
STDMETHOD  GetBreakpointByIndex , :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  GetBreakpointById , :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  GetBreakpointParameters , :DWORD, :PULONG, :DWORD, :PDEBUG_BREAKPOINT_PARAMETERS
STDMETHOD  AddBreakpoint , :DWORD, :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  RemoveBreakpoint , :PDEBUG_BREAKPOINT
STDMETHOD  AddExtension , :PCSTR, :DWORD, :PULONG64
STDMETHOD  RemoveExtension , :ULONG64
STDMETHOD  GetExtensionByPath , :PCSTR, :PULONG64
STDMETHOD  CallExtension , :ULONG64, :PCSTR, :PCSTR
STDMETHOD  GetExtensionFunction , :ULONG64, :PCSTR, :ptr FARPROC
STDMETHOD  GetWindbgExtensionApis32 , :PWINDBG_EXTENSION_APIS32
STDMETHOD  GetWindbgExtensionApis64 , :PWINDBG_EXTENSION_APIS64
STDMETHOD  GetNumberEventFilters , :PULONG, :PULONG, :PULONG
STDMETHOD  GetEventFilterText , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetEventFilterCommand , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetEventFilterCommand , :DWORD, :PCSTR
STDMETHOD  GetSpecificFilterParameters , :DWORD, :DWORD, :PDEBUG_SPECIFIC_FILTER_PARAMETERS
STDMETHOD  SetSpecificFilterParameters , :DWORD, :DWORD, :PDEBUG_SPECIFIC_FILTER_PARAMETERS
STDMETHOD  GetSpecificFilterArgument , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetSpecificFilterArgument , :DWORD, :PCSTR
STDMETHOD  GetExceptionFilterParameters , :DWORD, :PULONG, :DWORD, :PDEBUG_EXCEPTION_FILTER_PARAMETERS
STDMETHOD  SetExceptionFilterParameters , :DWORD, :PDEBUG_EXCEPTION_FILTER_PARAMETERS
STDMETHOD  GetExceptionFilterSecondCommand , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetExceptionFilterSecondCommand , :DWORD, :PCSTR
STDMETHOD  WaitForEvent , :DWORD, :DWORD
STDMETHOD  GetLastEventInformation , :PULONG, :PULONG, :PULONG, :PVOID, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

DEBUG_OUT_TEXT_REPL_DEFAULT	EQU	00000000h
;#undef INTERFACE 
INTERFACE	EQU	<IDebugControl2>
DECLARE_INTERFACE_( IDebugControl2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetInterrupt 
STDMETHOD  SetInterrupt , :DWORD
STDMETHOD  GetInterruptTimeout , :PULONG
STDMETHOD  SetInterruptTimeout , :DWORD
STDMETHOD  GetLogFile , :PSTR, :DWORD, :PULONG, :PBOOL
STDMETHOD  OpenLogFile , :PCSTR, :BOOL
STDMETHOD  CloseLogFile 
STDMETHOD  GetLogMask , :PULONG
STDMETHOD  SetLogMask , :DWORD
STDMETHOD  Input , :PSTR, :DWORD, :PULONG
STDMETHOD  ReturnInput , :PCSTR
STDMETHODV Output, :DWORD, :PCSTR
STDMETHOD  OutputVaList , :DWORD, :PCSTR, :va_list
STDMETHODV ControlledOutput, :DWORD, :DWORD, :PCSTR
STDMETHOD  ControlledOutputVaList , :DWORD, :DWORD, :PCSTR, :va_list
STDMETHODV OutputPrompt , :DWORD, :PCSTR
STDMETHOD  OutputPromptVaList , :DWORD, :PCSTR, :va_list
STDMETHOD  GetPromptText , :PSTR, :DWORD, :PULONG
STDMETHOD  OutputCurrentState , :DWORD, :DWORD
STDMETHOD  OutputVersionInformation , :DWORD
STDMETHOD  GetNotifyEventHandle , :PULONG64
STDMETHOD  SetNotifyEventHandle , :ULONG64
STDMETHOD  Assemble , :ULONG64, :PCSTR, :PULONG64
STDMETHOD  Disassemble , :ULONG64, :DWORD, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetDisassembleEffectiveOffset , :PULONG64
STDMETHOD  OutputDisassembly , :DWORD, :ULONG64, :DWORD, :PULONG64
STDMETHOD  OutputDisassemblyLines , :DWORD, :DWORD, :DWORD, :ULONG64, :DWORD, :PULONG, :PULONG64, :PULONG64, :PULONG64
STDMETHOD  GetNearInstruction , :ULONG64, :SDWORD, :PULONG64
STDMETHOD  GetStackTrace , :ULONG64, :ULONG64, :ULONG64, :PDEBUG_STACK_FRAME, :DWORD, :PULONG
STDMETHOD  GetReturnOffset , :PULONG64
STDMETHOD  OutputStackTrace , :DWORD, :PDEBUG_STACK_FRAME, :DWORD, :DWORD
STDMETHOD  GetDebuggeeType , :PULONG, :PULONG
STDMETHOD  GetActualProcessorType , :PULONG
STDMETHOD  GetExecutingProcessorType , :PULONG
STDMETHOD  GetNumberPossibleExecutingProcessorTypes , :PULONG
STDMETHOD  GetPossibleExecutingProcessorTypes , :DWORD, :DWORD, :PULONG
STDMETHOD  GetNumberProcessors , :PULONG
STDMETHOD  GetSystemVersion , :PULONG, :PULONG, :PULONG, :PSTR, :DWORD, :PULONG, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetPageSize , :PULONG
STDMETHOD  IsPointer64Bit 
STDMETHOD  ReadBugCheckData , :PULONG, :PULONG64, :PULONG64, :PULONG64, :PULONG64
STDMETHOD  GetNumberSupportedProcessorTypes , :PULONG
STDMETHOD  GetSupportedProcessorTypes , :DWORD, :DWORD, :PULONG
STDMETHOD  GetProcessorTypeNames , :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetEffectiveProcessorType , :PULONG
STDMETHOD  SetEffectiveProcessorType , :DWORD
STDMETHOD  GetExecutionStatus , :PULONG
STDMETHOD  SetExecutionStatus , :DWORD
STDMETHOD  GetCodeLevel , :PULONG
STDMETHOD  SetCodeLevel , :DWORD
STDMETHOD  GetEngineOptions , :PULONG
STDMETHOD  AddEngineOptions , :DWORD
STDMETHOD  RemoveEngineOptions , :DWORD
STDMETHOD  SetEngineOptions , :DWORD
STDMETHOD  GetSystemErrorControl , :PULONG, :PULONG
STDMETHOD  SetSystemErrorControl , :DWORD, :DWORD
STDMETHOD  GetTextMacro , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetTextMacro , :DWORD, :PCSTR
STDMETHOD  GetRadix , :PULONG
STDMETHOD  SetRadix , :DWORD
STDMETHOD  Evaluate , :PCSTR, :DWORD, :PDEBUG_VALUE, :PULONG
STDMETHOD  CoerceValue , :PDEBUG_VALUE, :DWORD, :PDEBUG_VALUE
STDMETHOD  CoerceValues , :DWORD, :PDEBUG_VALUE, :PULONG, :PDEBUG_VALUE
STDMETHOD  Execute , :DWORD, :PCSTR, :DWORD
STDMETHOD  ExecuteCommandFile , :DWORD, :PCSTR, :DWORD
STDMETHOD  GetNumberBreakpoints , :PULONG
STDMETHOD  GetBreakpointByIndex , :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  GetBreakpointById , :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  GetBreakpointParameters , :DWORD, :PULONG, :DWORD, :PDEBUG_BREAKPOINT_PARAMETERS
STDMETHOD  AddBreakpoint , :DWORD, :DWORD, :ptr PDEBUG_BREAKPOINT
STDMETHOD  RemoveBreakpoint , :PDEBUG_BREAKPOINT
STDMETHOD  AddExtension , :PCSTR, :DWORD, :PULONG64
STDMETHOD  RemoveExtension , :ULONG64
STDMETHOD  GetExtensionByPath , :PCSTR, :PULONG64
STDMETHOD  CallExtension , :ULONG64, :PCSTR, :PCSTR
STDMETHOD  GetExtensionFunction , :ULONG64, :PCSTR, :ptr FARPROC
STDMETHOD  GetWindbgExtensionApis32 , :PWINDBG_EXTENSION_APIS32
STDMETHOD  GetWindbgExtensionApis64 , :PWINDBG_EXTENSION_APIS64
STDMETHOD  GetNumberEventFilters , :PULONG, :PULONG, :PULONG
STDMETHOD  GetEventFilterText , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetEventFilterCommand , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetEventFilterCommand , :DWORD, :PCSTR
STDMETHOD  GetSpecificFilterParameters , :DWORD, :DWORD, :PDEBUG_SPECIFIC_FILTER_PARAMETERS
STDMETHOD  SetSpecificFilterParameters , :DWORD, :DWORD, :PDEBUG_SPECIFIC_FILTER_PARAMETERS
STDMETHOD  GetSpecificFilterArgument , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetSpecificFilterArgument , :DWORD, :PCSTR
STDMETHOD  GetExceptionFilterParameters , :DWORD, :PULONG, :DWORD, :PDEBUG_EXCEPTION_FILTER_PARAMETERS
STDMETHOD  SetExceptionFilterParameters , :DWORD, :PDEBUG_EXCEPTION_FILTER_PARAMETERS
STDMETHOD  GetExceptionFilterSecondCommand , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetExceptionFilterSecondCommand , :DWORD, :PCSTR
STDMETHOD  WaitForEvent , :DWORD, :DWORD
STDMETHOD  GetLastEventInformation , :PULONG, :PULONG, :PULONG, :PVOID, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentTimeDate , :PULONG
STDMETHOD  GetCurrentSystemUpTime , :PULONG
STDMETHOD  GetDumpFormatFlags , :PULONG
STDMETHOD  GetNumberTextReplacements , :PULONG
STDMETHOD  GetTextReplacement , :PCSTR, :DWORD, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  SetTextReplacement , :PCSTR, :PCSTR
STDMETHOD  RemoveTextReplacements 
STDMETHOD  OutputTextReplacements , :DWORD, :DWORD
;}
DECLARE_INTERFACE__END

DEBUG_DATA_SPACE_VIRTUAL	EQU	0
DEBUG_DATA_SPACE_PHYSICAL	EQU	1
DEBUG_DATA_SPACE_CONTROL	EQU	2
DEBUG_DATA_SPACE_IO	EQU	3
DEBUG_DATA_SPACE_MSR	EQU	4
DEBUG_DATA_SPACE_BUS_DATA	EQU	5
DEBUG_DATA_SPACE_DEBUGGER_DATA	EQU	6
DEBUG_DATA_SPACE_COUNT	EQU	7
DEBUG_DATA_KernBase	EQU	24
DEBUG_DATA_BreakpointWithStatusAddr	EQU	32
DEBUG_DATA_SavedContextAddr	EQU	40
DEBUG_DATA_KiCallUserModeAddr	EQU	56
DEBUG_DATA_KeUserCallbackDispatcherAddr	EQU	64
DEBUG_DATA_PsLoadedModuleListAddr	EQU	72
DEBUG_DATA_PsActiveProcessHeadAddr	EQU	80
DEBUG_DATA_PspCidTableAddr	EQU	88
DEBUG_DATA_ExpSystemResourcesListAddr	EQU	96
DEBUG_DATA_ExpPagedPoolDescriptorAddr	EQU	104
DEBUG_DATA_ExpNumberOfPagedPoolsAddr	EQU	112
DEBUG_DATA_KeTimeIncrementAddr	EQU	120
DEBUG_DATA_KeBugCheckCallbackListHeadAddr	EQU	128
DEBUG_DATA_KiBugcheckDataAddr	EQU	136
DEBUG_DATA_IopErrorLogListHeadAddr	EQU	144
DEBUG_DATA_ObpRootDirectoryObjectAddr	EQU	152
DEBUG_DATA_ObpTypeObjectTypeAddr	EQU	160
DEBUG_DATA_MmSystemCacheStartAddr	EQU	168
DEBUG_DATA_MmSystemCacheEndAddr	EQU	176
DEBUG_DATA_MmSystemCacheWsAddr	EQU	184
DEBUG_DATA_MmPfnDatabaseAddr	EQU	192
DEBUG_DATA_MmSystemPtesStartAddr	EQU	200
DEBUG_DATA_MmSystemPtesEndAddr	EQU	208
DEBUG_DATA_MmSubsectionBaseAddr	EQU	216
DEBUG_DATA_MmNumberOfPagingFilesAddr	EQU	224
DEBUG_DATA_MmLowestPhysicalPageAddr	EQU	232
DEBUG_DATA_MmHighestPhysicalPageAddr	EQU	240
DEBUG_DATA_MmNumberOfPhysicalPagesAddr	EQU	248
DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr	EQU	256
DEBUG_DATA_MmNonPagedSystemStartAddr	EQU	264
DEBUG_DATA_MmNonPagedPoolStartAddr	EQU	272
DEBUG_DATA_MmNonPagedPoolEndAddr	EQU	280
DEBUG_DATA_MmPagedPoolStartAddr	EQU	288
DEBUG_DATA_MmPagedPoolEndAddr	EQU	296
DEBUG_DATA_MmPagedPoolInformationAddr	EQU	304
DEBUG_DATA_MmPageSize	EQU	312
DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr	EQU	320
DEBUG_DATA_MmTotalCommitLimitAddr	EQU	328
DEBUG_DATA_MmTotalCommittedPagesAddr	EQU	336
DEBUG_DATA_MmSharedCommitAddr	EQU	344
DEBUG_DATA_MmDriverCommitAddr	EQU	352
DEBUG_DATA_MmProcessCommitAddr	EQU	360
DEBUG_DATA_MmPagedPoolCommitAddr	EQU	368
DEBUG_DATA_MmExtendedCommitAddr	EQU	376
DEBUG_DATA_MmZeroedPageListHeadAddr	EQU	384
DEBUG_DATA_MmFreePageListHeadAddr	EQU	392
DEBUG_DATA_MmStandbyPageListHeadAddr	EQU	400
DEBUG_DATA_MmModifiedPageListHeadAddr	EQU	408
DEBUG_DATA_MmModifiedNoWritePageListHeadAddr	EQU	416
DEBUG_DATA_MmAvailablePagesAddr	EQU	424
DEBUG_DATA_MmResidentAvailablePagesAddr	EQU	432
DEBUG_DATA_PoolTrackTableAddr	EQU	440
DEBUG_DATA_NonPagedPoolDescriptorAddr	EQU	448
DEBUG_DATA_MmHighestUserAddressAddr	EQU	456
DEBUG_DATA_MmSystemRangeStartAddr	EQU	464
DEBUG_DATA_MmUserProbeAddressAddr	EQU	472
DEBUG_DATA_KdPrintCircularBufferAddr	EQU	480
DEBUG_DATA_KdPrintCircularBufferEndAddr	EQU	488
DEBUG_DATA_KdPrintWritePointerAddr	EQU	496
DEBUG_DATA_KdPrintRolloverCountAddr	EQU	504
DEBUG_DATA_MmLoadedUserImageListAddr	EQU	512
DEBUG_DATA_NtBuildLabAddr	EQU	520
DEBUG_DATA_KiNormalSystemCall	EQU	528
DEBUG_DATA_KiProcessorBlockAddr	EQU	536
DEBUG_DATA_MmUnloadedDriversAddr	EQU	544
DEBUG_DATA_MmLastUnloadedDriverAddr	EQU	552
DEBUG_DATA_MmTriageActionTakenAddr	EQU	560
DEBUG_DATA_MmSpecialPoolTagAddr	EQU	568
DEBUG_DATA_KernelVerifierAddr	EQU	576
DEBUG_DATA_MmVerifierDataAddr	EQU	584
DEBUG_DATA_MmAllocatedNonPagedPoolAddr	EQU	592
DEBUG_DATA_MmPeakCommitmentAddr	EQU	600
DEBUG_DATA_MmTotalCommitLimitMaximumAddr	EQU	608
DEBUG_DATA_CmNtCSDVersionAddr	EQU	616
DEBUG_DATA_MmPhysicalMemoryBlockAddr	EQU	624
DEBUG_DATA_PaeEnabled	EQU	100000
DEBUG_DATA_SharedUserData	EQU	100008
DEBUG_PROCESSOR_IDENTIFICATION_ALPHA	struct 
Type_	DWORD	?
Revision	DWORD	?
DEBUG_PROCESSOR_IDENTIFICATION_ALPHA	ends

PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA typedef ptr DEBUG_PROCESSOR_IDENTIFICATION_ALPHA

DEBUG_PROCESSOR_IDENTIFICATION_AMD64	struct 
Family	DWORD	?
Model	DWORD	?
Stepping	DWORD	?
VendorString	CHAR 16 dup (?)
DEBUG_PROCESSOR_IDENTIFICATION_AMD64	ends

PDEBUG_PROCESSOR_IDENTIFICATION_AMD64 typedef ptr DEBUG_PROCESSOR_IDENTIFICATION_AMD64

DEBUG_PROCESSOR_IDENTIFICATION_IA64	struct 
Model	DWORD	?
Revision	DWORD	?
Family	DWORD	?
ArchRev	DWORD	?
VendorString	CHAR 16 dup (?)
DEBUG_PROCESSOR_IDENTIFICATION_IA64	ends

PDEBUG_PROCESSOR_IDENTIFICATION_IA64 typedef ptr DEBUG_PROCESSOR_IDENTIFICATION_IA64

DEBUG_PROCESSOR_IDENTIFICATION_X86	struct 
Family	DWORD	?
Model	DWORD	?
Stepping	DWORD	?
VendorString	CHAR 16 dup (?)
DEBUG_PROCESSOR_IDENTIFICATION_X86	ends

PDEBUG_PROCESSOR_IDENTIFICATION_X86 typedef ptr DEBUG_PROCESSOR_IDENTIFICATION_X86

DEBUG_PROCESSOR_IDENTIFICATION_ALL	union 
Alpha	DEBUG_PROCESSOR_IDENTIFICATION_ALPHA	<>
Amd64	DEBUG_PROCESSOR_IDENTIFICATION_AMD64	<>
Ia64	DEBUG_PROCESSOR_IDENTIFICATION_IA64	<>
X86	DEBUG_PROCESSOR_IDENTIFICATION_X86	<>
DEBUG_PROCESSOR_IDENTIFICATION_ALL	ends

PDEBUG_PROCESSOR_IDENTIFICATION_ALL typedef ptr DEBUG_PROCESSOR_IDENTIFICATION_ALL

DEBUG_DATA_KPCR_OFFSET	EQU	0
DEBUG_DATA_KPRCB_OFFSET	EQU	1
DEBUG_DATA_KTHREAD_OFFSET	EQU	2
DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET	EQU	3
DEBUG_DATA_PROCESSOR_IDENTIFICATION	EQU	4
;#undef INTERFACE 
INTERFACE	EQU	<IDebugDataSpaces>
DECLARE_INTERFACE_( IDebugDataSpaces , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ReadVirtual , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteVirtual , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  SearchVirtual , :ULONG64, :ULONG64, :PVOID, :DWORD, :DWORD, :PULONG64
STDMETHOD  ReadVirtualUncached , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteVirtualUncached , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadPointersVirtual , :DWORD, :ULONG64, :PULONG64
STDMETHOD  WritePointersVirtual , :DWORD, :ULONG64, :PULONG64
STDMETHOD  ReadPhysical , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WritePhysical , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadControl , :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteControl , :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadIo , :DWORD, :DWORD, :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteIo , :DWORD, :DWORD, :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadMsr , :DWORD, :PULONG64
STDMETHOD  WriteMsr , :DWORD, :ULONG64
STDMETHOD  ReadBusData , :DWORD, :DWORD, :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteBusData , :DWORD, :DWORD, :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  CheckLowMemory 
STDMETHOD  ReadDebuggerData , :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadProcessorSystemData , :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

DEBUG_HANDLE_DATA_TYPE_BASIC	EQU	0
DEBUG_HANDLE_DATA_TYPE_TYPE_NAME	EQU	1
DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME	EQU	2
DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT	EQU	3
DEBUG_HANDLE_DATA_BASIC	struct 
TypeNameSize	DWORD	?
ObjectNameSize	DWORD	?
Attributes	DWORD	?
GrantedAccess	DWORD	?
HandleCount	DWORD	?
PointerCount	DWORD	?
DEBUG_HANDLE_DATA_BASIC	ends

PDEBUG_HANDLE_DATA_BASIC typedef ptr DEBUG_HANDLE_DATA_BASIC

;#undef INTERFACE 
INTERFACE	EQU	<IDebugDataSpaces2>
DECLARE_INTERFACE_( IDebugDataSpaces2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  ReadVirtual , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteVirtual , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  SearchVirtual , :ULONG64, :ULONG64, :PVOID, :DWORD, :DWORD, :PULONG64
STDMETHOD  ReadVirtualUncached , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteVirtualUncached , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadPointersVirtual , :DWORD, :ULONG64, :PULONG64
STDMETHOD  WritePointersVirtual , :DWORD, :ULONG64, :PULONG64
STDMETHOD  ReadPhysical , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WritePhysical , :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadControl , :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteControl , :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadIo , :DWORD, :DWORD, :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteIo , :DWORD, :DWORD, :DWORD, :ULONG64, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadMsr , :DWORD, :PULONG64
STDMETHOD  WriteMsr , :DWORD, :ULONG64
STDMETHOD  ReadBusData , :DWORD, :DWORD, :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteBusData , :DWORD, :DWORD, :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  CheckLowMemory 
STDMETHOD  ReadDebuggerData , :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  ReadProcessorSystemData , :DWORD, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  VirtualToPhysical , :ULONG64, :PULONG64
STDMETHOD  GetVirtualTranslationPhysicalOffsets , :ULONG64, :PULONG64, :DWORD, :PULONG
STDMETHOD  ReadHandleData , :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  FillVirtual , :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  FillPhysical , :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  QueryVirtual , :ULONG64, :PMEMORY_BASIC_INFORMATION64
;}
DECLARE_INTERFACE__END

DEBUG_EVENT_BREAKPOINT	EQU	00000001h
DEBUG_EVENT_EXCEPTION	EQU	00000002h
DEBUG_EVENT_CREATE_THREAD	EQU	00000004h
DEBUG_EVENT_EXIT_THREAD	EQU	00000008h
DEBUG_EVENT_CREATE_PROCESS	EQU	00000010h
DEBUG_EVENT_EXIT_PROCESS	EQU	00000020h
DEBUG_EVENT_LOAD_MODULE	EQU	00000040h
DEBUG_EVENT_UNLOAD_MODULE	EQU	00000080h
DEBUG_EVENT_SYSTEM_ERROR	EQU	00000100h
DEBUG_EVENT_SESSION_STATUS	EQU	00000200h
DEBUG_EVENT_CHANGE_DEBUGGEE_STATE	EQU	00000400h
DEBUG_EVENT_CHANGE_ENGINE_STATE	EQU	00000800h
DEBUG_EVENT_CHANGE_SYMBOL_STATE	EQU	00001000h
DEBUG_SESSION_ACTIVE	EQU	00000000h
DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE	EQU	00000001h
DEBUG_SESSION_END_SESSION_ACTIVE_DETACH	EQU	00000002h
DEBUG_SESSION_END_SESSION_PASSIVE	EQU	00000003h
DEBUG_SESSION_END	EQU	00000004h
DEBUG_SESSION_REBOOT	EQU	00000005h
DEBUG_SESSION_HIBERNATE	EQU	00000006h
DEBUG_SESSION_FAILURE	EQU	00000007h
DEBUG_CDS_ALL	EQU	0ffffffffh
DEBUG_CDS_REGISTERS	EQU	00000001h
DEBUG_CDS_DATA	EQU	00000002h

DEBUG_CES_ALL					EQU	0ffffffffh
DEBUG_CES_CURRENT_THREAD		EQU	00000001h
DEBUG_CES_EFFECTIVE_PROCESSOR	EQU	00000002h
DEBUG_CES_BREAKPOINTS			EQU	00000004h
DEBUG_CES_CODE_LEVEL			EQU	00000008h
DEBUG_CES_EXECUTION_STATUS		EQU	00000010h
DEBUG_CES_ENGINE_OPTIONS		EQU	00000020h
DEBUG_CES_LOG_FILE				EQU	00000040h
DEBUG_CES_RADIX					EQU	00000080h
DEBUG_CES_EVENT_FILTERS			EQU	00000100h
DEBUG_CES_PROCESS_OPTIONS		EQU	00000200h
DEBUG_CES_EXTENSIONS			EQU	00000400h
DEBUG_CES_SYSTEMS				EQU	00000800h
DEBUG_CES_ASSEMBLY_OPTIONS		EQU	00001000h
DEBUG_CES_EXPRESSION_SYNTAX		EQU	00002000h
DEBUG_CES_TEXT_REPLACEMENTS		EQU	00004000h

DEBUG_CSS_ALL				EQU	0ffffffffh
DEBUG_CSS_LOADS				EQU	00000001h
DEBUG_CSS_UNLOADS			EQU	00000002h
DEBUG_CSS_SCOPE				EQU	00000004h
DEBUG_CSS_PATHS				EQU	00000008h
DEBUG_CSS_SYMBOL_OPTIONS	EQU	00000010h
DEBUG_CSS_TYPE_OPTIONS		EQU	00000020h

;#undef INTERFACE 
INTERFACE	EQU	<IDebugEventCallbacks>
DECLARE_INTERFACE_( IDebugEventCallbacks , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetInterestMask , :PULONG
STDMETHOD  Breakpoint , :PDEBUG_BREAKPOINT
STDMETHOD  Exception , :PEXCEPTION_RECORD64, :DWORD
STDMETHOD  CreateThread_ , :ULONG64, :ULONG64, :ULONG64
STDMETHOD  ExitThread_ , :DWORD
STDMETHOD  CreateProcess , :ULONG64, :ULONG64, :ULONG64, :DWORD, :PCSTR, :PCSTR, :DWORD, :DWORD, :ULONG64, :ULONG64, :ULONG64
STDMETHOD  ExitProcess_ , :DWORD
STDMETHOD  LoadModule , :ULONG64, :ULONG64, :DWORD, :PCSTR, :PCSTR, :DWORD, :DWORD
STDMETHOD  UnloadModule , :PCSTR, :ULONG64
STDMETHOD  SystemError , :DWORD, :DWORD
STDMETHOD  SessionStatus , :DWORD
STDMETHOD  ChangeDebuggeeState , :DWORD, :ULONG64
STDMETHOD  ChangeEngineState , :DWORD, :ULONG64
STDMETHOD  ChangeSymbolState , :DWORD, :ULONG64
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugInputCallbacks>
DECLARE_INTERFACE_( IDebugInputCallbacks , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  StartInput , :DWORD
STDMETHOD  EndInput 
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugOutputCallbacks>
DECLARE_INTERFACE_( IDebugOutputCallbacks , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  Output , :DWORD, :PCSTR
;}
DECLARE_INTERFACE__END

DEBUG_REGISTER_SUB_REGISTER	EQU	00000001h
DEBUG_REGISTERS_DEFAULT	EQU	00000000h
DEBUG_REGISTERS_INT32	EQU	00000001h
DEBUG_REGISTERS_INT64	EQU	00000002h
DEBUG_REGISTERS_FLOAT	EQU	00000004h
DEBUG_REGISTERS_ALL	EQU	00000007h
DEBUG_REGISTER_DESCRIPTION	struct 
Type_	DWORD	?
Flags	DWORD	?
SubregMaster	DWORD	?
SubregLength	DWORD	?
SubregMask	ULONG64	?
SubregShift	DWORD	?
Reserved0	DWORD	?
DEBUG_REGISTER_DESCRIPTION	ends

PDEBUG_REGISTER_DESCRIPTION typedef ptr DEBUG_REGISTER_DESCRIPTION

;#undef INTERFACE 
INTERFACE	EQU	<IDebugRegisters>
DECLARE_INTERFACE_( IDebugRegisters , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetNumberRegisters , :PULONG
STDMETHOD  GetDescription , :DWORD, :PSTR, :DWORD, :PULONG, :PDEBUG_REGISTER_DESCRIPTION
STDMETHOD  GetIndexByName , :PCSTR, :PULONG
STDMETHOD  GetValue , :DWORD, :PDEBUG_VALUE
STDMETHOD  SetValue , :DWORD, :PDEBUG_VALUE
STDMETHOD  GetValues , :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  SetValues , :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  OutputRegisters , :DWORD, :DWORD
STDMETHOD  GetInstructionOffset , :PULONG64
STDMETHOD  GetStackOffset , :PULONG64
STDMETHOD  GetFrameOffset , :PULONG64
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugRegisters2>
DECLARE_INTERFACE_( IDebugRegisters2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetNumberRegisters , :PULONG
STDMETHOD  GetDescription , :DWORD, :PSTR, :DWORD, :PULONG, :PDEBUG_REGISTER_DESCRIPTION
STDMETHOD  GetIndexByName , :PCSTR, :PULONG
STDMETHOD  GetValue , :DWORD, :PDEBUG_VALUE
STDMETHOD  SetValue , :DWORD, :PDEBUG_VALUE
STDMETHOD  GetValues , :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  SetValues , :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  OutputRegisters , :DWORD, :DWORD
STDMETHOD  GetInstructionOffset , :PULONG64
STDMETHOD  GetStackOffset , :PULONG64
STDMETHOD  GetFrameOffset , :PULONG64
STDMETHOD  GetDescriptionWide , :DWORD, :PWSTR, :DWORD, :PULONG, :PDEBUG_REGISTER_DESCRIPTION
STDMETHOD  GetIndexByNameWide , :PCWSTR, :PULONG
STDMETHOD  GetNumberPseudoRegisters , :PULONG
STDMETHOD  GetPseudoDescription , :DWORD, :PSTR, :DWORD, :PULONG, :PULONG64, :PULONG
STDMETHOD  GetPseudoDescriptionWide , :DWORD, :PWSTR, :DWORD, :PULONG, :PULONG64, :PULONG
STDMETHOD  GetPseudoIndexByName , :PCSTR, :PULONG
STDMETHOD  GetPseudoIndexByNameWide , :PCWSTR, :PULONG
STDMETHOD  GetPseudoValues , :DWORD, :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  SetPseudoValues , :DWORD, :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  GetValues2 , :DWORD, :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  SetValues2 , :DWORD, :DWORD, :PULONG, :DWORD, :PDEBUG_VALUE
STDMETHOD  OutputRegisters2 , :DWORD, :DWORD, :DWORD
STDMETHOD  GetInstructionOffset2 , :DWORD, :PULONG64
STDMETHOD  GetStackOffset2 , :DWORD, :PULONG64
STDMETHOD  GetFrameOffset2 , :DWORD, :PULONG64
;}
DECLARE_INTERFACE__END

DEBUG_OUTPUT_SYMBOLS_DEFAULT	EQU	00000000h
DEBUG_OUTPUT_SYMBOLS_NO_NAMES	EQU	00000001h
DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS	EQU	00000002h
DEBUG_OUTPUT_SYMBOLS_NO_VALUES	EQU	00000004h
DEBUG_OUTPUT_SYMBOLS_NO_TYPES	EQU	00000010h
DEBUG_OUTPUT_NAME_END	EQU	<"**NAME**">
DEBUG_OUTPUT_OFFSET_END	EQU	<"**OFF**">
DEBUG_OUTPUT_VALUE_END	EQU	<"**VALUE**">
DEBUG_OUTPUT_TYPE_END	EQU	<"**TYPE**">
DEBUG_OUTPUT_NAME_END_WIDE	EQU	<L("**NAME**")>
DEBUG_OUTPUT_OFFSET_END_WIDE	EQU	<L("**OFF**")>
DEBUG_OUTPUT_VALUE_END_WIDE	EQU	<L("**VALUE**")>
DEBUG_OUTPUT_TYPE_END_WIDE	EQU	<L("**TYPE**")>
ifdef UNICODE
DEBUG_OUTPUT_NAME_END_T	EQU	<DEBUG_OUTPUT_NAME_END_WIDE>
DEBUG_OUTPUT_OFFSET_END_T	EQU	<DEBUG_OUTPUT_OFFSET_END_WIDE>
DEBUG_OUTPUT_VALUE_END_T	EQU	<DEBUG_OUTPUT_VALUE_END_WIDE>
DEBUG_OUTPUT_TYPE_END_T	EQU	<DEBUG_OUTPUT_TYPE_END_WIDE>
else 
DEBUG_OUTPUT_NAME_END_T	EQU	<DEBUG_OUTPUT_NAME_END>
DEBUG_OUTPUT_OFFSET_END_T	EQU	<DEBUG_OUTPUT_OFFSET_END>
DEBUG_OUTPUT_VALUE_END_T	EQU	<DEBUG_OUTPUT_VALUE_END>
DEBUG_OUTPUT_TYPE_END_T	EQU	<DEBUG_OUTPUT_TYPE_END>
endif 
DEBUG_SYMBOL_EXPANSION_LEVEL_MASK	EQU	0000000fh
DEBUG_SYMBOL_EXPANDED	EQU	00000010h
DEBUG_SYMBOL_READ_ONLY	EQU	00000020h
DEBUG_SYMBOL_IS_ARRAY	EQU	00000040h
DEBUG_SYMBOL_IS_FLOAT	EQU	00000080h
DEBUG_SYMBOL_IS_ARGUMENT	EQU	00000100h
DEBUG_SYMBOL_IS_LOCAL	EQU	00000200h

DEBUG_SYMBOL_PARAMETERS	struct 
Module	ULONG64	?
TypeId	DWORD	?
ParentSymbol	DWORD	?
SubElements	DWORD	?
Flags	DWORD	?
Reserved	ULONG64	?
DEBUG_SYMBOL_PARAMETERS	ends

PDEBUG_SYMBOL_PARAMETERS typedef ptr DEBUG_SYMBOL_PARAMETERS

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSymbolGroup>
DECLARE_INTERFACE_( IDebugSymbolGroup , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetNumberSymbols , :PULONG
STDMETHOD  AddSymbol , :PCSTR, :PULONG
STDMETHOD  RemoveSymbolByName , :PCSTR
STDMETHOD  RemoveSymbolByIndex , :DWORD
STDMETHOD  GetSymbolName , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolParameters , :DWORD, :DWORD, :PDEBUG_SYMBOL_PARAMETERS
STDMETHOD  ExpandSymbol , :DWORD, :BOOL
STDMETHOD  OutputSymbols , :DWORD, :DWORD, :DWORD, :DWORD
STDMETHOD  WriteSymbol , :DWORD, :PCSTR
STDMETHOD  OutputAsType , :DWORD, :PCSTR
;}
DECLARE_INTERFACE__END

DEBUG_SYMENT_IS_CODE	EQU	00000001h
DEBUG_SYMENT_IS_DATA	EQU	00000002h
DEBUG_SYMENT_IS_PARAMETER	EQU	00000004h
DEBUG_SYMENT_IS_LOCAL	EQU	00000008h
DEBUG_SYMENT_IS_MANAGED	EQU	00000010h
DEBUG_SYMENT_IS_SYNTHETIC	EQU	00000020h
DEBUG_SYMBOL_ENTRY	struct 
ModuleBase	ULONG64	?
Offset_	ULONG64	?
Id	ULONG64	?
Arg64	ULONG64	?
Size_	DWORD	?
Flags	DWORD	?
TypeId	DWORD	?
NameSize	DWORD	?
Token	DWORD	?
Tag	DWORD	?
Arg32	DWORD	?
Reserved	DWORD	?
DEBUG_SYMBOL_ENTRY	ends

PDEBUG_SYMBOL_ENTRY typedef ptr DEBUG_SYMBOL_ENTRY

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSymbolGroup2>
DECLARE_INTERFACE_( IDebugSymbolGroup2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetNumberSymbols , :PULONG
STDMETHOD  AddSymbol , :PCSTR, :PULONG
STDMETHOD  RemoveSymbolByName , :PCSTR
STDMETHOD  RemoveSymbolByIndex , :DWORD
STDMETHOD  GetSymbolName , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolParameters , :DWORD, :DWORD, :PDEBUG_SYMBOL_PARAMETERS
STDMETHOD  ExpandSymbol , :DWORD, :BOOL
STDMETHOD  OutputSymbols , :DWORD, :DWORD, :DWORD, :DWORD
STDMETHOD  WriteSymbol , :DWORD, :PCSTR
STDMETHOD  OutputAsType , :DWORD, :PCSTR
STDMETHOD  AddSymbolWide , :PCWSTR, :PULONG
STDMETHOD  RemoveSymbolByNameWide , :PCWSTR
STDMETHOD  GetSymbolNameWide , :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  WriteSymbolWide , :DWORD, :PCWSTR
STDMETHOD  OutputAsTypeWide , :DWORD, :PCWSTR
STDMETHOD  GetSymbolTypeName , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolTypeNameWide , :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolSize , :DWORD, :PULONG
STDMETHOD  GetSymbolOffset , :DWORD, :PULONG64
STDMETHOD  GetSymbolRegister , :DWORD, :PULONG
STDMETHOD  GetSymbolValueText , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolValueTextWide , :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolEntryInformation , :DWORD, :PDEBUG_SYMBOL_ENTRY
;}
DECLARE_INTERFACE__END

DEBUG_MODULE_LOADED	EQU	00000000h
DEBUG_MODULE_UNLOADED	EQU	00000001h
DEBUG_MODULE_USER_MODE	EQU	00000002h
DEBUG_MODULE_EXPLICIT	EQU	00000008h
DEBUG_MODULE_SECONDARY	EQU	00000010h
DEBUG_MODULE_SYNTHETIC	EQU	00000020h
DEBUG_MODULE_SYM_BAD_CHECKSUM	EQU	00010000h
DEBUG_SYMTYPE_NONE	EQU	0
DEBUG_SYMTYPE_COFF	EQU	1
DEBUG_SYMTYPE_CODEVIEW	EQU	2
DEBUG_SYMTYPE_PDB	EQU	3
DEBUG_SYMTYPE_EXPORT	EQU	4
DEBUG_SYMTYPE_DEFERRED	EQU	5
DEBUG_SYMTYPE_SYM	EQU	6
DEBUG_SYMTYPE_DIA	EQU	7

DEBUG_MODULE_PARAMETERS	struct 
Base	ULONG64	?
Size_	DWORD	?
TimeDateStamp	DWORD	?
Checksum	DWORD	?
Flags	DWORD	?
SymbolType	DWORD	?
ImageNameSize	DWORD	?
ModuleNameSize	DWORD	?
LoadedImageNameSize	DWORD	?
SymbolFileNameSize	DWORD	?
MappedImageNameSize	DWORD	?
Reserved	ULONG64 2 dup (?)
DEBUG_MODULE_PARAMETERS	ends

PDEBUG_MODULE_PARAMETERS typedef ptr DEBUG_MODULE_PARAMETERS

DEBUG_SCOPE_GROUP_ARGUMENTS	EQU	00000001h
DEBUG_SCOPE_GROUP_LOCALS	EQU	00000002h
DEBUG_SCOPE_GROUP_ALL	EQU	00000003h
DEBUG_OUTTYPE_DEFAULT	EQU	00000000h
DEBUG_OUTTYPE_NO_INDENT	EQU	00000001h
DEBUG_OUTTYPE_NO_OFFSET	EQU	00000002h
DEBUG_OUTTYPE_VERBOSE	EQU	00000004h
DEBUG_OUTTYPE_COMPACT_OUTPUT	EQU	00000008h
DEBUG_OUTTYPE_RECURSION_LEVEL macro Max
	exitm <( ( ( Max )  and  0fh )  shl  4 ) >
	endm
DEBUG_OUTTYPE_ADDRESS_OF_FIELD	EQU	00010000h
DEBUG_OUTTYPE_ADDRESS_AT_END	EQU	00020000h
DEBUG_OUTTYPE_BLOCK_RECURSE	EQU	00200000h
DEBUG_FIND_SOURCE_DEFAULT	EQU	00000000h
DEBUG_FIND_SOURCE_FULL_PATH	EQU	00000001h
DEBUG_FIND_SOURCE_BEST_MATCH	EQU	00000002h
DEBUG_INVALID_OFFSET	EQU	( ( ULONG64 ) - 1 )
;#undef INTERFACE 
INTERFACE	EQU	<IDebugSymbols>
DECLARE_INTERFACE_( IDebugSymbols , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetSymbolOptions , :PULONG
STDMETHOD  AddSymbolOptions , :DWORD
STDMETHOD  RemoveSymbolOptions , :DWORD
STDMETHOD  SetSymbolOptions , :DWORD
STDMETHOD  GetNameByOffset , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByName , :PCSTR, :PULONG64
STDMETHOD  GetNearNameByOffset , :ULONG64, :SDWORD, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetLineByOffset , :ULONG64, :PULONG, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByLine , :DWORD, :PCSTR, :PULONG64
STDMETHOD  GetNumberModules , :PULONG, :PULONG
STDMETHOD  GetModuleByIndex , :DWORD, :PULONG64
STDMETHOD  GetModuleByModuleName , :PCSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleByOffset , :ULONG64, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleNames , :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetModuleParameters , :DWORD, :PULONG64, :DWORD, :PDEBUG_MODULE_PARAMETERS
STDMETHOD  GetSymbolModule , :PCSTR, :PULONG64
STDMETHOD  GetTypeName , :ULONG64, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetTypeId , :ULONG64, :PCSTR, :PULONG
STDMETHOD  GetTypeSize , :ULONG64, :DWORD, :PULONG
STDMETHOD  GetFieldOffset , :ULONG64, :DWORD, :PCSTR, :PULONG
STDMETHOD  GetSymbolTypeId , :PCSTR, :PULONG, :PULONG64
STDMETHOD  GetOffsetTypeId , :ULONG64, :PULONG, :PULONG64
STDMETHOD  ReadTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataVirtual , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  ReadTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataPhysical , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  GetScope , :PULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  SetScope , :ULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  ResetScope 
STDMETHOD  GetScopeSymbolGroup , :DWORD, :PDEBUG_SYMBOL_GROUP, :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  CreateSymbolGroup , :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  StartSymbolMatch , :PCSTR, :PULONG64
STDMETHOD  GetNextSymbolMatch , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  EndSymbolMatch , :ULONG64
STDMETHOD  Reload , :PCSTR
STDMETHOD  GetSymbolPath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetSymbolPath , :PCSTR
STDMETHOD  AppendSymbolPath , :PCSTR
STDMETHOD  GetImagePath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetImagePath , :PCSTR
STDMETHOD  AppendImagePath , :PCSTR
STDMETHOD  GetSourcePath , :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourcePathElement , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetSourcePath , :PCSTR
STDMETHOD  AppendSourcePath , :PCSTR
STDMETHOD  FindSourceFile , :DWORD, :PCSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourceFileLineOffsets , :PCSTR, :PULONG64, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

DEBUG_MODNAME_IMAGE	EQU	00000000h
DEBUG_MODNAME_MODULE	EQU	00000001h
DEBUG_MODNAME_LOADED_IMAGE	EQU	00000002h
DEBUG_MODNAME_SYMBOL_FILE	EQU	00000003h
DEBUG_MODNAME_MAPPED_IMAGE	EQU	00000004h
DEBUG_TYPEOPTS_UNICODE_DISPLAY	EQU	00000001h
;#undef INTERFACE 
INTERFACE	EQU	<IDebugSymbols2>
DECLARE_INTERFACE_( IDebugSymbols2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetSymbolOptions , :PULONG
STDMETHOD  AddSymbolOptions , :DWORD
STDMETHOD  RemoveSymbolOptions , :DWORD
STDMETHOD  SetSymbolOptions , :DWORD
STDMETHOD  GetNameByOffset , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByName , :PCSTR, :PULONG64
STDMETHOD  GetNearNameByOffset , :ULONG64, :SDWORD, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetLineByOffset , :ULONG64, :PULONG, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByLine , :DWORD, :PCSTR, :PULONG64
STDMETHOD  GetNumberModules , :PULONG, :PULONG
STDMETHOD  GetModuleByIndex , :DWORD, :PULONG64
STDMETHOD  GetModuleByModuleName , :PCSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleByOffset , :ULONG64, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleNames , :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetModuleParameters , :DWORD, :PULONG64, :DWORD, :PDEBUG_MODULE_PARAMETERS
STDMETHOD  GetSymbolModule , :PCSTR, :PULONG64
STDMETHOD  GetTypeName , :ULONG64, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetTypeId , :ULONG64, :PCSTR, :PULONG
STDMETHOD  GetTypeSize , :ULONG64, :DWORD, :PULONG
STDMETHOD  GetFieldOffset , :ULONG64, :DWORD, :PCSTR, :PULONG
STDMETHOD  GetSymbolTypeId , :PCSTR, :PULONG, :PULONG64
STDMETHOD  GetOffsetTypeId , :ULONG64, :PULONG, :PULONG64
STDMETHOD  ReadTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataVirtual , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  ReadTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataPhysical , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  GetScope , :PULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  SetScope , :ULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  ResetScope 
STDMETHOD  GetScopeSymbolGroup , :DWORD, :PDEBUG_SYMBOL_GROUP, :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  CreateSymbolGroup , :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  StartSymbolMatch , :PCSTR, :PULONG64
STDMETHOD  GetNextSymbolMatch , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  EndSymbolMatch , :ULONG64
STDMETHOD  Reload , :PCSTR
STDMETHOD  GetSymbolPath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetSymbolPath , :PCSTR
STDMETHOD  AppendSymbolPath , :PCSTR
STDMETHOD  GetImagePath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetImagePath , :PCSTR
STDMETHOD  AppendImagePath , :PCSTR
STDMETHOD  GetSourcePath , :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourcePathElement , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetSourcePath , :PCSTR
STDMETHOD  AppendSourcePath , :PCSTR
STDMETHOD  FindSourceFile , :DWORD, :PCSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourceFileLineOffsets , :PCSTR, :PULONG64, :DWORD, :PULONG
STDMETHOD  GetModuleVersionInformation , :DWORD, :ULONG64, :PCSTR, :PVOID, :DWORD, :PULONG
STDMETHOD  GetModuleNameString , :DWORD, :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG
STDMETHOD  GetConstantName , :ULONG64, :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG
STDMETHOD  GetFieldName , :ULONG64, :DWORD, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetTypeOptions , :PULONG
STDMETHOD  AddTypeOptions , :DWORD
STDMETHOD  RemoveTypeOptions , :DWORD
STDMETHOD  SetTypeOptions , :DWORD
;}
DECLARE_INTERFACE__END

DEBUG_GETMOD_DEFAULT	EQU	00000000h
DEBUG_GETMOD_NO_LOADED_MODULES	EQU	00000001h
DEBUG_GETMOD_NO_UNLOADED_MODULES	EQU	00000002h
DEBUG_ADDSYNTHMOD_DEFAULT	EQU	00000000h
DEBUG_ADDSYNTHSYM_DEFAULT	EQU	00000000h
DEBUG_OUTSYM_DEFAULT	EQU	00000000h
DEBUG_OUTSYM_FORCE_OFFSET	EQU	00000001h
DEBUG_OUTSYM_SOURCE_LINE	EQU	00000002h
DEBUG_OUTSYM_ALLOW_DISPLACEMENT	EQU	00000004h
DEBUG_GETFNENT_DEFAULT	EQU	00000000h
DEBUG_GETFNENT_RAW_ENTRY_ONLY	EQU	00000001h

DEBUG_MODULE_AND_ID	struct 
ModuleBase	ULONG64	?
Id	ULONG64	?
DEBUG_MODULE_AND_ID	ends

PDEBUG_MODULE_AND_ID typedef ptr DEBUG_MODULE_AND_ID

DEBUG_SOURCE_IS_STATEMENT	EQU	00000001h
DEBUG_GSEL_DEFAULT	EQU	00000000h
DEBUG_GSEL_NO_SYMBOL_LOADS	EQU	00000001h
DEBUG_GSEL_ALLOW_LOWER	EQU	00000002h
DEBUG_GSEL_ALLOW_HIGHER	EQU	00000004h
DEBUG_GSEL_NEAREST_ONLY	EQU	00000008h

DEBUG_SYMBOL_SOURCE_ENTRY	struct 
ModuleBase	ULONG64	?
Offset_	ULONG64	?
FileNameId	ULONG64	?
EngineInternal	ULONG64	?
Size_	DWORD	?
Flags	DWORD	?
FileNameSize	DWORD	?
StartLine	DWORD	?
EndLine	DWORD	?
StartColumn	DWORD	?
EndColumn	DWORD	?
Reserved	DWORD	?
DEBUG_SYMBOL_SOURCE_ENTRY	ends

PDEBUG_SYMBOL_SOURCE_ENTRY typedef ptr DEBUG_SYMBOL_SOURCE_ENTRY

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSymbols3>
DECLARE_INTERFACE_( IDebugSymbols3 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetSymbolOptions , :PULONG
STDMETHOD  AddSymbolOptions , :DWORD
STDMETHOD  RemoveSymbolOptions , :DWORD
STDMETHOD  SetSymbolOptions , :DWORD
STDMETHOD  GetNameByOffset , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByName , :PCSTR, :PULONG64
STDMETHOD  GetNearNameByOffset , :ULONG64, :SDWORD, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetLineByOffset , :ULONG64, :PULONG, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByLine , :DWORD, :PCSTR, :PULONG64
STDMETHOD  GetNumberModules , :PULONG, :PULONG
STDMETHOD  GetModuleByIndex , :DWORD, :PULONG64
STDMETHOD  GetModuleByModuleName , :PCSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleByOffset , :ULONG64, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleNames , :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetModuleParameters , :DWORD, :PULONG64, :DWORD, :PDEBUG_MODULE_PARAMETERS
STDMETHOD  GetSymbolModule , :PCSTR, :PULONG64
STDMETHOD  GetTypeName , :ULONG64, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetTypeId , :ULONG64, :PCSTR, :PULONG
STDMETHOD  GetTypeSize , :ULONG64, :DWORD, :PULONG
STDMETHOD  GetFieldOffset , :ULONG64, :DWORD, :PCSTR, :PULONG
STDMETHOD  GetSymbolTypeId , :PCSTR, :PULONG, :PULONG64
STDMETHOD  GetOffsetTypeId , :ULONG64, :PULONG, :PULONG64
STDMETHOD  ReadTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataVirtual , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataVirtual , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  ReadTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  WriteTypedDataPhysical , :ULONG64, :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  OutputTypedDataPhysical , :DWORD, :ULONG64, :ULONG64, :DWORD, :DWORD
STDMETHOD  GetScope , :PULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  SetScope , :ULONG64, :PDEBUG_STACK_FRAME, :PVOID, :DWORD
STDMETHOD  ResetScope 
STDMETHOD  GetScopeSymbolGroup , :DWORD, :PDEBUG_SYMBOL_GROUP, :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  CreateSymbolGroup , :ptr PDEBUG_SYMBOL_GROUP
STDMETHOD  StartSymbolMatch , :PCSTR, :PULONG64
STDMETHOD  GetNextSymbolMatch , :ULONG64, :PSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  EndSymbolMatch , :ULONG64
STDMETHOD  Reload , :PCSTR
STDMETHOD  GetSymbolPath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetSymbolPath , :PCSTR
STDMETHOD  AppendSymbolPath , :PCSTR
STDMETHOD  GetImagePath , :PSTR, :DWORD, :PULONG
STDMETHOD  SetImagePath , :PCSTR
STDMETHOD  AppendImagePath , :PCSTR
STDMETHOD  GetSourcePath , :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourcePathElement , :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  SetSourcePath , :PCSTR
STDMETHOD  AppendSourcePath , :PCSTR
STDMETHOD  FindSourceFile , :DWORD, :PCSTR, :DWORD, :PULONG, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourceFileLineOffsets , :PCSTR, :PULONG64, :DWORD, :PULONG
STDMETHOD  GetModuleVersionInformation , :DWORD, :ULONG64, :PCSTR, :PVOID, :DWORD, :PULONG
STDMETHOD  GetModuleNameString , :DWORD, :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG
STDMETHOD  GetConstantName , :ULONG64, :DWORD, :ULONG64, :PSTR, :DWORD, :PULONG
STDMETHOD  GetFieldName , :ULONG64, :DWORD, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetTypeOptions , :PULONG
STDMETHOD  AddTypeOptions , :DWORD
STDMETHOD  RemoveTypeOptions , :DWORD
STDMETHOD  SetTypeOptions , :DWORD
STDMETHOD  GetNameByOffsetWide , :ULONG64, :PWSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByNameWide , :PCWSTR, :PULONG64
STDMETHOD  GetNearNameByOffsetWide , :ULONG64, :SDWORD, :PWSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetLineByOffsetWide , :ULONG64, :PULONG, :PWSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetOffsetByLineWide , :DWORD, :PCWSTR, :PULONG64
STDMETHOD  GetModuleByModuleNameWide , :PCWSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetSymbolModuleWide , :PCWSTR, :PULONG64
STDMETHOD  GetTypeNameWide , :ULONG64, :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetTypeIdWide , :ULONG64, :PCWSTR, :PULONG
STDMETHOD  GetFieldOffsetWide , :ULONG64, :DWORD, :PCWSTR, :PULONG
STDMETHOD  GetSymbolTypeIdWide , :PCWSTR, :PULONG, :PULONG64
STDMETHOD  GetScopeSymbolGroup2 , :DWORD, :PDEBUG_SYMBOL_GROUP2, :ptr PDEBUG_SYMBOL_GROUP2
STDMETHOD  CreateSymbolGroup2 , :ptr PDEBUG_SYMBOL_GROUP2
STDMETHOD  StartSymbolMatchWide , :PCWSTR, :PULONG64
STDMETHOD  GetNextSymbolMatchWide , :ULONG64, :PWSTR, :DWORD, :PULONG, :PULONG64
STDMETHOD  ReloadWide , :PCWSTR
STDMETHOD  GetSymbolPathWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  SetSymbolPathWide , :PCWSTR
STDMETHOD  AppendSymbolPathWide , :PCWSTR
STDMETHOD  GetImagePathWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  SetImagePathWide , :PCWSTR
STDMETHOD  AppendImagePathWide , :PCWSTR
STDMETHOD  GetSourcePathWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSourcePathElementWide , :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  SetSourcePathWide , :PCWSTR
STDMETHOD  AppendSourcePathWide , :PCWSTR
STDMETHOD  FindSourceFileWide , :DWORD, :PCWSTR, :DWORD, :PULONG, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSourceFileLineOffsetsWide , :PCWSTR, :PULONG64, :DWORD, :PULONG
STDMETHOD  GetModuleVersionInformationWide , :DWORD, :ULONG64, :PCWSTR, :PVOID, :DWORD, :PULONG
STDMETHOD  GetModuleNameStringWide , :DWORD, :DWORD, :ULONG64, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetConstantNameWide , :ULONG64, :DWORD, :ULONG64, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetFieldNameWide , :ULONG64, :DWORD, :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  IsManagedModule , :DWORD, :ULONG64
STDMETHOD  GetModuleByModuleName2 , :PCSTR, :DWORD, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleByModuleName2Wide , :PCWSTR, :DWORD, :DWORD, :PULONG, :PULONG64
STDMETHOD  GetModuleByOffset2 , :ULONG64, :DWORD, :DWORD, :PULONG, :PULONG64
STDMETHOD  AddSyntheticModule , :ULONG64, :DWORD, :PCSTR, :PCSTR, :DWORD
STDMETHOD  AddSyntheticModuleWide , :ULONG64, :DWORD, :PCWSTR, :PCWSTR, :DWORD
STDMETHOD  RemoveSyntheticModule , :ULONG64
STDMETHOD  GetCurrentScopeFrameIndex , :PULONG
STDMETHOD  SetScopeFrameByIndex , :DWORD
STDMETHOD  SetScopeFromJitDebugInfo , :DWORD, :ULONG64
STDMETHOD  SetScopeFromStoredEvent 
STDMETHOD  OutputSymbolByOffset , :DWORD, :DWORD, :ULONG64
STDMETHOD  GetFunctionEntryByOffset , :ULONG64, :DWORD, :PVOID, :DWORD, :PULONG
STDMETHOD  GetFieldTypeAndOffset , :ULONG64, :DWORD, :PCSTR, :PULONG, :PULONG
STDMETHOD  GetFieldTypeAndOffsetWide , :ULONG64, :DWORD, :PCWSTR, :PULONG, :PULONG
STDMETHOD  AddSyntheticSymbol , :ULONG64, :DWORD, :PCSTR, :DWORD, :PDEBUG_MODULE_AND_ID
STDMETHOD  AddSyntheticSymbolWide , :ULONG64, :DWORD, :PCWSTR, :DWORD, :PDEBUG_MODULE_AND_ID
STDMETHOD  RemoveSyntheticSymbol , :PDEBUG_MODULE_AND_ID
STDMETHOD  GetSymbolEntriesByOffset , :ULONG64, :DWORD, :PDEBUG_MODULE_AND_ID, :PULONG64, :DWORD, :PULONG
STDMETHOD  GetSymbolEntriesByName , :PCSTR, :DWORD, :PDEBUG_MODULE_AND_ID, :DWORD, :PULONG
STDMETHOD  GetSymbolEntriesByNameWide , :PCWSTR, :DWORD, :PDEBUG_MODULE_AND_ID, :DWORD, :PULONG
STDMETHOD  GetSymbolEntryByToken , :ULONG64, :DWORD, :PDEBUG_MODULE_AND_ID
STDMETHOD  GetSymbolEntryInformation , :PDEBUG_MODULE_AND_ID, :PDEBUG_SYMBOL_ENTRY
STDMETHOD  GetSymbolEntryString , :PDEBUG_MODULE_AND_ID, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolEntryStringWide , :PDEBUG_MODULE_AND_ID, :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSymbolEntryOffsetRegions , :PDEBUG_MODULE_AND_ID, :DWORD, :PDEBUG_OFFSET_REGION, :DWORD, :PULONG
STDMETHOD  GetSymbolEntryBySymbolEntry , :PDEBUG_MODULE_AND_ID, :DWORD, :PDEBUG_MODULE_AND_ID
STDMETHOD  GetSourceEntriesByOffset , :ULONG64, :DWORD, :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PULONG
STDMETHOD  GetSourceEntriesByLine , :DWORD, :PCSTR, :DWORD, :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PULONG
STDMETHOD  GetSourceEntriesByLineWide , :DWORD, :PCWSTR, :DWORD, :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PULONG
STDMETHOD  GetSourceEntryString , :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PSTR, :DWORD, :PULONG
STDMETHOD  GetSourceEntryStringWide , :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PWSTR, :DWORD, :PULONG
STDMETHOD  GetSourceEntryOffsetRegions , :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PDEBUG_OFFSET_REGION, :DWORD, :PULONG
STDMETHOD  GetSourceEntryBySourceEntry , :PDEBUG_SYMBOL_SOURCE_ENTRY, :DWORD, :PDEBUG_SYMBOL_SOURCE_ENTRY
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSystemObjects>
DECLARE_INTERFACE_( IDebugSystemObjects , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetEventThread , :PULONG
STDMETHOD  GetEventProcess , :PULONG
STDMETHOD  GetCurrentThreadId , :PULONG
STDMETHOD  SetCurrentThreadId , :DWORD
STDMETHOD  GetCurrentProcessId , :PULONG
STDMETHOD  SetCurrentProcessId , :DWORD
STDMETHOD  GetNumberThreads , :PULONG
STDMETHOD  GetTotalNumberThreads , :PULONG, :PULONG
STDMETHOD  GetThreadIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetThreadIdByProcessor , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadDataOffset , :PULONG64
STDMETHOD  GetThreadIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadTeb , :PULONG64
STDMETHOD  GetThreadIdByTeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadSystemId , :PULONG
STDMETHOD  GetThreadIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadHandle , :PULONG64
STDMETHOD  GetThreadIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetNumberProcesses , :PULONG
STDMETHOD  GetProcessIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetCurrentProcessDataOffset , :PULONG64
STDMETHOD  GetProcessIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessPeb , :PULONG64
STDMETHOD  GetProcessIdByPeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessSystemId , :PULONG
STDMETHOD  GetProcessIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentProcessHandle , :PULONG64
STDMETHOD  GetProcessIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessExecutableName , :PSTR, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSystemObjects2>
DECLARE_INTERFACE_( IDebugSystemObjects2 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetEventThread , :PULONG
STDMETHOD  GetEventProcess , :PULONG
STDMETHOD  GetCurrentThreadId , :PULONG
STDMETHOD  SetCurrentThreadId , :DWORD
STDMETHOD  GetCurrentProcessId , :PULONG
STDMETHOD  SetCurrentProcessId , :DWORD
STDMETHOD  GetNumberThreads , :PULONG
STDMETHOD  GetTotalNumberThreads , :PULONG, :PULONG
STDMETHOD  GetThreadIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetThreadIdByProcessor , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadDataOffset , :PULONG64
STDMETHOD  GetThreadIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadTeb , :PULONG64
STDMETHOD  GetThreadIdByTeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadSystemId , :PULONG
STDMETHOD  GetThreadIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadHandle , :PULONG64
STDMETHOD  GetThreadIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetNumberProcesses , :PULONG
STDMETHOD  GetProcessIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetCurrentProcessDataOffset , :PULONG64
STDMETHOD  GetProcessIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessPeb , :PULONG64
STDMETHOD  GetProcessIdByPeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessSystemId , :PULONG
STDMETHOD  GetProcessIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentProcessHandle , :PULONG64
STDMETHOD  GetProcessIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessExecutableName , :PSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentProcessUpTime , :PULONG
STDMETHOD  GetImplicitThreadDataOffset , :PULONG64
STDMETHOD  SetImplicitThreadDataOffset , :ULONG64
STDMETHOD  GetImplicitProcessDataOffset , :PULONG64
STDMETHOD  SetImplicitProcessDataOffset , :ULONG64
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSystemObjects3>
DECLARE_INTERFACE_( IDebugSystemObjects3 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetEventThread , :PULONG
STDMETHOD  GetEventProcess , :PULONG
STDMETHOD  GetCurrentThreadId , :PULONG
STDMETHOD  SetCurrentThreadId , :DWORD
STDMETHOD  GetCurrentProcessId , :PULONG
STDMETHOD  SetCurrentProcessId , :DWORD
STDMETHOD  GetNumberThreads , :PULONG
STDMETHOD  GetTotalNumberThreads , :PULONG, :PULONG
STDMETHOD  GetThreadIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetThreadIdByProcessor , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadDataOffset , :PULONG64
STDMETHOD  GetThreadIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadTeb , :PULONG64
STDMETHOD  GetThreadIdByTeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadSystemId , :PULONG
STDMETHOD  GetThreadIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadHandle , :PULONG64
STDMETHOD  GetThreadIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetNumberProcesses , :PULONG
STDMETHOD  GetProcessIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetCurrentProcessDataOffset , :PULONG64
STDMETHOD  GetProcessIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessPeb , :PULONG64
STDMETHOD  GetProcessIdByPeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessSystemId , :PULONG
STDMETHOD  GetProcessIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentProcessHandle , :PULONG64
STDMETHOD  GetProcessIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessExecutableName , :PSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentProcessUpTime , :PULONG
STDMETHOD  GetImplicitThreadDataOffset , :PULONG64
STDMETHOD  SetImplicitThreadDataOffset , :ULONG64
STDMETHOD  GetImplicitProcessDataOffset , :PULONG64
STDMETHOD  SetImplicitProcessDataOffset , :ULONG64
STDMETHOD  GetEventSystem , :PULONG
STDMETHOD  GetCurrentSystemId , :PULONG
STDMETHOD  SetCurrentSystemId , :DWORD
STDMETHOD  GetNumberSystems , :PULONG
STDMETHOD  GetSystemIdsByIndex , :DWORD, :DWORD, :PULONG
STDMETHOD  GetTotalNumberThreadsAndProcesses , :PULONG, :PULONG, :PULONG, :PULONG, :PULONG
STDMETHOD  GetCurrentSystemServer , :PULONG64
STDMETHOD  GetSystemByServer , :ULONG64, :PULONG
STDMETHOD  GetCurrentSystemServerName , :PSTR, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

;#undef INTERFACE 
INTERFACE	EQU	<IDebugSystemObjects4>
DECLARE_INTERFACE_( IDebugSystemObjects4 , IUnknown)
;{
STDMETHOD  QueryInterface , :REFIID, :ptr PVOID
STDMETHOD_  ULONG , AddRef 
STDMETHOD_  ULONG , Release 
STDMETHOD  GetEventThread , :PULONG
STDMETHOD  GetEventProcess , :PULONG
STDMETHOD  GetCurrentThreadId , :PULONG
STDMETHOD  SetCurrentThreadId , :DWORD
STDMETHOD  GetCurrentProcessId , :PULONG
STDMETHOD  SetCurrentProcessId , :DWORD
STDMETHOD  GetNumberThreads , :PULONG
STDMETHOD  GetTotalNumberThreads , :PULONG, :PULONG
STDMETHOD  GetThreadIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetThreadIdByProcessor , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadDataOffset , :PULONG64
STDMETHOD  GetThreadIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadTeb , :PULONG64
STDMETHOD  GetThreadIdByTeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentThreadSystemId , :PULONG
STDMETHOD  GetThreadIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentThreadHandle , :PULONG64
STDMETHOD  GetThreadIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetNumberProcesses , :PULONG
STDMETHOD  GetProcessIdsByIndex , :DWORD, :DWORD, :PULONG, :PULONG
STDMETHOD  GetCurrentProcessDataOffset , :PULONG64
STDMETHOD  GetProcessIdByDataOffset , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessPeb , :PULONG64
STDMETHOD  GetProcessIdByPeb , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessSystemId , :PULONG
STDMETHOD  GetProcessIdBySystemId , :DWORD, :PULONG
STDMETHOD  GetCurrentProcessHandle , :PULONG64
STDMETHOD  GetProcessIdByHandle , :ULONG64, :PULONG
STDMETHOD  GetCurrentProcessExecutableName , :PSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentProcessUpTime , :PULONG
STDMETHOD  GetImplicitThreadDataOffset , :PULONG64
STDMETHOD  SetImplicitThreadDataOffset , :ULONG64
STDMETHOD  GetImplicitProcessDataOffset , :PULONG64
STDMETHOD  SetImplicitProcessDataOffset , :ULONG64
STDMETHOD  GetEventSystem , :PULONG
STDMETHOD  GetCurrentSystemId , :PULONG
STDMETHOD  SetCurrentSystemId , :DWORD
STDMETHOD  GetNumberSystems , :PULONG
STDMETHOD  GetSystemIdsByIndex , :DWORD, :DWORD, :PULONG
STDMETHOD  GetTotalNumberThreadsAndProcesses , :PULONG, :PULONG, :PULONG, :PULONG, :PULONG
STDMETHOD  GetCurrentSystemServer , :PULONG64
STDMETHOD  GetSystemByServer , :ULONG64, :PULONG
STDMETHOD  GetCurrentSystemServerName , :PSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentProcessExecutableNameWide , :PWSTR, :DWORD, :PULONG
STDMETHOD  GetCurrentSystemServerNameWide , :PWSTR, :DWORD, :PULONG
;}
DECLARE_INTERFACE__END

DEBUG_EXTENSION_VERSION macro Major,Minor
	exitm <( ( ( ( Major )  and  0ffffh )  shl  16 )  or  ( ( Minor )  and  0ffffh ) ) >
	endm
proto_PDEBUG_EXTENSION_INITIALIZE typedef proto stdcall :PULONG,:PULONG
PDEBUG_EXTENSION_INITIALIZE typedef ptr proto_PDEBUG_EXTENSION_INITIALIZE
proto_PDEBUG_EXTENSION_UNINITIALIZE typedef proto stdcall 
PDEBUG_EXTENSION_UNINITIALIZE typedef ptr proto_PDEBUG_EXTENSION_UNINITIALIZE
DEBUG_NOTIFY_SESSION_ACTIVE	EQU	00000000h
DEBUG_NOTIFY_SESSION_INACTIVE	EQU	00000001h
DEBUG_NOTIFY_SESSION_ACCESSIBLE	EQU	00000002h
DEBUG_NOTIFY_SESSION_INACCESSIBLE	EQU	00000003h
proto_PDEBUG_EXTENSION_NOTIFY typedef proto stdcall :DWORD,:ULONG64
PDEBUG_EXTENSION_NOTIFY typedef ptr proto_PDEBUG_EXTENSION_NOTIFY
DEBUG_EXTENSION_CONTINUE_SEARCH	EQU	HRESULT_FROM_NT 0C0000271h
proto_PDEBUG_EXTENSION_CALL typedef proto stdcall :PDEBUG_CLIENT,:PCSTR
PDEBUG_EXTENSION_CALL typedef ptr proto_PDEBUG_EXTENSION_CALL
endif 

;--- errors: 0
;--- end of file ---
