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

ifndef _DBGHELP_
_DBGHELP_	EQU	<>
if _MSC_VER gt 1020
;#pragma once 
endif 
ifdef _WIN64
ifndef _IMAGEHLP64
_IMAGEHLP64	EQU	<>
endif 
endif 
ifdef __cplusplus
;extern "C"
;{
endif 
ifdef _IMAGEHLP_SOURCE_
IMAGEAPI	EQU	<__stdcall>
DBHLP_DEPRECIATED	EQU	<>
else 
IMAGEAPI	EQU	<DECLSPEC_IMPORT __stdcall>
DBHLP_DEPRECIATED	EQU	<DECLSPEC_DEPRECATED>
endif 
DBHLPAPI	EQU	<IMAGEAPI>
IMAGE_SEPARATION	EQU	( 64 * 1024 )
LOADED_IMAGE	struct 4
ModuleName	PSTR	?
hFile	HANDLE	?
MappedAddress	PUCHAR	?
ifdef _IMAGEHLP64
FileHeader	PIMAGE_NT_HEADERS64	?
else 
FileHeader	PIMAGE_NT_HEADERS32	?
endif 
LastRvaSection	PIMAGE_SECTION_HEADER	?
NumberOfSections	DWORD	?
Sections	PIMAGE_SECTION_HEADER	?
Characteristics	DWORD	?
fSystemImage	BOOLEAN	?
fDOSImage	BOOLEAN	?
Links	LIST_ENTRY	<>
SizeOfImage	DWORD	?
LOADED_IMAGE	ends

PLOADED_IMAGE typedef ptr LOADED_IMAGE

@DefProto IMAGEAPI, FindDebugInfoFile, stdcall, , <:PSTR, :PSTR, :PSTR>, 12
proto_PFIND_DEBUG_FILE_CALLBACK typedef proto stdcall :HANDLE,:PSTR,:PVOID
PFIND_DEBUG_FILE_CALLBACK typedef ptr proto_PFIND_DEBUG_FILE_CALLBACK
@DefProto IMAGEAPI, FindDebugInfoFileEx, stdcall, , <:PSTR, :PSTR, :PSTR, :PFIND_DEBUG_FILE_CALLBACK, :PVOID>, 20
proto_PFINDFILEINPATHCALLBACK typedef proto stdcall :PSTR,:PVOID
PFINDFILEINPATHCALLBACK typedef ptr proto_PFINDFILEINPATHCALLBACK
@DefProto IMAGEAPI, SymFindFileInPath, stdcall, , <:HANDLE, :LPSTR, :LPSTR, :PVOID, :DWORD, :DWORD, :DWORD, :LPSTR, :PFINDFILEINPATHCALLBACK, :PVOID>, 40
@DefProto IMAGEAPI, FindExecutableImage, stdcall, , <:PSTR, :PSTR, :PSTR>, 12
proto_PFIND_EXE_FILE_CALLBACK typedef proto stdcall :HANDLE,:PSTR,:PVOID
PFIND_EXE_FILE_CALLBACK typedef ptr proto_PFIND_EXE_FILE_CALLBACK
@DefProto IMAGEAPI, FindExecutableImageEx, stdcall, , <:PSTR, :PSTR, :PSTR, :PFIND_EXE_FILE_CALLBACK, :PVOID>, 20
@DefProto IMAGEAPI, ImageNtHeader, stdcall, , <:PVOID>, 4
@DefProto IMAGEAPI, ImageDirectoryEntryToDataEx, stdcall, , <:PVOID, :BOOLEAN, :WORD, :PULONG, :ptr PIMAGE_SECTION_HEADER>, 20
@DefProto IMAGEAPI, ImageDirectoryEntryToData, stdcall, , <:PVOID, :BOOLEAN, :WORD, :PULONG>, 16
@DefProto IMAGEAPI, ImageRvaToSection, stdcall, , <:PIMAGE_NT_HEADERS, :PVOID, :DWORD>, 12
@DefProto IMAGEAPI, ImageRvaToVa, stdcall, , <:PIMAGE_NT_HEADERS, :PVOID, :DWORD, :ptr PIMAGE_SECTION_HEADER>, 16
proto_PSYMBOLSERVERPROC typedef proto  :LPSTR,:LPSTR,:PVOID,:DWORD,:DWORD,:LPSTR
PSYMBOLSERVERPROC typedef ptr proto_PSYMBOLSERVERPROC
proto_PSYMBOLSERVEROPENPROC typedef proto  
PSYMBOLSERVEROPENPROC typedef ptr proto_PSYMBOLSERVEROPENPROC
proto_PSYMBOLSERVERCLOSEPROC typedef proto  
PSYMBOLSERVERCLOSEPROC typedef ptr proto_PSYMBOLSERVERCLOSEPROC
proto_PSYMBOLSERVERSETOPTIONSPROC typedef proto  :UINT_PTR,:ULONG64
PSYMBOLSERVERSETOPTIONSPROC typedef ptr proto_PSYMBOLSERVERSETOPTIONSPROC
proto_PSYMBOLSERVERCALLBACKPROC typedef proto stdcall :UINT_PTR,:ULONG64,:ULONG64
PSYMBOLSERVERCALLBACKPROC typedef ptr proto_PSYMBOLSERVERCALLBACKPROC
proto_PSYMBOLSERVERGETOPTIONSPROC typedef proto  
PSYMBOLSERVERGETOPTIONSPROC typedef ptr proto_PSYMBOLSERVERGETOPTIONSPROC
SSRVOPT_CALLBACK	EQU	01h
SSRVOPT_DWORD	EQU	02h
SSRVOPT_DWORDPTR	EQU	04h
SSRVOPT_GUIDPTR	EQU	08h
SSRVOPT_OLDGUIDPTR	EQU	10h
SSRVOPT_UNATTENDED	EQU	20h
SSRVOPT_RESET	EQU	- 1
SSRVACTION_TRACE	EQU	1
ifndef _WIN64
IMAGE_DEBUG_INFORMATION	struct 
List	LIST_ENTRY	<>
ReservedSize	DWORD	?
ReservedMappedBase	PVOID	?
ReservedMachine	WORD	?
ReservedCharacteristics	WORD	?
ReservedCheckSum	DWORD	?
ImageBase	DWORD	?
SizeOfImage	DWORD	?
ReservedNumberOfSections	DWORD	?
ReservedSections	PIMAGE_SECTION_HEADER	?
ReservedExportedNamesSize	DWORD	?
ReservedExportedNames	PSTR	?
ReservedNumberOfFunctionTableEntries	DWORD	?
ReservedFunctionTableEntries	PIMAGE_FUNCTION_ENTRY	?
ReservedLowestFunctionStartingAddress	DWORD	?
ReservedHighestFunctionEndingAddress	DWORD	?
ReservedNumberOfFpoTableEntries	DWORD	?
ReservedFpoTableEntries	PFPO_DATA	?
SizeOfCoffSymbols	DWORD	?
CoffSymbols	PIMAGE_COFF_SYMBOLS_HEADER	?
ReservedSizeOfCodeViewSymbols	DWORD	?
ReservedCodeViewSymbols	PVOID	?
ImageFilePath	PSTR	?
ImageFileName	PSTR	?
ReservedDebugFilePath	PSTR	?
ReservedTimeDateStamp	DWORD	?
ReservedRomImage	BOOL	?
ReservedDebugDirectory	PIMAGE_DEBUG_DIRECTORY	?
ReservedNumberOfDebugDirectories	DWORD	?
ReservedOriginalFunctionTableBaseAddress	DWORD	?
Reserved	DWORD 2 dup (?)
IMAGE_DEBUG_INFORMATION	ends

PIMAGE_DEBUG_INFORMATION typedef ptr IMAGE_DEBUG_INFORMATION

@DefProto IMAGEAPI, MapDebugInformation, stdcall, , <:HANDLE, :PSTR, :PSTR, :DWORD>, 16
@DefProto IMAGEAPI, UnmapDebugInformation, stdcall, , <:PIMAGE_DEBUG_INFORMATION>, 4
endif 
@DefProto IMAGEAPI, SearchTreeForFile, stdcall, , <:PSTR, :PSTR, :PSTR>, 12
@DefProto IMAGEAPI, MakeSureDirectoryPathExists, stdcall, , <:PCSTR>, 4
UNDNAME_COMPLETE	EQU	0000h
UNDNAME_NO_LEADING_UNDERSCORES	EQU	0001h
UNDNAME_NO_MS_KEYWORDS	EQU	0002h
UNDNAME_NO_FUNCTION_RETURNS	EQU	0004h
UNDNAME_NO_ALLOCATION_MODEL	EQU	0008h
UNDNAME_NO_ALLOCATION_LANGUAGE	EQU	0010h
UNDNAME_NO_MS_THISTYPE	EQU	0020h
UNDNAME_NO_CV_THISTYPE	EQU	0040h
UNDNAME_NO_THISTYPE	EQU	0060h
UNDNAME_NO_ACCESS_SPECIFIERS	EQU	0080h
UNDNAME_NO_THROW_SIGNATURES	EQU	0100h
UNDNAME_NO_MEMBER_TYPE	EQU	0200h
UNDNAME_NO_RETURN_UDT_MODEL	EQU	0400h
UNDNAME_32_BIT_DECODE	EQU	0800h
UNDNAME_NAME_ONLY	EQU	1000h
UNDNAME_NO_ARGUMENTS	EQU	2000h
UNDNAME_NO_SPECIAL_SYMS	EQU	4000h
@DefProto IMAGEAPI, UnDecorateSymbolName, stdcall, , <:PCSTR, :PSTR, :DWORD, :DWORD>, 16
DBHHEADER_DEBUGDIRS	EQU	1h
MODLOAD_DATA	struct 
ssize	DWORD	?
ssig	DWORD	?
data	PVOID	?
size_	DWORD	?
flags	DWORD	?
MODLOAD_DATA	ends

PMODLOAD_DATA typedef ptr MODLOAD_DATA

ADDRESS_MODE typedef DWORD
AddrMode1616 = 0
AddrMode1632 = 1
AddrModeReal = 2
AddrModeFlat = 3

ADDRESS64	struct 
Offset_	DWORD64	?
Segment_	WORD	?
Mode	ADDRESS_MODE	?
ADDRESS64	ends

LPADDRESS64 typedef ptr ADDRESS64

ifndef defined
defined macro x
ifdef x
  exitm <-1>
else
  exitm <0>
endif
endm
endif
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
ADDRESS	EQU	<ADDRESS64>
LPADDRESS	EQU	<LPADDRESS64>
else 
ADDRESS	struct 4
Offset_	DWORD	?
Segment_	WORD	?
Mode	ADDRESS_MODE	?
ADDRESS	ends

LPADDRESS typedef ptr ADDRESS

Address32To64 proto  :LPADDRESS, :LPADDRESS64
Address64To32 proto  :LPADDRESS64, :LPADDRESS
endif 
KDHELP64	struct 
Thread	DWORD64	?
ThCallbackStack	DWORD	?
ThCallbackBStore	DWORD	?
NextCallback	DWORD	?
FramePointer	DWORD	?
KiCallUserMode	DWORD64	?
KeUserCallbackDispatcher	DWORD64	?
SystemRangeStart	DWORD64	?
Reserved	DWORD64 8 dup (?)
KDHELP64	ends

PKDHELP64 typedef ptr KDHELP64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
KDHELP	EQU	<KDHELP64>
PKDHELP	EQU	<PKDHELP64>
else 
KDHELP	struct 
Thread	DWORD	?
ThCallbackStack	DWORD	?
NextCallback	DWORD	?
FramePointer	DWORD	?
KiCallUserMode	DWORD	?
KeUserCallbackDispatcher	DWORD	?
SystemRangeStart	DWORD	?
ThCallbackBStore	DWORD	?
Reserved	DWORD 8 dup (?)
KDHELP	ends

PKDHELP typedef ptr KDHELP

KdHelp32To64 proto  :PKDHELP, :PKDHELP64
endif 
STACKFRAME64	struct 
AddrPC	ADDRESS64	<>
AddrReturn	ADDRESS64	<>
AddrFrame	ADDRESS64	<>
AddrStack	ADDRESS64	<>
AddrBStore	ADDRESS64	<>
FuncTableEntry	PVOID	?
Params	DWORD64 4 dup (?)
Far_	BOOL	?
Virtual	BOOL	?
Reserved	DWORD64 3 dup (?)
KdHelp	KDHELP64	<>
STACKFRAME64	ends

LPSTACKFRAME64 typedef ptr STACKFRAME64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
STACKFRAME	EQU	<STACKFRAME64>
LPSTACKFRAME	EQU	<LPSTACKFRAME64>
else 
STACKFRAME	struct 
AddrPC	ADDRESS	<>
AddrReturn	ADDRESS	<>
AddrFrame	ADDRESS	<>
AddrStack	ADDRESS	<>
FuncTableEntry	PVOID	?
Params	DWORD 4 dup (?)
Far_	BOOL	?
Virtual	BOOL	?
Reserved	DWORD 3 dup (?)
KdHelp	KDHELP	<>
AddrBStore	ADDRESS	<>
STACKFRAME	ends

LPSTACKFRAME typedef ptr STACKFRAME

endif 
proto_PREAD_PROCESS_MEMORY_ROUTINE64 typedef proto stdcall :HANDLE,:DWORD64,:PVOID,:DWORD,:LPDWORD
PREAD_PROCESS_MEMORY_ROUTINE64 typedef ptr proto_PREAD_PROCESS_MEMORY_ROUTINE64
proto_PFUNCTION_TABLE_ACCESS_ROUTINE64 typedef proto stdcall :HANDLE,:DWORD64
PFUNCTION_TABLE_ACCESS_ROUTINE64 typedef ptr proto_PFUNCTION_TABLE_ACCESS_ROUTINE64
proto_PGET_MODULE_BASE_ROUTINE64 typedef proto stdcall :HANDLE,:DWORD64
PGET_MODULE_BASE_ROUTINE64 typedef ptr proto_PGET_MODULE_BASE_ROUTINE64
proto_PTRANSLATE_ADDRESS_ROUTINE64 typedef proto stdcall :HANDLE,:HANDLE,:LPADDRESS64
PTRANSLATE_ADDRESS_ROUTINE64 typedef ptr proto_PTRANSLATE_ADDRESS_ROUTINE64
@DefProto IMAGEAPI, StackWalk64, stdcall, , <:DWORD, :HANDLE, :HANDLE, :LPSTACKFRAME64, :PVOID, :PREAD_PROCESS_MEMORY_ROUTINE64, :PFUNCTION_TABLE_ACCESS_ROUTINE64, :PGET_MODULE_BASE_ROUTINE64, :PTRANSLATE_ADDRESS_ROUTINE64>, 36
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
PREAD_PROCESS_MEMORY_ROUTINE	EQU	<PREAD_PROCESS_MEMORY_ROUTINE64>
PFUNCTION_TABLE_ACCESS_ROUTINE	EQU	<PFUNCTION_TABLE_ACCESS_ROUTINE64>
PGET_MODULE_BASE_ROUTINE	EQU	<PGET_MODULE_BASE_ROUTINE64>
PTRANSLATE_ADDRESS_ROUTINE	EQU	<PTRANSLATE_ADDRESS_ROUTINE64>
StackWalk	EQU	<StackWalk64>
else 
proto_PREAD_PROCESS_MEMORY_ROUTINE typedef proto stdcall :HANDLE,:DWORD,:PVOID,:DWORD,:PDWORD
PREAD_PROCESS_MEMORY_ROUTINE typedef ptr proto_PREAD_PROCESS_MEMORY_ROUTINE
proto_PFUNCTION_TABLE_ACCESS_ROUTINE typedef proto stdcall :HANDLE,:DWORD
PFUNCTION_TABLE_ACCESS_ROUTINE typedef ptr proto_PFUNCTION_TABLE_ACCESS_ROUTINE
proto_PGET_MODULE_BASE_ROUTINE typedef proto stdcall :HANDLE,:DWORD
PGET_MODULE_BASE_ROUTINE typedef ptr proto_PGET_MODULE_BASE_ROUTINE
proto_PTRANSLATE_ADDRESS_ROUTINE typedef proto stdcall :HANDLE,:HANDLE,:LPADDRESS
PTRANSLATE_ADDRESS_ROUTINE typedef ptr proto_PTRANSLATE_ADDRESS_ROUTINE
@DefProto IMAGEAPI, StackWalk, stdcall, , <:DWORD, :HANDLE, :HANDLE, :LPSTACKFRAME, :PVOID, :PREAD_PROCESS_MEMORY_ROUTINE, :PFUNCTION_TABLE_ACCESS_ROUTINE, :PGET_MODULE_BASE_ROUTINE, :PTRANSLATE_ADDRESS_ROUTINE>, 36
endif 
API_VERSION_NUMBER	EQU	9
API_VERSION	struct 
MajorVersion	WORD	?
MinorVersion	WORD	?
Revision	WORD	?
Reserved	WORD	?
API_VERSION	ends

LPAPI_VERSION typedef ptr API_VERSION

@DefProto IMAGEAPI, ImagehlpApiVersion, stdcall, , <>, 0
@DefProto IMAGEAPI, ImagehlpApiVersionEx, stdcall, , <:LPAPI_VERSION>, 4
@DefProto IMAGEAPI, GetTimestampForLoadedLibrary, stdcall, , <:HMODULE>, 4
proto_PSYM_ENUMMODULES_CALLBACK64 typedef proto stdcall :PSTR,:DWORD64,:PVOID
PSYM_ENUMMODULES_CALLBACK64 typedef ptr proto_PSYM_ENUMMODULES_CALLBACK64
proto_PSYM_ENUMSYMBOLS_CALLBACK64 typedef proto stdcall :PSTR,:DWORD64,:DWORD,:PVOID
PSYM_ENUMSYMBOLS_CALLBACK64 typedef ptr proto_PSYM_ENUMSYMBOLS_CALLBACK64
proto_PSYM_ENUMSYMBOLS_CALLBACK64W typedef proto stdcall :PWSTR,:DWORD64,:DWORD,:PVOID
PSYM_ENUMSYMBOLS_CALLBACK64W typedef ptr proto_PSYM_ENUMSYMBOLS_CALLBACK64W
proto_PENUMLOADED_MODULES_CALLBACK64 typedef proto stdcall :PSTR,:DWORD64,:DWORD,:PVOID
PENUMLOADED_MODULES_CALLBACK64 typedef ptr proto_PENUMLOADED_MODULES_CALLBACK64
proto_PSYMBOL_REGISTERED_CALLBACK64 typedef proto stdcall :HANDLE,:DWORD,:ULONG64,:ULONG64
PSYMBOL_REGISTERED_CALLBACK64 typedef ptr proto_PSYMBOL_REGISTERED_CALLBACK64
proto_PSYMBOL_FUNCENTRY_CALLBACK typedef proto stdcall :HANDLE,:DWORD,:PVOID
PSYMBOL_FUNCENTRY_CALLBACK typedef ptr proto_PSYMBOL_FUNCENTRY_CALLBACK
proto_PSYMBOL_FUNCENTRY_CALLBACK64 typedef proto stdcall :HANDLE,:ULONG64,:ULONG64
PSYMBOL_FUNCENTRY_CALLBACK64 typedef ptr proto_PSYMBOL_FUNCENTRY_CALLBACK64
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
PSYM_ENUMMODULES_CALLBACK	EQU	<PSYM_ENUMMODULES_CALLBACK64>
PSYM_ENUMSYMBOLS_CALLBACK	EQU	<PSYM_ENUMSYMBOLS_CALLBACK64>
PSYM_ENUMSYMBOLS_CALLBACKW	EQU	<PSYM_ENUMSYMBOLS_CALLBACK64W>
PENUMLOADED_MODULES_CALLBACK	EQU	<PENUMLOADED_MODULES_CALLBACK64>
PSYMBOL_REGISTERED_CALLBACK	EQU	<PSYMBOL_REGISTERED_CALLBACK64>
PSYMBOL_FUNCENTRY_CALLBACK	EQU	<PSYMBOL_FUNCENTRY_CALLBACK64>
else 
proto_PSYM_ENUMMODULES_CALLBACK typedef proto stdcall :PSTR,:DWORD,:PVOID
PSYM_ENUMMODULES_CALLBACK typedef ptr proto_PSYM_ENUMMODULES_CALLBACK
proto_PSYM_ENUMSYMBOLS_CALLBACK typedef proto stdcall :PSTR,:DWORD,:DWORD,:PVOID
PSYM_ENUMSYMBOLS_CALLBACK typedef ptr proto_PSYM_ENUMSYMBOLS_CALLBACK
proto_PSYM_ENUMSYMBOLS_CALLBACKW typedef proto stdcall :PWSTR,:DWORD,:DWORD,:PVOID
PSYM_ENUMSYMBOLS_CALLBACKW typedef ptr proto_PSYM_ENUMSYMBOLS_CALLBACKW
proto_PENUMLOADED_MODULES_CALLBACK typedef proto stdcall :PSTR,:DWORD,:DWORD,:PVOID
PENUMLOADED_MODULES_CALLBACK typedef ptr proto_PENUMLOADED_MODULES_CALLBACK
proto_PSYMBOL_REGISTERED_CALLBACK typedef proto stdcall :HANDLE,:DWORD,:PVOID,:PVOID
PSYMBOL_REGISTERED_CALLBACK typedef ptr proto_PSYMBOL_REGISTERED_CALLBACK
endif 
SYMF_OMAP_GENERATED	EQU	00000001h
SYMF_OMAP_MODIFIED	EQU	00000002h
ifndef _DBGHELP_USER_GENERATED_SYMBOLS_NOTSUPPORTED
SYMF_USER_GENERATED	EQU	00000004h
endif 
SYMF_REGISTER	EQU	00000008h
SYMF_REGREL	EQU	00000010h
SYMF_FRAMEREL	EQU	00000020h
SYMF_PARAMETER	EQU	00000040h
SYMF_LOCAL	EQU	00000080h
SYMF_CONSTANT	EQU	00000100h
SYMF_EXPORT	EQU	00000200h
SYMF_FORWARDER	EQU	00000400h
SYMF_FUNCTION	EQU	00000800h
SYM_TYPE typedef DWORD
SymNone = 0 
SymCoff = 1
SymCv = 2
SymPdb = 3
SymExport = 4
SymDeferred = 5
SymSym = 6
SymDia = 7
NumSymTypes = 8

IMAGEHLP_SYMBOL64	struct 
SizeOfStruct	DWORD	?
Address	DWORD64	?
Size_	DWORD	?
Flags	DWORD	?
MaxNameLength	DWORD	?
Name_	CHAR 1 dup (?)
IMAGEHLP_SYMBOL64	ends

PIMAGEHLP_SYMBOL64 typedef ptr IMAGEHLP_SYMBOL64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
IMAGEHLP_SYMBOL	EQU	<IMAGEHLP_SYMBOL64>
PIMAGEHLP_SYMBOL	EQU	<PIMAGEHLP_SYMBOL64>
else 
IMAGEHLP_SYMBOL	struct 
SizeOfStruct	DWORD	?
Address	DWORD	?
Size_	DWORD	?
Flags	DWORD	?
MaxNameLength	DWORD	?
Name_	CHAR 1 dup (?)
IMAGEHLP_SYMBOL	ends

PIMAGEHLP_SYMBOL typedef ptr IMAGEHLP_SYMBOL

endif 
IMAGEHLP_MODULE64	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD64	?
ImageSize	DWORD	?
TimeDateStamp	DWORD	?
CheckSum	DWORD	?
NumSyms	DWORD	?
SymType	SYM_TYPE	?
ModuleName	CHAR 32 dup (?)
ImageName	CHAR 256 dup (?)
LoadedImageName	CHAR 256 dup (?)
IMAGEHLP_MODULE64	ends

PIMAGEHLP_MODULE64 typedef ptr IMAGEHLP_MODULE64

IMAGEHLP_MODULEW64	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD64	?
ImageSize	DWORD	?
TimeDateStamp	DWORD	?
CheckSum	DWORD	?
NumSyms	DWORD	?
SymType	SYM_TYPE	?
ModuleName	WCHAR 32 dup (?)
ImageName	WCHAR 256 dup (?)
LoadedImageName	WCHAR 256 dup (?)
IMAGEHLP_MODULEW64	ends

PIMAGEHLP_MODULEW64 typedef ptr IMAGEHLP_MODULEW64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
IMAGEHLP_MODULE	EQU	<IMAGEHLP_MODULE64>
PIMAGEHLP_MODULE	EQU	<PIMAGEHLP_MODULE64>
IMAGEHLP_MODULEW	EQU	<IMAGEHLP_MODULEW64>
PIMAGEHLP_MODULEW	EQU	<PIMAGEHLP_MODULEW64>
else 
IMAGEHLP_MODULE	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD	?
ImageSize	DWORD	?
TimeDateStamp	DWORD	?
CheckSum	DWORD	?
NumSyms	DWORD	?
SymType	SYM_TYPE	?
ModuleName	CHAR 32 dup (?)
ImageName	CHAR 256 dup (?)
LoadedImageName	CHAR 256 dup (?)
IMAGEHLP_MODULE	ends

PIMAGEHLP_MODULE typedef ptr IMAGEHLP_MODULE

IMAGEHLP_MODULEW	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD	?
ImageSize	DWORD	?
TimeDateStamp	DWORD	?
CheckSum	DWORD	?
NumSyms	DWORD	?
SymType	SYM_TYPE	?
ModuleName	WCHAR 32 dup (?)
ImageName	WCHAR 256 dup (?)
LoadedImageName	WCHAR 256 dup (?)
IMAGEHLP_MODULEW	ends

PIMAGEHLP_MODULEW typedef ptr IMAGEHLP_MODULEW

endif 
IMAGEHLP_LINE64	struct 
SizeOfStruct	DWORD	?
Key	PVOID	?
LineNumber	DWORD	?
FileName	PCHAR	?
Address	DWORD64	?
IMAGEHLP_LINE64	ends

PIMAGEHLP_LINE64 typedef ptr IMAGEHLP_LINE64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
IMAGEHLP_LINE	EQU	<IMAGEHLP_LINE64>
PIMAGEHLP_LINE	EQU	<PIMAGEHLP_LINE64>
else 
IMAGEHLP_LINE	struct 
SizeOfStruct	DWORD	?
Key	PVOID	?
LineNumber	DWORD	?
FileName	PCHAR	?
Address	DWORD	?
IMAGEHLP_LINE	ends

PIMAGEHLP_LINE typedef ptr IMAGEHLP_LINE

endif 
SOURCEFILE	struct 
ModBase	DWORD64	?
FileName	PCHAR	?
SOURCEFILE	ends

PSOURCEFILE typedef ptr SOURCEFILE

CBA_DEFERRED_SYMBOL_LOAD_START	EQU	00000001h
CBA_DEFERRED_SYMBOL_LOAD_COMPLETE	EQU	00000002h
CBA_DEFERRED_SYMBOL_LOAD_FAILURE	EQU	00000003h
CBA_SYMBOLS_UNLOADED	EQU	00000004h
CBA_DUPLICATE_SYMBOL	EQU	00000005h
CBA_READ_MEMORY	EQU	00000006h
CBA_DEFERRED_SYMBOL_LOAD_CANCEL	EQU	00000007h
CBA_SET_OPTIONS	EQU	00000008h
CBA_EVENT	EQU	00000010h
CBA_DEBUG_INFO	EQU	10000000h
IMAGEHLP_CBA_READ_MEMORY	struct 
addr_	DWORD64	?
buf	PVOID	?
bytes	DWORD	?
bytesread	DWORD	?
IMAGEHLP_CBA_READ_MEMORY	ends

PIMAGEHLP_CBA_READ_MEMORY typedef ptr IMAGEHLP_CBA_READ_MEMORY

sevInfo = 0 
sevProblem = 1
sevAttn = 2
sevFatal = 3
sevMax = 4

IMAGEHLP_CBA_EVENT	struct 
severity	DWORD	?
code	DWORD	?
desc	PCHAR	?
object	PVOID	?
IMAGEHLP_CBA_EVENT	ends

PIMAGEHLP_CBA_EVENT typedef ptr IMAGEHLP_CBA_EVENT

IMAGEHLP_DEFERRED_SYMBOL_LOAD64	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD64	?
CheckSum	DWORD	?
TimeDateStamp	DWORD	?
FileName	CHAR MAX_PATH dup (?)
Reparse	BOOLEAN	?
IMAGEHLP_DEFERRED_SYMBOL_LOAD64	ends

PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 typedef ptr IMAGEHLP_DEFERRED_SYMBOL_LOAD64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
IMAGEHLP_DEFERRED_SYMBOL_LOAD	EQU	<IMAGEHLP_DEFERRED_SYMBOL_LOAD64>
PIMAGEHLP_DEFERRED_SYMBOL_LOAD	EQU	<PIMAGEHLP_DEFERRED_SYMBOL_LOAD64>
else 
IMAGEHLP_DEFERRED_SYMBOL_LOAD	struct 
SizeOfStruct	DWORD	?
BaseOfImage	DWORD	?
CheckSum	DWORD	?
TimeDateStamp	DWORD	?
FileName	CHAR MAX_PATH dup (?)
Reparse	BOOLEAN	?
IMAGEHLP_DEFERRED_SYMBOL_LOAD	ends

PIMAGEHLP_DEFERRED_SYMBOL_LOAD typedef ptr IMAGEHLP_DEFERRED_SYMBOL_LOAD

endif 
IMAGEHLP_DUPLICATE_SYMBOL64	struct 
SizeOfStruct	DWORD	?
NumberOfDups	DWORD	?
Symbol	PIMAGEHLP_SYMBOL64	?
SelectedSymbol	DWORD	?
IMAGEHLP_DUPLICATE_SYMBOL64	ends

PIMAGEHLP_DUPLICATE_SYMBOL64 typedef ptr IMAGEHLP_DUPLICATE_SYMBOL64

if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
IMAGEHLP_DUPLICATE_SYMBOL	EQU	<IMAGEHLP_DUPLICATE_SYMBOL64>
PIMAGEHLP_DUPLICATE_SYMBOL	EQU	<PIMAGEHLP_DUPLICATE_SYMBOL64>
else 
IMAGEHLP_DUPLICATE_SYMBOL	struct 
SizeOfStruct	DWORD	?
NumberOfDups	DWORD	?
Symbol	PIMAGEHLP_SYMBOL	?
SelectedSymbol	DWORD	?
IMAGEHLP_DUPLICATE_SYMBOL	ends

PIMAGEHLP_DUPLICATE_SYMBOL typedef ptr IMAGEHLP_DUPLICATE_SYMBOL

endif 
SYMOPT_CASE_INSENSITIVE	EQU	00000001h
SYMOPT_UNDNAME	EQU	00000002h
SYMOPT_DEFERRED_LOADS	EQU	00000004h
SYMOPT_NO_CPP	EQU	00000008h
SYMOPT_LOAD_LINES	EQU	00000010h
SYMOPT_OMAP_FIND_NEAREST	EQU	00000020h
SYMOPT_LOAD_ANYTHING	EQU	00000040h
SYMOPT_IGNORE_CVREC	EQU	00000080h
SYMOPT_NO_UNQUALIFIED_LOADS	EQU	00000100h
SYMOPT_FAIL_CRITICAL_ERRORS	EQU	00000200h
SYMOPT_EXACT_SYMBOLS	EQU	00000400h
SYMOPT_WILD_UNDERSCORE	EQU	00000800h
SYMOPT_USE_DEFAULTS	EQU	00001000h
SYMOPT_INCLUDE_32BIT_MODULES	EQU	00002000h
SYMOPT_DEBUG	EQU	80000000h
@DefProto IMAGEAPI, SymSetOptions, stdcall, , <:DWORD>, 4
@DefProto IMAGEAPI, SymGetOptions, stdcall, , <>, 0
@DefProto IMAGEAPI, SymCleanup, stdcall, , <:HANDLE>, 4
@DefProto IMAGEAPI, SymMatchString, stdcall, , <:LPSTR, :LPSTR, :BOOL>, 12
proto_PSYM_ENUMSOURCFILES_CALLBACK typedef proto stdcall :PSOURCEFILE,:PVOID
PSYM_ENUMSOURCFILES_CALLBACK typedef ptr proto_PSYM_ENUMSOURCFILES_CALLBACK
@DefProto IMAGEAPI, SymEnumSourceFiles, stdcall, , <:HANDLE, :ULONG64, :LPSTR, :PSYM_ENUMSOURCFILES_CALLBACK, :PVOID>, 24
@DefProto IMAGEAPI, SymEnumerateModules64, stdcall, , <:HANDLE, :PSYM_ENUMMODULES_CALLBACK64, :PVOID>, 12
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymEnumerateModules	EQU	<SymEnumerateModules64>
else 
@DefProto IMAGEAPI, SymEnumerateModules, stdcall, , <:HANDLE, :PSYM_ENUMMODULES_CALLBACK, :PVOID>, 12
endif 
@DefProto IMAGEAPI, SymEnumerateSymbols64, stdcall, , <:HANDLE, :DWORD64, :PSYM_ENUMSYMBOLS_CALLBACK64, :PVOID>, 16
@DefProto IMAGEAPI, SymEnumerateSymbolsW64, stdcall, , <:HANDLE, :DWORD64, :PSYM_ENUMSYMBOLS_CALLBACK64W, :PVOID>, 16
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymEnumerateSymbols	EQU	<SymEnumerateSymbols64>
SymEnumerateSymbolsW	EQU	<SymEnumerateSymbolsW64>
else 
@DefProto IMAGEAPI, SymEnumerateSymbols, stdcall, , <:HANDLE, :DWORD, :PSYM_ENUMSYMBOLS_CALLBACK, :PVOID>, 16
@DefProto IMAGEAPI, SymEnumerateSymbolsW, stdcall, , <:HANDLE, :DWORD, :PSYM_ENUMSYMBOLS_CALLBACKW, :PVOID>, 16
endif 
@DefProto IMAGEAPI, EnumerateLoadedModules64, stdcall, , <:HANDLE, :PENUMLOADED_MODULES_CALLBACK64, :PVOID>, 12
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
EnumerateLoadedModules	EQU	<EnumerateLoadedModules64>
else 
@DefProto IMAGEAPI, EnumerateLoadedModules, stdcall, , <:HANDLE, :PENUMLOADED_MODULES_CALLBACK, :PVOID>, 12
endif 
@DefProto IMAGEAPI, SymFunctionTableAccess64, stdcall, , <:HANDLE, :DWORD64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymFunctionTableAccess	EQU	<SymFunctionTableAccess64>
else 
@DefProto IMAGEAPI, SymFunctionTableAccess, stdcall, , <:HANDLE, :DWORD>, 8
endif 
@DefProto IMAGEAPI, SymGetModuleInfo64, stdcall, , <:HANDLE, :DWORD64, :PIMAGEHLP_MODULE64>, 12
@DefProto IMAGEAPI, SymGetModuleInfoW64, stdcall, , <:HANDLE, :DWORD64, :PIMAGEHLP_MODULEW64>, 12
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetModuleInfo	EQU	<SymGetModuleInfo64>
SymGetModuleInfoW	EQU	<SymGetModuleInfoW64>
else 
@DefProto IMAGEAPI, SymGetModuleInfo, stdcall, , <:HANDLE, :DWORD, :PIMAGEHLP_MODULE>, 12
@DefProto IMAGEAPI, SymGetModuleInfoW, stdcall, , <:HANDLE, :DWORD, :PIMAGEHLP_MODULEW>, 12
endif 
@DefProto IMAGEAPI, SymGetModuleBase64, stdcall, , <:HANDLE, :DWORD64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetModuleBase	EQU	<SymGetModuleBase64>
else 
@DefProto IMAGEAPI, SymGetModuleBase, stdcall, , <:HANDLE, :DWORD>, 8
endif 
@DefProto IMAGEAPI, SymGetSymNext64, stdcall, , <:HANDLE, :PIMAGEHLP_SYMBOL64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetSymNext	EQU	<SymGetSymNext64>
else 
@DefProto IMAGEAPI, SymGetSymNext, stdcall, , <:HANDLE, :PIMAGEHLP_SYMBOL>, 8
endif 
@DefProto IMAGEAPI, SymGetSymPrev64, stdcall, , <:HANDLE, :PIMAGEHLP_SYMBOL64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetSymPrev	EQU	<SymGetSymPrev64>
else 
@DefProto IMAGEAPI, SymGetSymPrev, stdcall, , <:HANDLE, :PIMAGEHLP_SYMBOL>, 8
endif 
@DefProto IMAGEAPI, SymGetLineFromAddr64, stdcall, , <:HANDLE, :DWORD64, :PDWORD, :PIMAGEHLP_LINE64>, 16
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetLineFromAddr	EQU	<SymGetLineFromAddr64>
else 
@DefProto IMAGEAPI, SymGetLineFromAddr, stdcall, , <:HANDLE, :DWORD, :PDWORD, :PIMAGEHLP_LINE>, 16
endif 
@DefProto IMAGEAPI, SymGetLineFromName64, stdcall, , <:HANDLE, :PSTR, :PSTR, :DWORD, :PLONG, :PIMAGEHLP_LINE64>, 24
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetLineFromName	EQU	<SymGetLineFromName64>
else 
@DefProto IMAGEAPI, SymGetLineFromName, stdcall, , <:HANDLE, :PSTR, :PSTR, :DWORD, :PLONG, :PIMAGEHLP_LINE>, 24
endif 
@DefProto IMAGEAPI, SymGetLineNext64, stdcall, , <:HANDLE, :PIMAGEHLP_LINE64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetLineNext	EQU	<SymGetLineNext64>
else 
@DefProto IMAGEAPI, SymGetLineNext, stdcall, , <:HANDLE, :PIMAGEHLP_LINE>, 8
endif 
@DefProto IMAGEAPI, SymGetLinePrev64, stdcall, , <:HANDLE, :PIMAGEHLP_LINE64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetLinePrev	EQU	<SymGetLinePrev64>
else 
@DefProto IMAGEAPI, SymGetLinePrev, stdcall, , <:HANDLE, :PIMAGEHLP_LINE>, 8
endif 
@DefProto IMAGEAPI, SymMatchFileName, stdcall, , <:PSTR, :PSTR, :ptr PSTR, :ptr PSTR>, 16
@DefProto IMAGEAPI, SymInitialize, stdcall, , <:HANDLE, :PSTR, :BOOL>, 12
@DefProto IMAGEAPI, SymGetSearchPath, stdcall, , <:HANDLE, :PSTR, :DWORD>, 12
@DefProto IMAGEAPI, SymSetSearchPath, stdcall, , <:HANDLE, :PSTR>, 8
@DefProto IMAGEAPI, SymLoadModule64, stdcall, , <:HANDLE, :HANDLE, :PSTR, :PSTR, :DWORD64, :DWORD>, 24
@DefProto IMAGEAPI, SymLoadModuleEx, stdcall, , <:HANDLE, :HANDLE, :PSTR, :PSTR, :DWORD64, :DWORD, :PMODLOAD_DATA, :DWORD>, 32
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymLoadModule	EQU	<SymLoadModule64>
else 
@DefProto IMAGEAPI, SymLoadModule, stdcall, , <:HANDLE, :HANDLE, :PSTR, :PSTR, :DWORD, :DWORD>, 24
endif 
@DefProto IMAGEAPI, SymUnloadModule64, stdcall, , <:HANDLE, :DWORD64>, 8
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymUnloadModule	EQU	<SymUnloadModule64>
else 
@DefProto IMAGEAPI, SymUnloadModule, stdcall, , <:HANDLE, :DWORD>, 8
endif 
@DefProto IMAGEAPI, SymUnDName64, stdcall, , <:PIMAGEHLP_SYMBOL64, :PSTR, :DWORD>, 12
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymUnDName	EQU	<SymUnDName64>
else 
@DefProto IMAGEAPI, SymUnDName, stdcall, , <:PIMAGEHLP_SYMBOL, :PSTR, :DWORD>, 12
endif 
@DefProto IMAGEAPI, SymRegisterCallback64, stdcall, , <:HANDLE, :PSYMBOL_REGISTERED_CALLBACK64, :ULONG64>, 16
@DefProto IMAGEAPI, SymRegisterFunctionEntryCallback64, stdcall, , <:HANDLE, :PSYMBOL_FUNCENTRY_CALLBACK64, :ULONG64>, 16
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymRegisterCallback	EQU	<SymRegisterCallback64>
SymRegisterFunctionEntryCallback	EQU	<SymRegisterFunctionEntryCallback64>
else 
@DefProto IMAGEAPI, SymRegisterCallback, stdcall, , <:HANDLE, :PSYMBOL_REGISTERED_CALLBACK, :PVOID>, 12
@DefProto IMAGEAPI, SymRegisterFunctionEntryCallback, stdcall, , <:HANDLE, :PSYMBOL_FUNCENTRY_CALLBACK, :PVOID>, 12
endif 
IMAGEHLP_SYMBOL_SRC	struct 
sizeofstruct	DWORD	?
type_	DWORD	?
file	SBYTE MAX_PATH dup (?)
IMAGEHLP_SYMBOL_SRC	ends

PIMAGEHLP_SYMBOL_SRC typedef ptr IMAGEHLP_SYMBOL_SRC

MODULE_TYPE_INFO	struct 
dataLength	WORD	?
leaf	WORD	?
data	BYTE 1 dup (?)
MODULE_TYPE_INFO	ends

PMODULE_TYPE_INFO typedef ptr MODULE_TYPE_INFO

IMAGEHLP_SYMBOL_INFO_VALUEPRESENT	EQU	1
IMAGEHLP_SYMBOL_INFO_REGISTER	EQU	<SYMF_REGISTER>
IMAGEHLP_SYMBOL_INFO_REGRELATIVE	EQU	<SYMF_REGREL>
IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE	EQU	<SYMF_FRAMEREL>
IMAGEHLP_SYMBOL_INFO_PARAMETER	EQU	<SYMF_PARAMETER>
IMAGEHLP_SYMBOL_INFO_LOCAL	EQU	<SYMF_LOCAL>
IMAGEHLP_SYMBOL_INFO_CONSTANT	EQU	<SYMF_CONSTANT>
IMAGEHLP_SYMBOL_FUNCTION	EQU	<SYMF_FUNCTION>
SYMBOL_INFO	struct 
SizeOfStruct	DWORD	?
TypeIndex	DWORD	?
Reserved	ULONG64 2 dup (?)
Reserved2	DWORD	?
Size_	DWORD	?
ModBase	ULONG64	?
Flags	DWORD	?
Value	ULONG64	?
Address	ULONG64	?
Register	DWORD	?
Scope	DWORD	?
Tag	DWORD	?
NameLen	DWORD	?
MaxNameLen	DWORD	?
Name_	CHAR 1 dup (?)
SYMBOL_INFO	ends

PSYMBOL_INFO typedef ptr SYMBOL_INFO

IMAGEHLP_STACK_FRAME	struct 
InstructionOffset	ULONG64	?
ReturnOffset	ULONG64	?
FrameOffset	ULONG64	?
StackOffset	ULONG64	?
BackingStoreOffset	ULONG64	?
FuncTableEntry	ULONG64	?
Params	ULONG64 4 dup (?)
Reserved	ULONG64 5 dup (?)
Virtual	BOOL	?
Reserved2	DWORD	?
IMAGEHLP_STACK_FRAME	ends

PIMAGEHLP_STACK_FRAME typedef ptr IMAGEHLP_STACK_FRAME

IMAGEHLP_CONTEXT typedef 
PIMAGEHLP_CONTEXT typedef ptr 
@DefProto IMAGEAPI, SymSetContext, stdcall, , <:HANDLE, :PIMAGEHLP_STACK_FRAME, :PIMAGEHLP_CONTEXT>, 12
@DefProto IMAGEAPI, SymFromAddr, stdcall, , <:HANDLE, :DWORD64, :PDWORD64, :PSYMBOL_INFO>, 16
@DefProto IMAGEAPI, SymFromName, stdcall, , <:HANDLE, :LPSTR, :PSYMBOL_INFO>, 12
proto_PSYM_ENUMERATESYMBOLS_CALLBACK typedef proto stdcall :PSYMBOL_INFO,:DWORD,:PVOID
PSYM_ENUMERATESYMBOLS_CALLBACK typedef ptr proto_PSYM_ENUMERATESYMBOLS_CALLBACK
@DefProto IMAGEAPI, SymEnumSymbols, stdcall, , <:HANDLE, :ULONG64, :PCSTR, :PSYM_ENUMERATESYMBOLS_CALLBACK, :PVOID>, 24
IMAGEHLP_SYMBOL_TYPE_INFO typedef DWORD
TI_GET_SYMTAG = 0
TI_GET_SYMNAME = 1
TI_GET_LENGTH = 2
TI_GET_TYPE = 3
TI_GET_TYPEID = 4
TI_GET_BASETYPE = 5
TI_GET_ARRAYINDEXTYPEID = 6
TI_FINDCHILDREN = 7
TI_GET_DATAKIND = 8
TI_GET_ADDRESSOFFSET = 9
TI_GET_OFFSET = 10
TI_GET_VALUE = 11
TI_GET_COUNT = 12
TI_GET_CHILDRENCOUNT = 13
TI_GET_BITPOSITION = 14
TI_GET_VIRTUALBASECLASS = 15
TI_GET_VIRTUALTABLESHAPEID = 16
TI_GET_VIRTUALBASEPOINTEROFFSET = 17
TI_GET_CLASSPARENTID = 18
TI_GET_NESTED = 19
TI_GET_SYMINDEX = 20
TI_GET_LEXICALPARENT = 21
TI_GET_ADDRESS = 22
TI_GET_THISADJUST = 23

TI_FINDCHILDREN_PARAMS	struct 
Count	DWORD	?
Start	DWORD	?
ChildId	DWORD 1 dup (?)
TI_FINDCHILDREN_PARAMS	ends

@DefProto IMAGEAPI, SymGetTypeInfo, stdcall, , <:HANDLE, :DWORD64, :DWORD, :IMAGEHLP_SYMBOL_TYPE_INFO, :PVOID>, 20
@DefProto IMAGEAPI, SymEnumTypes, stdcall, , <:HANDLE, :ULONG64, :PSYM_ENUMERATESYMBOLS_CALLBACK, :PVOID>, 20
@DefProto IMAGEAPI, SymGetTypeFromName, stdcall, , <:HANDLE, :ULONG64, :LPSTR, :PSYMBOL_INFO>, 20
proto_PDBGHELP_CREATE_USER_DUMP_CALLBACK typedef proto stdcall :DWORD,:ptr PVOID,:LPDWORD,:PVOID
PDBGHELP_CREATE_USER_DUMP_CALLBACK typedef ptr proto_PDBGHELP_CREATE_USER_DUMP_CALLBACK
DbgHelpCreateUserDump proto stdcall :LPSTR, :PDBGHELP_CREATE_USER_DUMP_CALLBACK, :PVOID
DbgHelpCreateUserDumpW proto stdcall :LPWSTR, :PDBGHELP_CREATE_USER_DUMP_CALLBACK, :PVOID
@DefProto IMAGEAPI, SymGetSymFromAddr64, stdcall, , <:HANDLE, :DWORD64, :PDWORD64, :PIMAGEHLP_SYMBOL64>, 16
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetSymFromAddr	EQU	<SymGetSymFromAddr64>
else 
@DefProto IMAGEAPI, SymGetSymFromAddr, stdcall, , <:HANDLE, :DWORD, :PDWORD, :PIMAGEHLP_SYMBOL>, 16
endif 
@DefProto IMAGEAPI, SymGetSymFromName64, stdcall, , <:HANDLE, :PSTR, :PIMAGEHLP_SYMBOL64>, 12
if 0 eq defined(_IMAGEHLP_SOURCE_) AND defined(_IMAGEHLP64)
SymGetSymFromName	EQU	<SymGetSymFromName64>
else 
@DefProto IMAGEAPI, SymGetSymFromName, stdcall, , <:HANDLE, :PSTR, :PIMAGEHLP_SYMBOL>, 12
endif 
@DefProto IMAGEAPI, FindFileInPath, stdcall, , <:HANDLE, :LPSTR, :LPSTR, :PVOID, :DWORD, :DWORD, :DWORD, :LPSTR>, 32
@DefProto IMAGEAPI, FindFileInSearchPath, stdcall, , <:HANDLE, :LPSTR, :LPSTR, :DWORD, :DWORD, :DWORD, :LPSTR>, 28
@DefProto IMAGEAPI, SymEnumSym, stdcall, , <:HANDLE, :ULONG64, :PSYM_ENUMERATESYMBOLS_CALLBACK, :PVOID>, 20
	include pshpack4.inc
;#pragma warning ( disable : 4200 ) 
MINIDUMP_SIGNATURE	EQU	<( 'PMDM' )>
MINIDUMP_VERSION	EQU	42899
RVA typedef DWORD
RVA64 typedef ULONG64
MINIDUMP_LOCATION_DESCRIPTOR	struct 
DataSize	ULONG32	?
Rva	RVA	?
MINIDUMP_LOCATION_DESCRIPTOR	ends

MINIDUMP_LOCATION_DESCRIPTOR64	struct 
DataSize	ULONG64	?
Rva	RVA64	?
MINIDUMP_LOCATION_DESCRIPTOR64	ends

MINIDUMP_MEMORY_DESCRIPTOR	struct 
StartOfMemoryRange	ULONG64	?
Memory	MINIDUMP_LOCATION_DESCRIPTOR	<>
MINIDUMP_MEMORY_DESCRIPTOR	ends

PMINIDUMP_MEMORY_DESCRIPTOR typedef ptr MINIDUMP_MEMORY_DESCRIPTOR

MINIDUMP_MEMORY_DESCRIPTOR64	struct 
StartOfMemoryRange	ULONG64	?
DataSize	ULONG64	?
MINIDUMP_MEMORY_DESCRIPTOR64	ends

PMINIDUMP_MEMORY_DESCRIPTOR64 typedef ptr MINIDUMP_MEMORY_DESCRIPTOR64

MINIDUMP_HEADER	struct 
Signature	ULONG32	?
Version	ULONG32	?
NumberOfStreams	ULONG32	?
StreamDirectoryRva	RVA	?
CheckSum	ULONG32	?
union
Reserved	ULONG32	?
TimeDateStamp	ULONG32	?
ends
Flags	ULONG64	?
MINIDUMP_HEADER	ends

PMINIDUMP_HEADER typedef ptr MINIDUMP_HEADER

MINIDUMP_DIRECTORY	struct 
StreamType	ULONG32	?
Location	MINIDUMP_LOCATION_DESCRIPTOR	<>
MINIDUMP_DIRECTORY	ends

PMINIDUMP_DIRECTORY typedef ptr MINIDUMP_DIRECTORY

MINIDUMP_STRING	struct 
Length_	ULONG32	?
Buffer	WCHAR 0 dup (?)
MINIDUMP_STRING	ends

PMINIDUMP_STRING typedef ptr MINIDUMP_STRING

MINIDUMP_STREAM_TYPE typedef DWORD
UnusedStream = 0 
ReservedStream0 = 1 
ReservedStream1 = 2 
ThreadListStream = 3 
ModuleListStream = 4 
MemoryListStream = 5 
ExceptionStream = 6 
SystemInfoStream = 7 
ThreadExListStream = 8 
Memory64ListStream = 9 
CommentStreamA = 10 
CommentStreamW = 11 
HandleDataStream = 12 
FunctionTableStream = 13 
LastReservedStream = 0ffffh 

MINIDUMP_SYSTEM_INFO	struct 
ProcessorArchitecture	WORD	?
ProcessorLevel	WORD	?
ProcessorRevision	WORD	?
Reserved0	WORD	?
MajorVersion	ULONG32	?
MinorVersion	ULONG32	?
BuildNumber	ULONG32	?
PlatformId	ULONG32	?
CSDVersionRva	RVA	?
Reserved1	ULONG32	?
union Cpu
struct X86CpuInfo
VendorId	ULONG32 3 dup (?)
VersionInformation	ULONG32	?
FeatureInformation	ULONG32	?
AMDExtendedCpuFeatures	ULONG32	?
ends
struct OtherCpuInfo
ProcessorFeatures	ULONG64 2 dup (?)
ends
ends
MINIDUMP_SYSTEM_INFO	ends

PMINIDUMP_SYSTEM_INFO typedef ptr MINIDUMP_SYSTEM_INFO

;CPU_INFORMATION typedef _CPU_INFORMATION
;PCPU_INFORMATION typedef ptr _CPU_INFORMATION

;C_ASSERT proto  :sizeof :0 :-> :==
MINIDUMP_THREAD	struct 
ThreadId	ULONG32	?
SuspendCount	ULONG32	?
PriorityClass	ULONG32	?
Priority	ULONG32	?
Teb	ULONG64	?
Stack	MINIDUMP_MEMORY_DESCRIPTOR	<>
ThreadContext	MINIDUMP_LOCATION_DESCRIPTOR	<>
MINIDUMP_THREAD	ends

PMINIDUMP_THREAD typedef ptr MINIDUMP_THREAD

MINIDUMP_THREAD_LIST	struct 
NumberOfThreads	ULONG32	?
Threads	MINIDUMP_THREAD 0 dup (<>)
MINIDUMP_THREAD_LIST	ends

PMINIDUMP_THREAD_LIST typedef ptr MINIDUMP_THREAD_LIST

MINIDUMP_THREAD_EX	struct 
ThreadId	ULONG32	?
SuspendCount	ULONG32	?
PriorityClass	ULONG32	?
Priority	ULONG32	?
Teb	ULONG64	?
Stack	MINIDUMP_MEMORY_DESCRIPTOR	<>
ThreadContext	MINIDUMP_LOCATION_DESCRIPTOR	<>
BackingStore	MINIDUMP_MEMORY_DESCRIPTOR	<>
MINIDUMP_THREAD_EX	ends

PMINIDUMP_THREAD_EX typedef ptr MINIDUMP_THREAD_EX

MINIDUMP_THREAD_EX_LIST	struct 
NumberOfThreads	ULONG32	?
Threads	MINIDUMP_THREAD_EX 0 dup (<>)
MINIDUMP_THREAD_EX_LIST	ends

PMINIDUMP_THREAD_EX_LIST typedef ptr MINIDUMP_THREAD_EX_LIST

MINIDUMP_EXCEPTION	struct 
ExceptionCode	ULONG32	?
ExceptionFlags	ULONG32	?
ExceptionRecord	ULONG64	?
ExceptionAddress	ULONG64	?
NumberParameters	ULONG32	?
__unusedAlignment	ULONG32	?
ExceptionInformation	ULONG64 EXCEPTION_MAXIMUM_PARAMETERS dup (?)
MINIDUMP_EXCEPTION	ends

PMINIDUMP_EXCEPTION typedef ptr MINIDUMP_EXCEPTION

MINIDUMP_EXCEPTION_STREAM	struct 
ThreadId	ULONG32	?
__alignment	ULONG32	?
ExceptionRecord	MINIDUMP_EXCEPTION	<>
ThreadContext	MINIDUMP_LOCATION_DESCRIPTOR	<>
MINIDUMP_EXCEPTION_STREAM	ends

PMINIDUMP_EXCEPTION_STREAM typedef ptr MINIDUMP_EXCEPTION_STREAM

MINIDUMP_MODULE	struct 
BaseOfImage	ULONG64	?
SizeOfImage	ULONG32	?
CheckSum	ULONG32	?
TimeDateStamp	ULONG32	?
ModuleNameRva	RVA	?
VersionInfo	VS_FIXEDFILEINFO	<>
CvRecord	MINIDUMP_LOCATION_DESCRIPTOR	<>
MiscRecord	MINIDUMP_LOCATION_DESCRIPTOR	<>
Reserved0	ULONG64	?
Reserved1	ULONG64	?
MINIDUMP_MODULE	ends

PMINIDUMP_MODULE typedef ptr MINIDUMP_MODULE

MINIDUMP_MODULE_LIST	struct 
NumberOfModules	ULONG32	?
Modules	MINIDUMP_MODULE 0 dup (<>)
MINIDUMP_MODULE_LIST	ends

PMINIDUMP_MODULE_LIST typedef ptr MINIDUMP_MODULE_LIST

MINIDUMP_MEMORY_LIST	struct 
NumberOfMemoryRanges	ULONG32	?
MemoryRanges	MINIDUMP_MEMORY_DESCRIPTOR 0 dup (<>)
MINIDUMP_MEMORY_LIST	ends

PMINIDUMP_MEMORY_LIST typedef ptr MINIDUMP_MEMORY_LIST

MINIDUMP_MEMORY64_LIST	struct 
NumberOfMemoryRanges	ULONG64	?
BaseRva	RVA64	?
MemoryRanges	MINIDUMP_MEMORY_DESCRIPTOR64 0 dup (<>)
MINIDUMP_MEMORY64_LIST	ends

PMINIDUMP_MEMORY64_LIST typedef ptr MINIDUMP_MEMORY64_LIST

MINIDUMP_EXCEPTION_INFORMATION	struct 
ThreadId	DWORD	?
ExceptionPointers	PEXCEPTION_POINTERS	?
ClientPointers	BOOL	?
MINIDUMP_EXCEPTION_INFORMATION	ends

PMINIDUMP_EXCEPTION_INFORMATION typedef ptr MINIDUMP_EXCEPTION_INFORMATION

MINIDUMP_HANDLE_DESCRIPTOR	struct 
Handle	ULONG64	?
TypeNameRva	RVA	?
ObjectNameRva	RVA	?
Attributes	ULONG32	?
GrantedAccess	ULONG32	?
HandleCount	ULONG32	?
PointerCount	ULONG32	?
MINIDUMP_HANDLE_DESCRIPTOR	ends

PMINIDUMP_HANDLE_DESCRIPTOR typedef ptr MINIDUMP_HANDLE_DESCRIPTOR

MINIDUMP_HANDLE_DATA_STREAM	struct 
SizeOfHeader	ULONG32	?
SizeOfDescriptor	ULONG32	?
NumberOfDescriptors	ULONG32	?
Reserved	ULONG32	?
MINIDUMP_HANDLE_DATA_STREAM	ends

PMINIDUMP_HANDLE_DATA_STREAM typedef ptr MINIDUMP_HANDLE_DATA_STREAM

MINIDUMP_FUNCTION_TABLE_DESCRIPTOR	struct 
MinimumAddress	ULONG64	?
MaximumAddress	ULONG64	?
BaseAddress	ULONG64	?
EntryCount	ULONG32	?
SizeOfAlignPad	ULONG32	?
MINIDUMP_FUNCTION_TABLE_DESCRIPTOR	ends

PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR typedef ptr MINIDUMP_FUNCTION_TABLE_DESCRIPTOR

MINIDUMP_FUNCTION_TABLE_STREAM	struct 
SizeOfHeader	ULONG32	?
SizeOfDescriptor	ULONG32	?
SizeOfNativeDescriptor	ULONG32	?
SizeOfFunctionEntry	ULONG32	?
NumberOfDescriptors	ULONG32	?
SizeOfAlignPad	ULONG32	?
MINIDUMP_FUNCTION_TABLE_STREAM	ends

PMINIDUMP_FUNCTION_TABLE_STREAM typedef ptr MINIDUMP_FUNCTION_TABLE_STREAM

MINIDUMP_USER_RECORD	struct 
Type_	ULONG32	?
Memory	MINIDUMP_LOCATION_DESCRIPTOR	<>
MINIDUMP_USER_RECORD	ends

PMINIDUMP_USER_RECORD typedef ptr MINIDUMP_USER_RECORD

MINIDUMP_USER_STREAM	struct 
Type_	ULONG32	?
BufferSize	DWORD	?
Buffer	PVOID	?
MINIDUMP_USER_STREAM	ends

PMINIDUMP_USER_STREAM typedef ptr MINIDUMP_USER_STREAM

MINIDUMP_USER_STREAM_INFORMATION	struct 
UserStreamCount	DWORD	?
UserStreamArray	PMINIDUMP_USER_STREAM	?
MINIDUMP_USER_STREAM_INFORMATION	ends

PMINIDUMP_USER_STREAM_INFORMATION typedef ptr MINIDUMP_USER_STREAM_INFORMATION

MINIDUMP_CALLBACK_TYPE typedef DWORD
ModuleCallback = 0
ThreadCallback = 1
ThreadExCallback = 2
IncludeThreadCallback = 3
IncludeModuleCallback = 4

MINIDUMP_THREAD_CALLBACK	struct 
ThreadId	DWORD	?
ThreadHandle	HANDLE	?
Context	CONTEXT	<>
SizeOfContext	DWORD	?
StackBase	ULONG64	?
StackEnd	ULONG64	?
MINIDUMP_THREAD_CALLBACK	ends

PMINIDUMP_THREAD_CALLBACK typedef ptr MINIDUMP_THREAD_CALLBACK

MINIDUMP_THREAD_EX_CALLBACK	struct 
ThreadId	DWORD	?
ThreadHandle	HANDLE	?
Context	CONTEXT	<>
SizeOfContext	DWORD	?
StackBase	ULONG64	?
StackEnd	ULONG64	?
BackingStoreBase	ULONG64	?
BackingStoreEnd	ULONG64	?
MINIDUMP_THREAD_EX_CALLBACK	ends

PMINIDUMP_THREAD_EX_CALLBACK typedef ptr MINIDUMP_THREAD_EX_CALLBACK

MINIDUMP_INCLUDE_THREAD_CALLBACK	struct 
ThreadId	DWORD	?
MINIDUMP_INCLUDE_THREAD_CALLBACK	ends

PMINIDUMP_INCLUDE_THREAD_CALLBACK typedef ptr MINIDUMP_INCLUDE_THREAD_CALLBACK

THREAD_WRITE_FLAGS typedef DWORD
ThreadWriteThread = 0001h 
ThreadWriteStack = 0002h 
ThreadWriteContext = 0004h 
ThreadWriteBackingStore = 0008h 
ThreadWriteInstructionWindow = 0010h 

MINIDUMP_MODULE_CALLBACK	struct 
FullPath	PWCHAR	?
BaseOfImage	ULONG64	?
SizeOfImage	DWORD	?
CheckSum	DWORD	?
TimeDateStamp	DWORD	?
VersionInfo	VS_FIXEDFILEINFO	<>
CvRecord	PVOID	?
SizeOfCvRecord	DWORD	?
MiscRecord	PVOID	?
SizeOfMiscRecord	DWORD	?
MINIDUMP_MODULE_CALLBACK	ends

PMINIDUMP_MODULE_CALLBACK typedef ptr MINIDUMP_MODULE_CALLBACK

MINIDUMP_INCLUDE_MODULE_CALLBACK	struct 
BaseOfImage	ULONG64	?
MINIDUMP_INCLUDE_MODULE_CALLBACK	ends

PMINIDUMP_INCLUDE_MODULE_CALLBACK typedef ptr MINIDUMP_INCLUDE_MODULE_CALLBACK

MODULE_WRITE_FLAGS typedef DWORD
ModuleWriteModule = 0001h 
ModuleWriteDataSeg = 0002h 
ModuleWriteMiscRecord = 0004h 
ModuleWriteCvRecord = 0008h 
ModuleReferencedByMemory = 0010h 

MINIDUMP_CALLBACK_INPUT	struct 
ProcessId	DWORD	?
ProcessHandle	HANDLE	?
CallbackType	DWORD	?
union
Thread	MINIDUMP_THREAD_CALLBACK	<>
ThreadEx	MINIDUMP_THREAD_EX_CALLBACK	<>
Module	MINIDUMP_MODULE_CALLBACK	<>
IncludeThread	MINIDUMP_INCLUDE_THREAD_CALLBACK	<>
IncludeModule	MINIDUMP_INCLUDE_MODULE_CALLBACK	<>
ends
MINIDUMP_CALLBACK_INPUT	ends

PMINIDUMP_CALLBACK_INPUT typedef ptr MINIDUMP_CALLBACK_INPUT

MINIDUMP_CALLBACK_OUTPUT	struct 
union
ModuleWriteFlags	DWORD	?
ThreadWriteFlags	DWORD	?
ends
MINIDUMP_CALLBACK_OUTPUT	ends

PMINIDUMP_CALLBACK_OUTPUT typedef ptr MINIDUMP_CALLBACK_OUTPUT

MINIDUMP_TYPE typedef DWORD
MiniDumpNormal = 0000h 
MiniDumpWithDataSegs = 0001h 
MiniDumpWithFullMemory = 0002h 
MiniDumpWithHandleData = 0004h 
MiniDumpFilterMemory = 0008h 
MiniDumpScanMemory = 0010h 

proto_MINIDUMP_CALLBACK_ROUTINE typedef proto stdcall :PVOID,:PMINIDUMP_CALLBACK_INPUT,:PMINIDUMP_CALLBACK_OUTPUT
MINIDUMP_CALLBACK_ROUTINE typedef ptr proto_MINIDUMP_CALLBACK_ROUTINE
MINIDUMP_CALLBACK_INFORMATION	struct 
CallbackRoutine	MINIDUMP_CALLBACK_ROUTINE	?
CallbackParam	PVOID	?
MINIDUMP_CALLBACK_INFORMATION	ends

PMINIDUMP_CALLBACK_INFORMATION typedef ptr MINIDUMP_CALLBACK_INFORMATION

RVA_TO_ADDR macro Mapping,Rva
	exitm <( ( ( ( Mapping ) ) + ( Rva ) ) ) >
	endm
MiniDumpWriteDump proto stdcall :HANDLE, :DWORD, :HANDLE, :MINIDUMP_TYPE, :PMINIDUMP_EXCEPTION_INFORMATION, :PMINIDUMP_USER_STREAM_INFORMATION, :PMINIDUMP_CALLBACK_INFORMATION
MiniDumpReadDumpStream proto stdcall :PVOID, :DWORD, :ptr PMINIDUMP_DIRECTORY, :ptr PVOID, :ptr DWORD
	include poppack.inc
ifdef __cplusplus
;}
endif 
endif 

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