| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2005 by Marco van de Voort
- member of the Free Pascal development team.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- Notes
- - some callback types had Pxxx naming in the original header.
- Since that is a-typical, I can't predict how Borland did
- handle that. If you have problems, add a bugreport.
- - some anonymous unions were not representable in FPC. As a first approx
- I added a dummy nested record union.
-
- }
- {$IFNDEF FPC_DOTTEDUNITS}
- unit imagehlp;
- {$ENDIF FPC_DOTTEDUNITS}
- Interface
- {$IFDEF FPC_DOTTEDUNITS}
- Uses WinApi.Windows;
- {$ELSE FPC_DOTTEDUNITS}
- Uses Windows;
- {$ENDIF FPC_DOTTEDUNITS}
- {$packrecords 8}
- {$ifdef win64}
- {$define imagehlp64}
- {$endif}
- {$ifdef FPC_OS_UNICODE}
- {$define UNICODE}
- {$endif}
- Const
- IMAGE_SEPARATION = 64*1024;
- DBHHEADER_DEBUGDIRS = $1;
- API_VERSION_NUMBER = 9;
- SLMFLAG_VIRTUAL = $1;
- MINIDUMP_SIGNATURE = 'PMDM'; // dword value?
- MINIDUMP_VERSION = 42899;
- External_Library = 'imagehlp.dll';
- MAX_SYM_NAME = 2000;
- BIND_NO_BOUND_IMPORTS = $00000001;
- BIND_NO_UPDATE = $00000002;
- BIND_ALL_IMAGES = $00000004;
- BIND_CACHE_IMPORT_DLLS = $00000008; // Cache dll's across
- // calls to BindImageEx
- // (same as NT 3.1->NT 4.0)
- BIND_REPORT_64BIT_VA = $00000010;
- CHECKSUM_SUCCESS = 0;
- CHECKSUM_OPEN_FAILURE = 1;
- CHECKSUM_MAP_FAILURE = 2;
- CHECKSUM_MAPVIEW_FAILURE = 3;
- CHECKSUM_UNICODE_FAILURE = 4;
- SPLITSYM_REMOVE_PRIVATE = $00000001; // Remove CV types/symbols and Fixup debug
- // Used for creating .dbg files that ship
- // as part of the product.
- SPLITSYM_EXTRACT_ALL = $00000002; // Extract all debug info from image.
- // Normally, FPO is left/* IN */ the image
- // to allow stack traces through the code.
- // Using this switch is similar to linking
- // with -debug:none except the .dbg file
- // exists...
- SPLITSYM_SYMBOLPATH_IS_SRC = $00000004; // The SymbolFilePath contains an alternate
- // path to locate the pdb.
- CERT_PE_IMAGE_DIGEST_DEBUG_INFO = $01;
- CERT_PE_IMAGE_DIGEST_RESOURCES = $02;
- CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO = $04;
- CERT_PE_IMAGE_DIGEST_NON_PE_INFO = $08; // include data outside the PE image
- CERT_SECTION_TYPE_ANY = $FF; // Any Certificate type
- SSRVOPT_CALLBACK = $0001;
- SSRVOPT_DWORD = $0002;
- SSRVOPT_DWORDPTR = $0004;
- SSRVOPT_GUIDPTR = $0008;
- SSRVOPT_OLDGUIDPTR = $0010;
- SSRVOPT_UNATTENDED = $0020;
- SSRVOPT_NOCOPY = $0040;
- SSRVOPT_PARENTWIN = $0080;
- SSRVOPT_PARAMTYPE = $0100;
- SSRVOPT_SECURE = $0200;
- SSRVOPT_TRACE = $0400;
- SSRVOPT_SETCONTEXT = $0800;
- SSRVOPT_PROXY = $1000;
- SSRVOPT_DOWNSTREAM_STORE = $2000;
- SSRVOPT_RESET = ULONG_PTR(-1);
- SSRVACTION_TRACE = 1;
- SSRVACTION_QUERYCANCEL = 2;
- SSRVACTION_EVENT = 3;
- UNDNAME_COMPLETE = $0000; // Enable full undecoration
- UNDNAME_NO_LEADING_UNDERSCORES = $0001; // Remove leading underscores from MS extended keywords
- UNDNAME_NO_MS_KEYWORDS = $0002; // Disable expansion of MS extended keywords
- UNDNAME_NO_FUNCTION_RETURNS = $0004; // Disable expansion of return type for primary declaration
- UNDNAME_NO_ALLOCATION_MODEL = $0008; // Disable expansion of the declaration model
- UNDNAME_NO_ALLOCATION_LANGUAGE = $0010; // Disable expansion of the declaration language specifier
- UNDNAME_NO_MS_THISTYPE = $0020; // NYI Disable expansion of MS keywords on the 'this' type for primary declaration
- UNDNAME_NO_CV_THISTYPE = $0040; // NYI Disable expansion of CV modifiers on the 'this' type for primary declaration
- UNDNAME_NO_THISTYPE = $0060; // Disable all modifiers on the 'this' type
- UNDNAME_NO_ACCESS_SPECIFIERS = $0080; // Disable expansion of access specifiers for members
- UNDNAME_NO_THROW_SIGNATURES = $0100; // Disable expansion of 'throw-signatures' for functions and pointers to functions
- UNDNAME_NO_MEMBER_TYPE = $0200; // Disable expansion of 'static' or 'virtual'ness of members
- UNDNAME_NO_RETURN_UDT_MODEL = $0400; // Disable expansion of MS model for UDT returns
- UNDNAME_32_BIT_DECODE = $0800; // Undecorate 32-bit decorated names
- UNDNAME_NAME_ONLY = $1000; // Crack only the name for primary declaration;
- // return just [scope::]name. Does expand template params
- UNDNAME_NO_ARGUMENTS = $2000; // Don't undecorate arguments to function
- UNDNAME_NO_SPECIAL_SYMS = $4000; // Don't undecorate special names (v-table, vcall, vector xxx, metatype, etc)
- SYMFLAG_VALUEPRESENT = $00000001;
- SYMFLAG_REGISTER = $00000008;
- SYMFLAG_REGREL = $00000010;
- SYMFLAG_FRAMEREL = $00000020;
- SYMFLAG_PARAMETER = $00000040;
- SYMFLAG_LOCAL = $00000080;
- SYMFLAG_CONSTANT = $00000100;
- SYMFLAG_EXPORT = $00000200;
- SYMFLAG_FORWARDER = $00000400;
- SYMFLAG_FUNCTION = $00000800;
- SYMFLAG_VIRTUAL = $00001000;
- SYMFLAG_THUNK = $00002000;
- SYMFLAG_TLSREL = $00004000;
- CBA_DEFERRED_SYMBOL_LOAD_START = $00000001;
- CBA_DEFERRED_SYMBOL_LOAD_COMPLETE = $00000002;
- CBA_DEFERRED_SYMBOL_LOAD_FAILURE = $00000003;
- CBA_SYMBOLS_UNLOADED = $00000004;
- CBA_DUPLICATE_SYMBOL = $00000005;
- CBA_READ_MEMORY = $00000006;
- CBA_DEFERRED_SYMBOL_LOAD_CANCEL = $00000007;
- CBA_SET_OPTIONS = $00000008;
- CBA_EVENT = $00000010;
- CBA_DEFERRED_SYMBOL_LOAD_PARTIAL = $00000020;
- CBA_DEBUG_INFO = $10000000;
- DSLFLAG_MISMATCHED_PDB = $1;
- DSLFLAG_MISMATCHED_DBG = $2;
- SYMOPT_CASE_INSENSITIVE = $00000001;
- SYMOPT_UNDNAME = $00000002;
- SYMOPT_DEFERRED_LOADS = $00000004;
- SYMOPT_NO_CPP = $00000008;
- SYMOPT_LOAD_LINES = $00000010;
- SYMOPT_OMAP_FIND_NEAREST = $00000020;
- SYMOPT_LOAD_ANYTHING = $00000040;
- SYMOPT_IGNORE_CVREC = $00000080;
- SYMOPT_NO_UNQUALIFIED_LOADS = $00000100;
- SYMOPT_FAIL_CRITICAL_ERRORS = $00000200;
- SYMOPT_EXACT_SYMBOLS = $00000400;
- SYMOPT_ALLOW_ABSOLUTE_SYMBOLS = $00000800;
- SYMOPT_IGNORE_NT_SYMPATH = $00001000;
- SYMOPT_INCLUDE_32BIT_MODULES = $00002000;
- SYMOPT_PUBLICS_ONLY = $00004000;
- SYMOPT_NO_PUBLICS = $00008000;
- SYMOPT_AUTO_PUBLICS = $00010000;
- SYMOPT_NO_IMAGE_SEARCH = $00020000;
- SYMOPT_SECURE = $00040000;
- SYMOPT_NO_PROMPTS = $00080000;
- SYMOPT_DEBUG = $80000000;
- SYMENUMFLAG_FULLSRCH = 1;
- SYMENUMFLAG_SPEEDSRCH = 2;
- SYMF_OMAP_GENERATED = $00000001;
- SYMF_OMAP_MODIFIED = $00000002;
- SYMF_REGISTER = $00000008;
- SYMF_REGREL = $00000010;
- SYMF_FRAMEREL = $00000020;
- SYMF_PARAMETER = $00000040;
- SYMF_LOCAL = $00000080;
- SYMF_CONSTANT = $00000100;
- SYMF_EXPORT = $00000200;
- SYMF_FORWARDER = $00000400;
- SYMF_FUNCTION = $00000800;
- SYMF_VIRTUAL = $00001000;
- SYMF_THUNK = $00002000;
- SYMF_TLSREL = $00004000;
- // These values should also not be used.
- // They have been replaced by SYMFLAG_ values.
- IMAGEHLP_SYMBOL_INFO_VALUEPRESENT = 1;
- IMAGEHLP_SYMBOL_INFO_REGISTER = SYMF_REGISTER ; // = $0008
- IMAGEHLP_SYMBOL_INFO_REGRELATIVE = SYMF_REGREL ; // = $0010
- IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE = SYMF_FRAMEREL ; // = $0020
- IMAGEHLP_SYMBOL_INFO_PARAMETER = SYMF_PARAMETER ; // = $0040
- IMAGEHLP_SYMBOL_INFO_LOCAL = SYMF_LOCAL ; // = $0080
- IMAGEHLP_SYMBOL_INFO_CONSTANT = SYMF_CONSTANT ; // = $0100
- IMAGEHLP_SYMBOL_FUNCTION = SYMF_FUNCTION; // = $0800
- IMAGEHLP_SYMBOL_VIRTUAL = SYMF_VIRTUAL; // = $1000
- IMAGEHLP_SYMBOL_THUNK = SYMF_THUNK ; // = $2000
- IMAGEHLP_SYMBOL_INFO_TLSRELATIVE = SYMF_TLSREL; // = $4000
- MINIDUMP_MISC1_PROCESS_ID = $00000001;
- MINIDUMP_MISC1_PROCESS_TIMES = $00000002;
-
- Type
- DIGEST_HANDLE = POINTER;
- TDIGEST_HANDLE = DIGEST_HANDLE;
- PRVA = ^TRVA;
- TRVA = dword;
- RVA = TRVA;
- ULONG64 = QWORD; // to windows unit ?
- ULONG32 = CARDINAL;
- PRVA64 = ^TRVA64;
- TRVA64 = ULONG64;
- RVA64 = TRVA64;
- PPSTR = ^PSTR;
- _IMAGEHLP_STATUS_REASON =(
- BindOutOfMemory,
- BindRvaToVaFailed,
- BindNoRoomInImage,
- BindImportModuleFailed,
- BindImportProcedureFailed,
- BindImportModule,
- BindImportProcedure,
- BindForwarder,
- BindForwarderNOT,
- BindImageModified,
- BindExpandFileHeaders,
- BindImageComplete,
- BindMismatchedSymbols,
- BindSymbolsNotUpdated,
- BindImportProcedure32,
- BindImportProcedure64,
- BindForwarder32,
- BindForwarder64,
- BindForwarderNOT32,
- BindForwarderNOT64);
- IMAGEHLP_STATUS_REASON = _IMAGEHLP_STATUS_REASON;
- TIMAGEHLP_STATUS_REASON = _IMAGEHLP_STATUS_REASON;
- ADDRESS_MODE =(
- AddrMode1616,
- AddrMode1632,
- AddrModeReal,
- AddrModeFlat);
- TADDRESS_MODE = ADDRESS_MODE;
- SYM_TYPE =(
- SymNone = 0,
- SymCoff,
- SymCv,
- SymPdb,
- SymExport,
- SymDeferred,
- SymSym, // .sym file
- SymDia,
- SymVirtual,
- NumSymTypes);
- TSYM_TYPE = SYM_TYPE;
-
- _IMAGEHLP_SYMBOL_TYPE_INFO = (
- TI_GET_SYMTAG,
- TI_GET_SYMNAME,
- TI_GET_LENGTH,
- TI_GET_TYPE,
- TI_GET_TYPEID,
- TI_GET_BASETYPE,
- TI_GET_ARRAYINDEXTYPEID,
- TI_FINDCHILDREN,
- TI_GET_DATAKIND,
- TI_GET_ADDRESSOFFSET,
- TI_GET_OFFSET,
- TI_GET_VALUE,
- TI_GET_COUNT,
- TI_GET_CHILDRENCOUNT,
- TI_GET_BITPOSITION,
- TI_GET_VIRTUALBASECLASS,
- TI_GET_VIRTUALTABLESHAPEID,
- TI_GET_VIRTUALBASEPOINTEROFFSET,
- TI_GET_CLASSPARENTID,
- TI_GET_NESTED,
- TI_GET_SYMINDEX,
- TI_GET_LEXICALPARENT,
- TI_GET_ADDRESS,
- TI_GET_THISADJUST,
- TI_GET_UDTKIND,
- TI_IS_EQUIV_TO,
- TI_GET_CALLING_CONVENTION);
- IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO;
- TIMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO;
- _MINIDUMP_STREAM_TYPE = (
- 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,
- UnloadedModuleListStream = 14,
- MiscInfoStream = 15,
- LastReservedStream = $ffff);
- MINIDUMP_STREAM_TYPE = _MINIDUMP_STREAM_TYPE;
-
- _MINIDUMP_CALLBACK_TYPE =(
- ModuleCallback,
- ThreadCallback,
- ThreadExCallback,
- IncludeThreadCallback,
- IncludeModuleCallback,
- MemoryCallback);
- MINIDUMP_CALLBACK_TYPE = _MINIDUMP_CALLBACK_TYPE;
- _THREAD_WRITE_FLAGS =(
- ThreadWriteThread = $0001,
- ThreadWriteStack = $0002,
- ThreadWriteContext = $0004,
- ThreadWriteBackingStore = $0008,
- ThreadWriteInstructionWindow = $0010,
- ThreadWriteThreadData = $0020);
- THREAD_WRITE_FLAGS = _THREAD_WRITE_FLAGS;
- _MODULE_WRITE_FLAGS =(
- ModuleWriteModule = $0001,
- ModuleWriteDataSeg = $0002,
- ModuleWriteMiscRecord = $0004,
- ModuleWriteCvRecord = $0008,
- ModuleReferencedByMemory = $0010);
- MODULE_WRITE_FLAGS = _MODULE_WRITE_FLAGS;
-
- tagan = (
- sevInfo = 0,
- sevProblem,
- sevAttn,
- sevFatal,
- sevMax );
-
- Anonymous = (
- hdBase = 0, // root directory for dbghelp
- hdSym, // where symbols are stored
- hdSrc, // where source is stored
- hdMax // end marker
- );
-
- _MINIDUMP_TYPE = (
- MiniDumpNormal = $0000,
- MiniDumpWithDataSegs = $0001,
- MiniDumpWithFullMemory = $0002,
- MiniDumpWithHandleData = $0004,
- MiniDumpFilterMemory = $0008,
- MiniDumpScanMemory = $0010,
- MiniDumpWithUnloadedModules = $0020,
- MiniDumpWithIndirectlyReferencedMemory = $0040,
- MiniDumpFilterModulePaths = $0080,
- MiniDumpWithProcessThreadData = $0100,
- MiniDumpWithPrivateReadWriteMemory = $0200,
- MiniDumpWithoutOPTIONALData = $0400);
- MINIDUMP_TYPE = _MINIDUMP_TYPE;
- TMINIDUMP_TYPE = _MINIDUMP_TYPE;
-
- TLOADED_IMAGE = record
- ModuleName : PSTR;
- hFile : THANDLE;
- MappedAddress : PUCHAR;
- {$ifdef IMAGEHLP64}
- FileHeader : PIMAGE_NT_HEADERS64;
- {$else}
- FileHeader : PIMAGE_NT_HEADERS32;
- {$endif}
- LastRvaSection : PIMAGE_SECTION_HEADER;
- NumberOfSections : ULONG;
- Sections : PIMAGE_SECTION_HEADER;
- Characteristics : ULONG;
- fSystemImage : bytebool;
- fDOSImage : bytebool;
- Links : TLISTENTRY;
- SizeOfImage : ULONG;
- end;
- LOADED_IMAGE = TLOADED_IMAGE;
- PLOADED_IMAGE = ^TLOADED_IMAGE;
- PPLOADED_IMAGE = ^PLOADED_IMAGE;
- {$ifndef win64}
- PIMAGE_DEBUG_INFORMATION = ^TIMAGE_DEBUG_INFORMATION;
- TIMAGE_DEBUG_INFORMATION = record
- List : TLISTENTRY;
- ReservedSize : DWORD;
- ReservedMappedBase : POINTER;
- ReservedMachine : USHORT;
- ReservedCharacteristics : USHORT;
- 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 : pointer;
- ImageFilePath : PSTR;
- ImageFileName : PSTR;
- ReservedDebugFilePath : PSTR;
- ReservedTimeDateStamp : DWORD;
- ReservedRomImage : bool;
- ReservedDebugDirectory : PIMAGE_DEBUG_DIRECTORY;
- ReservedNumberOfDebugDirectories : DWORD;
- ReservedOriginalFunctionTableBaseAddress : DWORD;
- Reserved : array[0..1] of DWORD;
- end;
- IMAGE_DEBUG_INFORMATION = TIMAGE_DEBUG_INFORMATION;
- {$ENDIF}
- PMODLOAD_DATA = ^TMODLOAD_DATA;
- TMODLOAD_DATA = record
- ssize : DWORD;
- ssig : DWORD;
- data : POINTER;
- _size : DWORD;
- flags : DWORD;
- end;
- MODLOAD_DATA = TMODLOAD_DATA;
- tagADDRESS64 = record
- Offset : dword64;
- Segment : word;
- Mode : TADDRESS_MODE;
- end;
- TADDRESS64 = tagADDRESS64;
- PADDRESS64 = ^TADDRESS64;
- LPADDRESS64 = PADDRESS64;
- {$IFDEF IMAGEHLP64}
- TADDRESS=TADDRESS64;
- PADDRESS=PADDRESS64;
- LPADDRESS=PADDRESS64;
- {$ELSE}
- tagADDRESS = record
- Offset : dword;
- Segment : word;
- Mode : TADDRESS_MODE;
- end;
- TADDRESS = tagADDRESS;
- PADDRESS = ^TADDRESS;
- LPADDRESS = PADDRESS;
- {$ENDIF}
- PKDHELP64 = ^TKDHELP64;
- TKDHELP64 = record
- Thread : DWORD64;
- ThCallbackStack : DWORD;
- ThCallbackBStore : DWORD;
- NextCallback : DWORD;
- FramePointer : DWORD;
- KiCallUserMode : DWORD64;
- KeUserCallbackDispatcher : DWORD64;
- SystemRangeStart : DWORD64;
- Reserved : array[0..7] of DWORD64;
- end;
- KDHELP64 = TKDHELP64;
- {$IFDEF IMAGEHLP64}
- TKDHELP = KDHELP64;
- KDHELP = KDHELP64;
- PKDHELP = PKDHELP64;
- {$ELSE}
- PKDHELP = ^TKDHELP;
- TKDHELP = record
- Thread : DWORD;
- ThCallbackStack : DWORD;
- NextCallback : DWORD;
- FramePointer : DWORD;
- KiCallUserMode : DWORD;
- KeUserCallbackDispatcher : DWORD;
- SystemRangeStart : DWORD;
- ThCallbackBStore : DWORD;
- Reserved : array[0..7] of DWORD;
- end;
- KDHELP = TKDHELP;
- {$ENDIF}
- tagSTACKFRAME64 = record
- AddrPC : TADDRESS64;
- AddrReturn : TADDRESS64;
- AddrFrame : TADDRESS64;
- AddrStack : TADDRESS64;
- AddrBStore : TADDRESS64;
- FuncTableEntry : POINTER;
- Params : array[0..3] of DWORD64;
- Far : BOOL;
- Virtual : BOOL;
- Reserved : array[0..2] of DWORD64;
- KdHelp : TKDHELP64;
- end;
- TSTACKFRAME64 = tagSTACKFRAME64;
- PSTACKFRAME64 = ^TSTACKFRAME64;
- LPSTACKFRAME64= ^TSTACKFRAME64;
- {$IFDEF IMAGEHLP64}
- STACKFRAME = TSTACKFRAME64;
- LPSTACKFRAME = LPSTACKFRAME64;
- TSTACKFRAME = TSTACKFRAME64;
- PSTACKFRAME = PSTACKFRAME64;
- {$ELSE}
- tagSTACKFRAME = record
- AddrPC : TADDRESS;
- AddrReturn : TADDRESS;
- AddrFrame : TADDRESS;
- AddrStack : TADDRESS;
- FuncTableEntry : POINTER;
- Params : array[0..3] of DWORD;
- _Far : BOOL;
- _Virtual : BOOL;
- Reserved : array[0..2] of DWORD;
- KdHelp : TKDHELP;
- AddrBStore : TADDRESS;
- end;
- TSTACKFRAME = tagSTACKFRAME;
- PSTACKFRAME = ^TSTACKFRAME;
- LPSTACKFRAME= ^TSTACKFRAME;
- {$ENDIF}
- PAPI_VERSION = ^TAPI_VERSION;
- LPAPI_VERSION= PAPI_VERSION;
- TAPI_VERSION = record
- MajorVersion : ushort;
- MinorVersion : ushort;
- Revision : ushort;
- Reserved : ushort;
- end;
- API_VERSION = TAPI_VERSION;
-
- PIMAGEHLP_SYMBOL64 = ^TIMAGEHLP_SYMBOL64;
- TIMAGEHLP_SYMBOL64 = record
- SizeOfStruct : dword;
- Address : dword64;
- Size : dword;
- Flags : dword;
- MaxNameLength : dword;
- Name : array[0..0] of TCHAR;
- end;
- IMAGEHLP_SYMBOL64 = TIMAGEHLP_SYMBOL64;
- LPIMAGEHLP_SYMBOL64 = PIMAGEHLP_SYMBOL64;
-
- PIMAGEHLP_SYMBOL64_PACKAGE = ^TIMAGEHLP_SYMBOL64_PACKAGE;
- TIMAGEHLP_SYMBOL64_PACKAGE = record
- sym : TIMAGEHLP_SYMBOL64;
- name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
- end;
- IMAGEHLP_SYMBOL64_PACKAGE = TIMAGEHLP_SYMBOL64_PACKAGE;
- LPIMAGEHLP_SYMBOL64_PACKAGE = ^TIMAGEHLP_SYMBOL64_PACKAGE;
-
- {$IFDEF IMAGEHLP64}
- IMAGEHLP_SYMBOL = IMAGEHLP_SYMBOL64;
- TIMAGEHLP_SYMBOL = IMAGEHLP_SYMBOL64;
- PIMAGEHLP_SYMBOL = PIMAGEHLP_SYMBOL64;
- TIMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE;
- IMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE;
- PIMAGEHLP_SYMBOL_PACKAGE= PIMAGEHLP_SYMBOL64_PACKAGE;
- {$ELSE}
- PIMAGEHLP_SYMBOL = ^TIMAGEHLP_SYMBOL;
- TIMAGEHLP_SYMBOL = record
- SizeOfStruct : dword;
- Address : dword;
- Size : dword;
- Flags : dword;
- MaxNameLength : dword;
- Name : array[0..0] of TCHAR;
- end;
- IMAGEHLP_SYMBOL = TIMAGEHLP_SYMBOL;
- LPIMAGEHLP_SYMBOL = PIMAGEHLP_SYMBOL;
- PIMAGEHLP_SYMBOL_PACKAGE = ^TIMAGEHLP_SYMBOL_PACKAGE;
- TIMAGEHLP_SYMBOL_PACKAGE = record
- sym : TIMAGEHLP_SYMBOL;
- name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
- end;
- IMAGEHLP_SYMBOL_PACKAGE = TIMAGEHLP_SYMBOL_PACKAGE;
- LPIMAGEHLP_SYMBOL_PACKAGE = PIMAGEHLP_SYMBOL_PACKAGE;
- {$ENDIF}
- PIMAGEHLP_MODULE64 = ^TIMAGEHLP_MODULE64;
- TIMAGEHLP_MODULE64 = record
- SizeOfStruct : dword;
- BaseOfImage : dword64;
- ImageSize : dword;
- TimeDateStamp : dword;
- CheckSum : dword;
- NumSyms : dword;
- SymType : TSYM_TYPE;
- ModuleName : array[0..31] of TCHAR;
- ImageName : array[0..255] of TCHAR;
- LoadedImageName : array[0..255] of TCHAR;
- LoadedPdbName : array[0..255] of TCHAR;
- CVSig : dword;
- CVData : array[0..(MAX_PATH*3)-1] of TCHAR;
- PdbSig : dword;
- PdbSig70 : TGUID;
- PdbAge : dword;
- PdbUnmatched : bool;
- DbgUnmatched : bool;
- LineNumbers : bool;
- GlobalSymbols : bool;
- TypeInfo : bool;
- end;
- IMAGEHLP_MODULE64 = TIMAGEHLP_MODULE64;
-
- PIMAGEHLP_MODULE64W = ^TIMAGEHLP_MODULE64W;
- TIMAGEHLP_MODULE64W = record
- SizeOfStruct : dword;
- BaseOfImage : dword64;
- ImageSize : dword;
- TimeDateStamp : dword;
- CheckSum : dword;
- NumSyms : dword;
- SymType : TSYM_TYPE;
- ModuleName : array[0..31] of wchar;
- ImageName : array[0..255] of wchar;
- LoadedImageName : array[0..255] of wchar;
- LoadedPdbName : array[0..255] of wchar;
- CVSig : dword;
- CVData : array[0..(MAX_PATH*3)-1] of wchar;
- PdbSig : dword;
- PdbSig70 : TGUID;
- PdbAge : dword;
- PdbUnmatched : bool;
- DbgUnmatched : bool;
- LineNumbers : bool;
- GlobalSymbols : bool;
- TypeInfo : bool;
- end;
- IMAGEHLP_MODULE64W = TIMAGEHLP_MODULE64W;
- LPIMAGEHLP_MODULE64W = PIMAGEHLP_MODULE64W;
- IMAGEHLP_MODULEW64 = TIMAGEHLP_MODULE64W;
- TIMAGEHLP_MODULEW64 = TIMAGEHLP_MODULE64W;
- PIMAGEHLP_MODULEW64 = PIMAGEHLP_MODULE64W;
- {$IFDEF IMAGEHLP64}
- IMAGEHLP_MODULE = TIMAGEHLP_MODULE64;
- LPIMAGEHLP_MODULE = PIMAGEHLP_MODULE64;
- IMAGEHLP_MODULEW = TIMAGEHLP_MODULE64W;
- LPIMAGEHLP_MODULEW = PIMAGEHLP_MODULE64W;
- {$ELSE}
- PIMAGEHLP_MODULE = ^TIMAGEHLP_MODULE;
- TIMAGEHLP_MODULE = record
- SizeOfStruct : dword;
- BaseOfImage : dword;
- ImageSize : dword;
- TimeDateStamp : dword;
- CheckSum : dword;
- NumSyms : dword;
- SymType : TSYM_TYPE;
- ModuleName : array[0..31] of TCHAR;
- ImageName : array[0..255] of TCHAR;
- LoadedImageName : array[0..255] of TCHAR;
- end;
- IMAGEHLP_MODULE = TIMAGEHLP_MODULE;
- LPIMAGEHLP_MODULE = PIMAGEHLP_MODULE;
-
- PIMAGEHLP_MODULEW = ^TIMAGEHLP_MODULEW;
- TIMAGEHLP_MODULEW = record
- SizeOfStruct : dword;
- BaseOfImage : dword;
- ImageSize : dword;
- TimeDateStamp : dword;
- CheckSum : dword;
- NumSyms : dword;
- SymType : TSYM_TYPE;
- ModuleName : array[0..31] of wchar;
- ImageName : array[0..255] of wchar;
- LoadedImageName : array[0..255] of wchar;
- end;
- IMAGEHLP_MODULEW = TIMAGEHLP_MODULEW;
- LPIMAGEHLP_MODULEW = PIMAGEHLP_MODULEW;
- {$ENDIF}
-
- PIMAGEHLP_LINE64 = ^TIMAGEHLP_LINE64;
- TIMAGEHLP_LINE64 = record
- SizeOfStruct : dword;
- Key : pointer;
- LineNumber : dword;
- FileName : PAnsiChar;
- Address : dword64;
- end;
- IMAGEHLP_LINE64 = TIMAGEHLP_LINE64;
- LPIMAGEHLP_LINE64 = PIMAGEHLP_LINE64;
-
- {$ifdef IMAGEHLP64}
- IMAGEHLP_LINE = IMAGEHLP_LINE64;
- TIMAGEHLP_LINE = IMAGEHLP_LINE64;
- PIMAGEHLP_LINE = PIMAGEHLP_LINE64;
- LPIMAGEHLP_LINE = PIMAGEHLP_LINE64;
- {$else}
- PIMAGEHLP_LINE = ^TIMAGEHLP_LINE;
- TIMAGEHLP_LINE = record
- SizeOfStruct : dword;
- Key : pointer;
- LineNumber : dword;
- FileName : PAnsiChar;
- Address : dword;
- end;
- IMAGEHLP_LINE = TIMAGEHLP_LINE;
- LPIMAGEHLP_LINE = PIMAGEHLP_LINE;
- {$endif}
-
- PSOURCEFILE = ^TSOURCEFILE;
- TSOURCEFILE = record
- ModBase : dword64;
- FileName : PAnsiChar;
- end;
-
- PIMAGEHLP_CBA_READ_MEMORY = ^TIMAGEHLP_CBA_READ_MEMORY;
- TIMAGEHLP_CBA_READ_MEMORY = record
- addr : dword64;
- buf : pointer;
- bytes : dword;
- bytesread : PDWORD;
- end;
- IMAGEHLP_CBA_READ_MEMORY = TIMAGEHLP_CBA_READ_MEMORY;
- LPIMAGEHLP_CBA_READ_MEMORY = PIMAGEHLP_CBA_READ_MEMORY;
-
- PIMAGEHLP_CBA_EVENT = ^TIMAGEHLP_CBA_EVENT;
- TIMAGEHLP_CBA_EVENT = record
- severity : dword;
- code : dword;
- desc : PAnsiChar;
- _object : pointer;
- end;
- IMAGEHLP_CBA_EVENT = TIMAGEHLP_CBA_EVENT;
- LPIMAGEHLP_CBA_EVENT = PIMAGEHLP_CBA_EVENT;
-
- PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = ^TIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
- TIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = record
- SizeOfStruct : dword;
- BaseOfImage : dword64;
- CheckSum : dword;
- TimeDateStamp : dword;
- FileName : array[0..(MAX_PATH)-1] of TCHAR;
- Reparse : bytebool;
- hFile : THANDLE;
- Flags : dword;
- end;
- IMAGEHLP_DEFERRED_SYMBOL_LOAD64 = TIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
- LPIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = PIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
-
- {$ifdef IMAGEHLP64}
- IMAGEHLP_DEFERRED_SYMBOL_LOAD = IMAGEHLP_DEFERRED_SYMBOL_LOAD64;
- TIMAGEHLP_DEFERRED_SYMBOL_LOAD = IMAGEHLP_DEFERRED_SYMBOL_LOAD64;
- PIMAGEHLP_DEFERRED_SYMBOL_LOAD = PIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
- {$else}
- PIMAGEHLP_DEFERRED_SYMBOL_LOAD = ^TIMAGEHLP_DEFERRED_SYMBOL_LOAD;
- TIMAGEHLP_DEFERRED_SYMBOL_LOAD = record
- SizeOfStruct : dword;
- BaseOfImage : dword;
- CheckSum : dword;
- TimeDateStamp : dword;
- FileName : array[0..(MAX_PATH)-1] of TCHAR;
- Reparse : bytebool;
- hFile : THANDLE;
- end;
- IMAGEHLP_DEFERRED_SYMBOL_LOAD = TIMAGEHLP_DEFERRED_SYMBOL_LOAD;
- LPIMAGEHLP_DEFERRED_SYMBOL_LOAD = PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
- {$endif}
- PIMAGEHLP_DUPLICATE_SYMBOL64 = ^TIMAGEHLP_DUPLICATE_SYMBOL64;
- TIMAGEHLP_DUPLICATE_SYMBOL64 = record
- SizeOfStruct : dword;
- NumberOfDups : dword;
- Symbol : PIMAGEHLP_SYMBOL64;
- SelectedSymbol : dword;
- end;
- IMAGEHLP_DUPLICATE_SYMBOL64 = TIMAGEHLP_DUPLICATE_SYMBOL64;
- LPIMAGEHLP_DUPLICATE_SYMBOL64 = PIMAGEHLP_DUPLICATE_SYMBOL64;
- {$ifdef IMAGEHLP64}
- IMAGEHLP_DUPLICATE_SYMBOL = IMAGEHLP_DUPLICATE_SYMBOL64;
- PIMAGEHLP_DUPLICATE_SYMBOL = PIMAGEHLP_DUPLICATE_SYMBOL64;
- TIMAGEHLP_DUPLICATE_SYMBOL = IMAGEHLP_DUPLICATE_SYMBOL64;
- LPIMAGEHLP_DUPLICATE_SYMBOL = PIMAGEHLP_DUPLICATE_SYMBOL64;
- {$else}
- PIMAGEHLP_DUPLICATE_SYMBOL = ^TIMAGEHLP_DUPLICATE_SYMBOL;
- TIMAGEHLP_DUPLICATE_SYMBOL = record
- SizeOfStruct : dword;
- NumberOfDups : dword;
- Symbol : PIMAGEHLP_SYMBOL;
- SelectedSymbol : dword;
- end;
- IMAGEHLP_DUPLICATE_SYMBOL = TIMAGEHLP_DUPLICATE_SYMBOL;
- LPIMAGEHLP_DUPLICATE_SYMBOL = PIMAGEHLP_DUPLICATE_SYMBOL;
- {$endif}
- PSRCCODEINFO = ^TSRCCODEINFO;
- TSRCCODEINFO = record
- SizeOfStruct : dword;
- Key : pointer;
- ModBase : dword64;
- Obj : array[0..(MAX_PATH+1)-1] of TCHAR;
- FileName : array[0..(MAX_PATH+1)-1] of TCHAR;
- LineNumber : dword;
- Address : dword64;
- end;
- SRCCODEINFO = TSRCCODEINFO;
- LPSRCCODEINFO = PSRCCODEINFO;
- PIMAGEHLP_SYMBOL_SRC = ^TIMAGEHLP_SYMBOL_SRC;
- TIMAGEHLP_SYMBOL_SRC = record
- sizeofstruct : dword;
- _type : dword;
- _file : array[0..(MAX_PATH)-1] of AnsiChar;
- end;
- IMAGEHLP_SYMBOL_SRC = TIMAGEHLP_SYMBOL_SRC;
- LPIMAGEHLP_SYMBOL_SRC = PIMAGEHLP_SYMBOL_SRC;
-
- PMODULE_TYPE_INFO = ^TMODULE_TYPE_INFO;
- TMODULE_TYPE_INFO = record
- dataLength : USHORT;
- leaf : USHORT;
- data : array[0..0] of TBYTE;
- end;
- MODULE_TYPE_INFO = TMODULE_TYPE_INFO;
- LPMODULE_TYPE_INFO = PMODULE_TYPE_INFO;
-
- PSYMBOL_INFO = ^TSYMBOL_INFO;
- TSYMBOL_INFO = record
- SizeOfStruct : ULONG;
- TypeIndex : ULONG;
- Reserved : array[0..1] of ULONG64;
- info : ULONG;
- Size : ULONG;
- ModBase : ULONG64;
- Flags : ULONG;
- Value : ULONG64;
- Address : ULONG64;
- Register : ULONG;
- Scope : ULONG;
- Tag : ULONG;
- NameLen : ULONG;
- MaxNameLen : ULONG;
- Name : array[0..0] of TCHAR;
- end;
- SYMBOL_INFO = TSYMBOL_INFO;
- LPSYMBOL_INFO = PSYMBOL_INFO;
- PSYMBOL_INFO_PACKAGE = ^TSYMBOL_INFO_PACKAGE;
- TSYMBOL_INFO_PACKAGE = record
- si : TSYMBOL_INFO;
- name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
- end;
- SYMBOL_INFO_PACKAGE = TSYMBOL_INFO_PACKAGE;
- LPSYMBOL_INFO_PACKAGE = PSYMBOL_INFO_PACKAGE;
- PIMAGEHLP_STACK_FRAME = ^TIMAGEHLP_STACK_FRAME;
- TIMAGEHLP_STACK_FRAME = record
- InstructionOffset : ULONG64;
- ReturnOffset : ULONG64;
- FrameOffset : ULONG64;
- StackOffset : ULONG64;
- BackingStoreOffset : ULONG64;
- FuncTableEntry : ULONG64;
- Params : array[0..3] of ULONG64;
- Reserved : array[0..4] of ULONG64;
- Virtual : BOOL;
- Reserved2 : ULONG;
- end;
- IMAGEHLP_STACK_FRAME = TIMAGEHLP_STACK_FRAME;
- LPIMAGEHLP_STACK_FRAME = PIMAGEHLP_STACK_FRAME;
- PIMAGEHLP_CONTEXT = ^TIMAGEHLP_CONTEXT;
- TIMAGEHLP_CONTEXT = pointer;
- PPIMAGEHLP_CONTEXT = ^PIMAGEHLP_CONTEXT;
-
- PTI_FINDCHILDREN_PARAMS = ^TTI_FINDCHILDREN_PARAMS;
- TTI_FINDCHILDREN_PARAMS = record
- Count : ULONG;
- Start : ULONG;
- ChildId : array[0..0] of ULONG;
- end;
- PMINIDUMP_LOCATION_DESCRIPTOR = ^TMINIDUMP_LOCATION_DESCRIPTOR;
- TMINIDUMP_LOCATION_DESCRIPTOR = record
- DataSize : ULONG32;
- Rva : TRVA;
- end;
- MINIDUMP_LOCATION_DESCRIPTOR = TMINIDUMP_LOCATION_DESCRIPTOR ;
- PMINIDUMP_LOCATION_DESCRIPTOR64 = ^TMINIDUMP_LOCATION_DESCRIPTOR64;
- TMINIDUMP_LOCATION_DESCRIPTOR64 = record
- DataSize : ULONG64;
- Rva : TRVA64;
- end;
- MINIDUMP_LOCATION_DESCRIPTOR64 = TMINIDUMP_LOCATION_DESCRIPTOR64;
-
- PMINIDUMP_MEMORY_DESCRIPTOR = ^TMINIDUMP_MEMORY_DESCRIPTOR;
- TMINIDUMP_MEMORY_DESCRIPTOR = record
- StartOfMemoryRange : ULONG64;
- Memory : TMINIDUMP_LOCATION_DESCRIPTOR;
- end;
- MINIDUMP_MEMORY_DESCRIPTOR = TMINIDUMP_MEMORY_DESCRIPTOR;
- LPMINIDUMP_MEMORY_DESCRIPTOR = PMINIDUMP_MEMORY_DESCRIPTOR;
-
- PMINIDUMP_MEMORY_DESCRIPTOR64 = ^TMINIDUMP_MEMORY_DESCRIPTOR64;
- TMINIDUMP_MEMORY_DESCRIPTOR64 = record
- StartOfMemoryRange : ULONG64;
- DataSize : ULONG64;
- end;
- MINIDUMP_MEMORY_DESCRIPTOR64 = TMINIDUMP_MEMORY_DESCRIPTOR64;
- LPMINIDUMP_MEMORY_DESCRIPTOR64 = PMINIDUMP_MEMORY_DESCRIPTOR64;
- PMINIDUMP_HEADER = ^TMINIDUMP_HEADER;
- TMINIDUMP_HEADER = record
- Signature : ULONG32;
- Version : ULONG32;
- NumberOfStreams : ULONG32;
- StreamDirectoryRva : TRVA;
- CheckSum : ULONG32;
- a : packed record
- case longint of
- 0 : ( Reserved : ULONG32 );
- 1 : ( TimeDateStamp : ULONG32 );
- end;
- Flags : ULONG64;
- end;
- MINIDUMP_HEADER = TMINIDUMP_HEADER;
- LPMINIDUMP_HEADER = PMINIDUMP_HEADER;
-
- PMINIDUMP_DIRECTORY = ^TMINIDUMP_DIRECTORY;
- TMINIDUMP_DIRECTORY = record
- StreamType : ULONG32;
- Location : TMINIDUMP_LOCATION_DESCRIPTOR;
- end;
- MINIDUMP_DIRECTORY = TMINIDUMP_DIRECTORY;
- LPMINIDUMP_DIRECTORY = PMINIDUMP_DIRECTORY;
- PPMINIDUMP_DIRECTORY = ^PMINIDUMP_DIRECTORY;
-
- PMINIDUMP_STRING = ^TMINIDUMP_STRING;
- TMINIDUMP_STRING = record
- Length : ULONG32;
- Buffer : array[0..0] of WCHAR;
- end;
- MINIDUMP_STRING = TMINIDUMP_STRING;
- LPMINIDUMP_STRING = PMINIDUMP_STRING;
-
-
- PCPU_INFORMATION = ^TCPU_INFORMATION;
- TCPU_INFORMATION = record
- case longint of
- 0 : ( X86CpuInfo : packed record
- VendorId : array[0..2] of ULONG32;
- VersionInformation : ULONG32;
- FeatureInformation : ULONG32;
- AMDExtendedCpuFeatures : ULONG32;
- end );
- 1 : ( OtherCpuInfo : packed record
- ProcessorFeatures : array[0..1] of ULONG64;
- end );
- end;
- CPU_INFORMATION = TCPU_INFORMATION;
- LPCPU_INFORMATION = PCPU_INFORMATION;
-
- PMINIDUMP_SYSTEM_INFO = ^TMINIDUMP_SYSTEM_INFO;
- TMINIDUMP_SYSTEM_INFO = record
- ProcessorArchitecture : USHORT;
- ProcessorLevel : USHORT;
- ProcessorRevision : USHORT;
- c : packed record
- case longint of
- 0 : ( Reserved0 : USHORT );
- 1 : ( b : packed record
- NumberOfProcessors : UCHAR;
- ProductType : UCHAR;
- end );
- end;
- MajorVersion : ULONG32;
- MinorVersion : ULONG32;
- BuildNumber : ULONG32;
- PlatformId : ULONG32;
- CSDVersionRva : TRVA;
- e : packed record
- case longint of
- 0 : ( Reserved1 : ULONG32 );
- 1 : ( d : packed record
- SuiteMask : USHORT;
- Reserved2 : USHORT;
- end );
- end;
- Cpu : TCPU_INFORMATION;
- end;
- MINIDUMP_SYSTEM_INFO = TMINIDUMP_SYSTEM_INFO;
- LPMINIDUMP_SYSTEM_INFO = PMINIDUMP_SYSTEM_INFO;
-
- PMINIDUMP_THREAD = ^TMINIDUMP_THREAD;
- TMINIDUMP_THREAD = record
- ThreadId : ULONG32;
- SuspendCount : ULONG32;
- PriorityClass : ULONG32;
- Priority : ULONG32;
- Teb : ULONG64;
- Stack : TMINIDUMP_MEMORY_DESCRIPTOR;
- ThreadContext : TMINIDUMP_LOCATION_DESCRIPTOR;
- end;
- MINIDUMP_THREAD = TMINIDUMP_THREAD;
- LPMINIDUMP_THREAD = PMINIDUMP_THREAD;
-
- PMINIDUMP_THREAD_LIST = ^TMINIDUMP_THREAD_LIST;
- TMINIDUMP_THREAD_LIST = record
- NumberOfThreads : ULONG32;
- Threads : array[0..0] of TMINIDUMP_THREAD;
- end;
- MINIDUMP_THREAD_LIST = TMINIDUMP_THREAD_LIST;
- LPMINIDUMP_THREAD_LIST = PMINIDUMP_THREAD_LIST;
- PMINIDUMP_THREAD_EX = ^TMINIDUMP_THREAD_EX;
- TMINIDUMP_THREAD_EX = record
- ThreadId : ULONG32;
- SuspendCount : ULONG32;
- PriorityClass : ULONG32;
- Priority : ULONG32;
- Teb : ULONG64;
- Stack : TMINIDUMP_MEMORY_DESCRIPTOR;
- ThreadContext : TMINIDUMP_LOCATION_DESCRIPTOR;
- BackingStore : TMINIDUMP_MEMORY_DESCRIPTOR;
- end;
- MINIDUMP_THREAD_EX = PMINIDUMP_THREAD_EX;
- LPMINIDUMP_THREAD_EX = PMINIDUMP_THREAD_EX;
-
- PMINIDUMP_THREAD_EX_LIST = ^TMINIDUMP_THREAD_EX_LIST;
- TMINIDUMP_THREAD_EX_LIST = record
- NumberOfThreads : ULONG32;
- Threads : array[0..0] of TMINIDUMP_THREAD_EX;
- end;
- MINIDUMP_THREAD_EX_LIST = TMINIDUMP_THREAD_EX_LIST;
- LPMINIDUMP_THREAD_EX_LIST = PMINIDUMP_THREAD_EX_LIST;
-
- PMINIDUMP_EXCEPTION = ^TMINIDUMP_EXCEPTION;
- TMINIDUMP_EXCEPTION = record
- ExceptionCode : ULONG32;
- ExceptionFlags : ULONG32;
- ExceptionRecord : ULONG64;
- ExceptionAddress : ULONG64;
- NumberParameters : ULONG32;
- __unusedAlignment : ULONG32;
- ExceptionInformation : array[0..(EXCEPTION_MAXIMUM_PARAMETERS)-1] of ULONG64;
- end;
- MINIDUMP_EXCEPTION = TMINIDUMP_EXCEPTION;
- LPMINIDUMP_EXCEPTION = PMINIDUMP_EXCEPTION;
-
- PMINIDUMP_EXCEPTION_STREAM = ^TMINIDUMP_EXCEPTION_STREAM;
- TMINIDUMP_EXCEPTION_STREAM = record
- ThreadId : ULONG32;
- __alignment : ULONG32;
- ExceptionRecord : TMINIDUMP_EXCEPTION;
- ThreadContext : TMINIDUMP_LOCATION_DESCRIPTOR;
- end;
- MINIDUMP_EXCEPTION_STREAM = TMINIDUMP_EXCEPTION_STREAM;
- LPMINIDUMP_EXCEPTION_STREAM = PMINIDUMP_EXCEPTION_STREAM;
-
- PMINIDUMP_MODULE = ^TMINIDUMP_MODULE;
- TMINIDUMP_MODULE = record
- BaseOfImage : ULONG64;
- SizeOfImage : ULONG32;
- CheckSum : ULONG32;
- TimeDateStamp : ULONG32;
- ModuleNameRva : TRVA;
- VersionInfo : TVSFIXEDFILEINFO;
- CvRecord : TMINIDUMP_LOCATION_DESCRIPTOR;
- MiscRecord : TMINIDUMP_LOCATION_DESCRIPTOR;
- Reserved0 : ULONG64;
- Reserved1 : ULONG64;
- end;
- MINIDUMP_MODULE = TMINIDUMP_MODULE;
- LPMINIDUMP_MODULE = PMINIDUMP_MODULE;
-
- PMINIDUMP_MODULE_LIST = ^TMINIDUMP_MODULE_LIST;
- TMINIDUMP_MODULE_LIST = record
- NumberOfModules : ULONG32;
- Modules : array[0..0] of TMINIDUMP_MODULE;
- end;
- MINIDUMP_MODULE_LIST = TMINIDUMP_MODULE_LIST;
- LPMINIDUMP_MODULE_LIST = PMINIDUMP_MODULE_LIST;
-
- PMINIDUMP_MEMORY_LIST = ^TMINIDUMP_MEMORY_LIST;
- TMINIDUMP_MEMORY_LIST = record
- NumberOfMemoryRanges : ULONG32;
- MemoryRanges : array[0..0] of TMINIDUMP_MEMORY_DESCRIPTOR;
- end;
- MINIDUMP_MEMORY_LIST = TMINIDUMP_MEMORY_LIST;
- LPMINIDUMP_MEMORY_LIST = PMINIDUMP_MEMORY_LIST;
- PMINIDUMP_MEMORY64_LIST = ^TMINIDUMP_MEMORY64_LIST;
- TMINIDUMP_MEMORY64_LIST = record
- NumberOfMemoryRanges : ULONG64;
- BaseRva : TRVA64;
- MemoryRanges : array[0..0] of TMINIDUMP_MEMORY_DESCRIPTOR64;
- end;
- MINIDUMP_MEMORY64_LIST = TMINIDUMP_MEMORY64_LIST;
- LPMINIDUMP_MEMORY64_LIST = PMINIDUMP_MEMORY64_LIST;
-
- PMINIDUMP_EXCEPTION_INFORMATION = ^TMINIDUMP_EXCEPTION_INFORMATION;
- TMINIDUMP_EXCEPTION_INFORMATION = record
- ThreadId : dword;
- ExceptionPointers : PEXCEPTION_POINTERS;
- ClientPointers : BOOL;
- end;
- MINIDUMP_EXCEPTION_INFORMATION = TMINIDUMP_EXCEPTION_INFORMATION;
- LPMINIDUMP_EXCEPTION_INFORMATION = PMINIDUMP_EXCEPTION_INFORMATION;
- PMINIDUMP_EXCEPTION_INFORMATION64 = ^TMINIDUMP_EXCEPTION_INFORMATION64;
- TMINIDUMP_EXCEPTION_INFORMATION64 = record
- ThreadId : dword;
- ExceptionRecord : ULONG64;
- ContextRecord : ULONG64;
- ClientPointers : BOOL;
- end;
- MINIDUMP_EXCEPTION_INFORMATION64 = TMINIDUMP_EXCEPTION_INFORMATION64;
- LPMINIDUMP_EXCEPTION_INFORMATION64 = PMINIDUMP_EXCEPTION_INFORMATION64;
-
- PMINIDUMP_HANDLE_DESCRIPTOR = ^TMINIDUMP_HANDLE_DESCRIPTOR;
- TMINIDUMP_HANDLE_DESCRIPTOR = record
- Handle : ULONG64;
- TypeNameRva : TRVA;
- ObjectNameRva : TRVA;
- Attributes : ULONG32;
- GrantedAccess : ULONG32;
- HandleCount : ULONG32;
- PointerCount : ULONG32;
- end;
- MINIDUMP_HANDLE_DESCRIPTOR = TMINIDUMP_HANDLE_DESCRIPTOR;
- LPMINIDUMP_HANDLE_DESCRIPTOR = PMINIDUMP_HANDLE_DESCRIPTOR;
- PMINIDUMP_HANDLE_DATA_STREAM = ^TMINIDUMP_HANDLE_DATA_STREAM;
- TMINIDUMP_HANDLE_DATA_STREAM = record
- SizeOfHeader : ULONG32;
- SizeOfDescriptor : ULONG32;
- NumberOfDescriptors : ULONG32;
- Reserved : ULONG32;
- end;
- MINIDUMP_HANDLE_DATA_STREAM = TMINIDUMP_HANDLE_DATA_STREAM;
- LPMINIDUMP_HANDLE_DATA_STREAM = PMINIDUMP_HANDLE_DATA_STREAM;
-
- PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = ^TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
- TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = record
- MinimumAddress : ULONG64;
- MaximumAddress : ULONG64;
- BaseAddress : ULONG64;
- EntryCount : ULONG32;
- SizeOfAlignPad : ULONG32;
- end;
- MINIDUMP_FUNCTION_TABLE_DESCRIPTOR = TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
- LPMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
- PMINIDUMP_FUNCTION_TABLE_STREAM = ^TMINIDUMP_FUNCTION_TABLE_STREAM;
- TMINIDUMP_FUNCTION_TABLE_STREAM = record
- SizeOfHeader : ULONG32;
- SizeOfDescriptor : ULONG32;
- SizeOfNativeDescriptor : ULONG32;
- SizeOfFunctionEntry : ULONG32;
- NumberOfDescriptors : ULONG32;
- SizeOfAlignPad : ULONG32;
- end;
- MINIDUMP_FUNCTION_TABLE_STREAM = TMINIDUMP_FUNCTION_TABLE_STREAM;
- LPPMINIDUMP_FUNCTION_TABLE_STREAM = PMINIDUMP_FUNCTION_TABLE_STREAM;
-
- PMINIDUMP_UNLOADED_MODULE = ^TMINIDUMP_UNLOADED_MODULE;
- TMINIDUMP_UNLOADED_MODULE = record
- BaseOfImage : ULONG64;
- SizeOfImage : ULONG32;
- CheckSum : ULONG32;
- TimeDateStamp : ULONG32;
- ModuleNameRva : TRVA;
- end;
- MINIDUMP_UNLOADED_MODULE = TMINIDUMP_UNLOADED_MODULE;
- LPMINIDUMP_UNLOADED_MODULE = PMINIDUMP_UNLOADED_MODULE;
-
- PMINIDUMP_UNLOADED_MODULE_LIST = ^TMINIDUMP_UNLOADED_MODULE_LIST;
- TMINIDUMP_UNLOADED_MODULE_LIST = record
- SizeOfHeader : ULONG32;
- SizeOfEntry : ULONG32;
- NumberOfEntries : ULONG32;
- end;
- MINIDUMP_UNLOADED_MODULE_LIST = TMINIDUMP_UNLOADED_MODULE_LIST;
- LPMINIDUMP_UNLOADED_MODULE_LIST = PMINIDUMP_UNLOADED_MODULE_LIST;
-
- PMINIDUMP_MISC_INFO = ^TMINIDUMP_MISC_INFO;
- TMINIDUMP_MISC_INFO = record
- SizeOfInfo : ULONG32;
- Flags1 : ULONG32;
- ProcessId : ULONG32;
- ProcessCreateTime : ULONG32;
- ProcessUserTime : ULONG32;
- ProcessKernelTime : ULONG32;
- end;
- MINIDUMP_MISC_INFO = TMINIDUMP_MISC_INFO;
- LPMINIDUMP_MISC_INFO = PMINIDUMP_MISC_INFO;
- PMINIDUMP_USER_RECORD = ^TMINIDUMP_USER_RECORD;
- TMINIDUMP_USER_RECORD = record
- _Type : ULONG32;
- Memory : TMINIDUMP_LOCATION_DESCRIPTOR;
- end;
- MINIDUMP_USER_RECORD = TMINIDUMP_USER_RECORD;
- LPMINIDUMP_USER_RECORD = PMINIDUMP_USER_RECORD;
- PMINIDUMP_USER_STREAM = ^TMINIDUMP_USER_STREAM;
- TMINIDUMP_USER_STREAM = record
- _Type : ULONG32;
- BufferSize : ULONG;
- Buffer : pointer;
- end;
- MINIDUMP_USER_STREAM = TMINIDUMP_USER_STREAM;
- LPMINIDUMP_USER_STREAM = PMINIDUMP_USER_STREAM;
- PMINIDUMP_USER_STREAM_INFORMATION = ^TMINIDUMP_USER_STREAM_INFORMATION;
- TMINIDUMP_USER_STREAM_INFORMATION = record
- UserStreamCount : ULONG;
- UserStreamArray : PMINIDUMP_USER_STREAM;
- end;
- MINIDUMP_USER_STREAM_INFORMATION = TMINIDUMP_USER_STREAM_INFORMATION;
- LPMINIDUMP_USER_STREAM_INFORMATION = PMINIDUMP_USER_STREAM_INFORMATION;
-
- PMINIDUMP_THREAD_CALLBACK = ^TMINIDUMP_THREAD_CALLBACK;
- TMINIDUMP_THREAD_CALLBACK = record
- ThreadId : ULONG;
- ThreadHandle : THANDLE;
- Context : TCONTEXT;
- SizeOfContext : ULONG;
- StackBase : ULONG64;
- StackEnd : ULONG64;
- end;
- MINIDUMP_THREAD_CALLBACK = TMINIDUMP_THREAD_CALLBACK;
- LPMINIDUMP_THREAD_CALLBACK = PMINIDUMP_THREAD_CALLBACK;
- PMINIDUMP_THREAD_EX_CALLBACK = ^TMINIDUMP_THREAD_EX_CALLBACK;
- TMINIDUMP_THREAD_EX_CALLBACK = record
- ThreadId : ULONG;
- ThreadHandle : THANDLE;
- Context : TCONTEXT;
- SizeOfContext : ULONG;
- StackBase : ULONG64;
- StackEnd : ULONG64;
- BackingStoreBase : ULONG64;
- BackingStoreEnd : ULONG64;
- end;
- MINIDUMP_THREAD_EX_CALLBACK = TMINIDUMP_THREAD_EX_CALLBACK;
- LPMINIDUMP_THREAD_EX_CALLBACK = PMINIDUMP_THREAD_EX_CALLBACK;
- PMINIDUMP_INCLUDE_THREAD_CALLBACK = ^TMINIDUMP_INCLUDE_THREAD_CALLBACK;
- TMINIDUMP_INCLUDE_THREAD_CALLBACK = record
- ThreadId : ULONG;
- end;
- MINIDUMP_INCLUDE_THREAD_CALLBACK = TMINIDUMP_INCLUDE_THREAD_CALLBACK;
- LPMINIDUMP_INCLUDE_THREAD_CALLBACK = PMINIDUMP_INCLUDE_THREAD_CALLBACK;
- PMINIDUMP_MODULE_CALLBACK = ^TMINIDUMP_MODULE_CALLBACK;
- TMINIDUMP_MODULE_CALLBACK = record
- FullPath : PWCHAR;
- BaseOfImage : ULONG64;
- SizeOfImage : ULONG;
- CheckSum : ULONG;
- TimeDateStamp : ULONG;
- VersionInfo : TVSFIXEDFILEINFO;
- CvRecord : pointer;
- SizeOfCvRecord : ULONG;
- MiscRecord : pointer;
- SizeOfMiscRecord : ULONG;
- end;
- MINIDUMP_MODULE_CALLBACK = TMINIDUMP_MODULE_CALLBACK;
- LPMINIDUMP_MODULE_CALLBACK = PMINIDUMP_MODULE_CALLBACK;
- PMINIDUMP_INCLUDE_MODULE_CALLBACK = ^TMINIDUMP_INCLUDE_MODULE_CALLBACK;
- TMINIDUMP_INCLUDE_MODULE_CALLBACK = record
- BaseOfImage : ULONG64;
- end;
- MINIDUMP_INCLUDE_MODULE_CALLBACK = TMINIDUMP_INCLUDE_MODULE_CALLBACK;
- LPMINIDUMP_INCLUDE_MODULE_CALLBACK = PMINIDUMP_INCLUDE_MODULE_CALLBACK;
-
- PMINIDUMP_CALLBACK_INPUT = ^TMINIDUMP_CALLBACK_INPUT;
- TMINIDUMP_CALLBACK_INPUT = record
- ProcessId : ULONG;
- ProcessHandle : THANDLE;
- CallbackType : ULONG;
- anony : packed record
- case longint of
- 0 : ( Thread : TMINIDUMP_THREAD_CALLBACK );
- 1 : ( ThreadEx : TMINIDUMP_THREAD_EX_CALLBACK );
- 2 : ( Module : TMINIDUMP_MODULE_CALLBACK );
- 3 : ( IncludeThread : TMINIDUMP_INCLUDE_THREAD_CALLBACK );
- 4 : ( IncludeModule : TMINIDUMP_INCLUDE_MODULE_CALLBACK );
- end;
- end;
- MINIDUMP_CALLBACK_INPUT = TMINIDUMP_CALLBACK_INPUT;
- LPMINIDUMP_CALLBACK_INPUT = PMINIDUMP_CALLBACK_INPUT;
- PMINIDUMP_CALLBACK_OUTPUT = ^TMINIDUMP_CALLBACK_OUTPUT;
- TMINIDUMP_CALLBACK_OUTPUT = record
- anony3 : packed record
- case longint of
- 0 : ( ModuleWriteFlags : ULONG );
- 1 : ( ThreadWriteFlags : ULONG );
- 2 : ( anony2 : packed record
- MemoryBase : ULONG64;
- MemorySize : ULONG;
- end );
- end;
- end;
- MINIDUMP_CALLBACK_OUTPUT = TMINIDUMP_CALLBACK_OUTPUT;
- LPMINIDUMP_CALLBACK_OUTPUT = PMINIDUMP_CALLBACK_OUTPUT;
-
-
-
-
- TIMAGEHLP_STATUS_ROUTINE = function (Reason:TIMAGEHLP_STATUS_REASON; ImageName:PSTR; DllName:PSTR; Va:ULONG_PTR; Parameter:ULONG_PTR):BOOL;stdcall;
- TIMAGEHLP_STATUS_ROUTINE32 = function (Reason:TIMAGEHLP_STATUS_REASON; ImageName:PSTR; DllName:PSTR; Va:ULONG; Parameter:ULONG_PTR):BOOL;stdcall;
- TIMAGEHLP_STATUS_ROUTINE64 = function (Reason:TIMAGEHLP_STATUS_REASON; ImageName:PSTR; DllName:PSTR; Va:ULONG64; Parameter:ULONG_PTR):BOOL;stdcall;
- TDIGEST_FUNCTION = function (refdata:TDIGEST_HANDLE; pData:pbyte; dwLength:DWORD):bool;stdcall;
- TFIND_DEBUG_FILE_CALLBACK = function (FileHandle:THANDLE; FileName:PSTR; CallerData:pointer):bool;stdcall; // callback
- TFINDFILEINPATHCALLBACK = function (filename:PSTR; context:pointer):bool;stdcall;
- TFIND_EXE_FILE_CALLBACK = function (FileHandle:THANDLE; FileName:PSTR; CallerData:pointer):bool;stdcall;
-
- TSYMBOLSERVERPROC = function (para1:LPCSTR; para2:LPCSTR; para3:pointer; para4:DWORD; para5:DWORD; para6:lpstr):bool;stdcall;
- TSYMBOLSERVEROPENPROC = function (para1:pointer):bool;stdcall;
- TSYMBOLSERVERCLOSEPROC = function (para1:pointer):bool;stdcall;
- TSYMBOLSERVERSETOPTIONSPROC= function (para1:UINT_PTR; para2:ULONG64):bool;stdcall;
- TSYMBOLSERVERCALLBACKPROC = function (action:UINT_PTR; data:ULONG64; context:ULONG64):bool;stdcall;
- TSYMBOLSERVERGETOPTIONSPROC= function :UINT_PTR;stdcall;
- TSYMBOLSERVERPINGPROC = function (para1:LPCSTR):bool;stdcall;
- TENUMDIRTREE_CALLBACK = function (FilePath:LPCSTR; CallerData:pointer):bool;stdcall;
-
- TREAD_PROCESS_MEMORY_ROUTINE64 = function (hProcess:THANDLE; qwBaseAddress:dword64; lpBuffer:pointer; nSize:dword; lpNumberOfBytesRead:lpdword):bool;stdcall;
- TFUNCTION_TABLE_ACCESS_ROUTINE64= function (hProcess:THANDLE; AddrBase:dword64):pointer;stdcall;
- TGET_MODULE_BASE_ROUTINE64 = function (hProcess:THANDLE; Address:dword64):dword64;stdcall;
- TTRANSLATE_ADDRESS_ROUTINE64 = function (hProcess:THANDLE; hThread:THANDLE; lpaddr:LPADDRESS64):dword64;stdcall;
- {$IFDEF IMAGEHLP64}
- TREAD_PROCESS_MEMORY_ROUTINE = TREAD_PROCESS_MEMORY_ROUTINE64 ;
- TFUNCTION_TABLE_ACCESS_ROUTINE = TFUNCTION_TABLE_ACCESS_ROUTINE64;
- TGET_MODULE_BASE_ROUTINE = TGET_MODULE_BASE_ROUTINE64;
- TTRANSLATE_ADDRESS_ROUTINE = TTRANSLATE_ADDRESS_ROUTINE64;
- {$ELSE}
- TREAD_PROCESS_MEMORY_ROUTINE = function (hProcess:THANDLE; lpBaseAddress:dword; lpBuffer:pointer; nSize:dword; lpNumberOfBytesRead:PDWORD):bool;stdcall;
- TFUNCTION_TABLE_ACCESS_ROUTINE = function (hProcess:THANDLE; AddrBase:dword):pointer;stdcall;
- TGET_MODULE_BASE_ROUTINE = function (hProcess:THANDLE; Address:dword):dword;stdcall;
- TTRANSLATE_ADDRESS_ROUTINE = function (hProcess:THANDLE; hThread:THANDLE; lpaddr:LPADDRESS):dword;stdcall;
- {$ENDIF}
- TSYM_ENUMMODULES_CALLBACK64 = function (ModuleName:PSTR; BaseOfDll:dword64; UserContext:pointer):bool;stdcall; {CALLBACK }
- TSYM_ENUMSYMBOLS_CALLBACK64 = function (SymbolName:PSTR; SymbolAddress:dword64; SymbolSize:ULONG; UserContext:pointer):bool;stdcall; {CALLBACK }
- TSYM_ENUMSYMBOLS_CALLBACK64W = function (SymbolName:lpwstr; SymbolAddress:dword64; SymbolSize:ULONG; UserContext:pointer):bool;stdcall; {CALLBACK }
- TENUMLOADED_MODULES_CALLBACK64 = function (ModuleName:PSTR; ModuleBase:dword64; ModuleSize:ULONG; UserContext:pointer):bool;stdcall; {CALLBACK }
- TSYMBOL_REGISTERED_CALLBACK64 = function (hProcess:THANDLE; ActionCode:ULONG; CallbackData:ULONG64; UserContext:ULONG64):bool;stdcall; {CALLBACK }
- TSYMBOL_FUNCENTRY_CALLBACK64 = function (hProcess:THANDLE; AddrBase:ULONG64; UserContext:ULONG64):pointer;stdcall; {CALLBACK }
- {$IFDEF IMAGEHLP64}
- TSYM_ENUMMODULES_CALLBACK = TSYM_ENUMMODULES_CALLBACK64;
- TSYM_ENUMSYMBOLS_CALLBACK = TSYM_ENUMSYMBOLS_CALLBACK64;
- TSYM_ENUMSYMBOLS_CALLBACKW = TSYM_ENUMSYMBOLS_CALLBACK64W;
- TENUMLOADED_MODULES_CALLBACK = TENUMLOADED_MODULES_CALLBACK64;
- TSYMBOL_REGISTERED_CALLBACK = TSYMBOL_REGISTERED_CALLBACK64;
- TSYMBOL_FUNCENTRY_CALLBACK = TSYMBOL_FUNCENTRY_CALLBACK64;
- {$ELSE}
- TSYM_ENUMMODULES_CALLBACK = function (ModuleName:PSTR; BaseOfDll:ULONG; UserContext:pointer):bool;stdcall;
- TSYM_ENUMSYMBOLS_CALLBACK = function (SymbolName:PSTR; SymbolAddress:ULONG; SymbolSize:ULONG; UserContext:pointer):bool;stdcall;
- TSYM_ENUMSYMBOLS_CALLBACKW = function (SymbolName:lpwstr; SymbolAddress:ULONG; SymbolSize:ULONG; UserContext:pointer):bool;stdcall;
- TENUMLOADED_MODULES_CALLBACK = function (ModuleName:PSTR; ModuleBase:ULONG; ModuleSize:ULONG; UserContext:pointer):bool;stdcall;
- TSYMBOL_REGISTERED_CALLBACK = function (hProcess:THANDLE; ActionCode:ULONG; CallbackData:pointer; UserContext:pointer):bool;stdcall;
- TSYMBOL_FUNCENTRY_CALLBACK = function (hProcess:THANDLE; AddrBase:dword; UserContext:pointer):pointer;stdcall; {CALLBACK }
- {$ENDIF}
- TSYM_ENUMSOURCFILES_CALLBACK = function (pSourceFile:PSOURCEFILE; UserContext:pointer):BOOL;stdcall;
- TSYM_ENUMLINES_CALLBACK = function (LineInfo:PSRCCODEINFO; UserContext:pointer):BOOL;stdcall;
- TSYM_ENUMERATESYMBOLS_CALLBACK = function (pSymInfo:PSYMBOL_INFO; SymbolSize:ULONG; UserContext:pointer):BOOL;stdcall;
- TDBGHELP_CREATE_USER_DUMP_CALLBACK = function (DataType:dword; Data:PPOINTER; DataLength:lpdword; UserData:pointer):BOOL;stdcall;
- TMINIDUMP_CALLBACK_ROUTINE = function (CallbackParam:pointer; CallbackInput:PMINIDUMP_CALLBACK_INPUT; CallbackOutput:PMINIDUMP_CALLBACK_OUTPUT):BOOL;stdcall;
- PMINIDUMP_CALLBACK_INFORMATION = ^TMINIDUMP_CALLBACK_INFORMATION;
- TMINIDUMP_CALLBACK_INFORMATION = record
- CallbackRoutine : TMINIDUMP_CALLBACK_ROUTINE;
- CallbackParam : pointer;
- end;
- MINIDUMP_CALLBACK_INFORMATION = TMINIDUMP_CALLBACK_INFORMATION;
- LPMINIDUMP_CALLBACK_INFORMATION = PMINIDUMP_CALLBACK_INFORMATION;
-
- function BindImage(ImageName:PSTR; DllPath:PSTR; SymbolPath:PSTR):BOOL;stdcall;external External_library name 'BindImage';
- function BindImageEx(Flags:DWORD; ImageName:PSTR; DllPath:PSTR; SymbolPath:PSTR; StatusRoutine:TIMAGEHLP_STATUS_ROUTINE):BOOL;stdcall;external External_library name 'BindImageEx';
- function ReBaseImage(CurrentImageName:PSTR; SymbolPath:PSTR; fReBase:bool; fRebaseSysfileOk:bool; fGoingDown:bool;
- CheckImageSize:ULONG; OldImageSize:PULONG; OldImageBase:PULONG_PTR; NewImageSize:PULONG; NewImageBase:PULONG_PTR;
- TimeStamp:ULONG):bool;stdcall;external External_library name 'ReBaseImage';
- function ReBaseImage64(CurrentImageName:PSTR; SymbolPath:PSTR; fReBase:bool; fRebaseSysfileOk:bool; fGoingDown:bool;
- CheckImageSize:ULONG; OldImageSize:PULONG; OldImageBase:PULONG64; NewImageSize:PULONG; NewImageBase:PULONG64;
- TimeStamp:ULONG):bool;stdcall;external External_library name 'ReBaseImage64';
- function CheckSumMappedFile(BaseAddress:pointer; FileLength:DWORD; HeaderSum:PDWORD; CheckSum:PDWORD):PIMAGE_NT_HEADERS;stdcall;external External_library name 'CheckSumMappedFile';
- function MapFileAndCheckSumA(Filename:PSTR; HeaderSum:PDWORD; CheckSum:PDWORD):DWORD;stdcall;external External_library name 'MapFileAndCheckSumA';
- function MapFileAndCheckSumW(Filename:lpwstr; HeaderSum:PDWORD; CheckSum:PDWORD):DWORD;stdcall;external External_library name 'MapFileAndCheckSumW';
- {$IFDEF UNICODE}
- function MapFileAndCheckSum(Filename:lpwstr; HeaderSum:PDWORD; CheckSum:PDWORD):DWORD;stdcall;external External_library name 'MapFileAndCheckSumW';
- {$ELSE}
- function MapFileAndCheckSum(Filename:PSTR; HeaderSum:PDWORD; CheckSum:PDWORD):DWORD;stdcall;external External_library name 'MapFileAndCheckSumA';
- {$ENDIF}
- function GetImageConfigInformation(LoadedImage:PLOADED_IMAGE; ImageConfigInformation:PIMAGE_LOAD_CONFIG_DIRECTORY):bool;stdcall;external External_library name 'GetImageConfigInformation';
- function GetImageUnusedHeaderBytes(LoadedImage:PLOADED_IMAGE; SizeUnusedHeaderBytes:PDWORD):DWORD;stdcall;external External_library name 'GetImageUnusedHeaderBytes';
- function SetImageConfigInformation(LoadedImage:PLOADED_IMAGE; ImageConfigInformation:PIMAGE_LOAD_CONFIG_DIRECTORY):bool;stdcall;external External_library name 'SetImageConfigInformation';
- function ImageGetDigestStream(FileHandle:THANDLE; DigestLevel:DWORD; DigestFunction:TDIGEST_FUNCTION; DigestHandle:TDIGEST_HANDLE):bool;stdcall;external External_library name 'ImageGetDigestStream';
- function ImageAddCertificate(FileHandle:THANDLE; Certificate:PWINCERTIFICATE; Index:PDWORD):bool;stdcall;external External_library name 'ImageAddCertificate';
- function ImageRemoveCertificate(FileHandle:THANDLE; Index:DWORD):bool;stdcall;external External_library name 'ImageRemoveCertificate';
- function ImageEnumerateCertificates(FileHandle:THANDLE; TypeFilter:word; CertificateCount:PDWORD; Indices:PDWORD; IndexCount:DWORD):bool;stdcall;external External_library name 'ImageEnumerateCertificates';
- function ImageGetCertificateData(FileHandle:THANDLE; CertificateIndex:DWORD; Certificate:PWINCERTIFICATE; RequiredLength:PDWORD):bool;stdcall;external External_library name 'ImageGetCertificateData';
- function ImageGetCertificateHeader(FileHandle:THANDLE; CertificateIndex:DWORD; Certificateheader:PWINCERTIFICATE):bool;stdcall;external External_library name 'ImageGetCertificateHeader';
- function ImageLoad(DllName:PSTR; DllPath:PSTR):PLOADED_IMAGE;stdcall;external External_library name 'ImageLoad';
- function ImageUnload(LoadedImage:PLOADED_IMAGE):bool;stdcall;external External_library name 'ImageUnload';
- function MapAndLoad(ImageName:PSTR; DllPath:PSTR; LoadedImage:PLOADED_IMAGE; DotDll:bool; ReadOnly:BOOL):bool;stdcall;external External_library name 'MapAndLoad';
- function UnMapAndLoad(LoadedImage:PLOADED_IMAGE):bool;stdcall;external External_library name 'UnMapAndLoad';
- function TouchFileTimes(FileHandle:THANDLE; pSystemTime:PSYSTEMTIME):bool;stdcall;external External_library name 'TouchFileTimes';
- function SplitSymbols(ImageName:PSTR; SymbolsPath:PSTR; SymbolFilePath:PSTR; Flags:DWORD):bool;stdcall;external External_library name 'SplitSymbols';
- function UpdateDebugInfoFile(ImageFileName:PSTR; SymbolPath:PSTR; DebugFilePath:PSTR; NtHeaders:PIMAGE_NT_HEADERS32):bool;stdcall;external External_library name 'UpdateDebugInfoFile';
- function UpdateDebugInfoFileEx(ImageFileName:PSTR; SymbolPath:PSTR; DebugFilePath:PSTR; NtHeaders:PIMAGE_NT_HEADERS32; OldChecksum:DWORD):bool;stdcall;external External_library name 'UpdateDebugInfoFileEx';
- function FindDebugInfoFile(FileName:PSTR; SymbolPath:PSTR; DebugFilePath:PSTR):THANDLE;stdcall;external External_library name 'FindDebugInfoFile';
- function FindDebugInfoFileEx(FileName:PSTR; SymbolPath:PSTR; DebugFilePath:PSTR; Callback:TFIND_DEBUG_FILE_CALLBACK; CallerData:pointer):THANDLE;stdcall;external External_library name 'FindDebugInfoFileEx';
- function SymFindFileInPath(hprocess:THANDLE; SearchPath:lpstr; FileName:lpstr; id:pointer; two:DWORD;
- three:DWORD; flags:DWORD; FoundFile:lpstr; callback:TFINDFILEINPATHCALLBACK; context:pointer):bool;stdcall;external External_library name 'SymFindFileInPath';
- function FindExecutableImage(FileName:PSTR; SymbolPath:PSTR; ImageFilePath:PSTR):THANDLE;stdcall;external External_library name 'FindExecutableImage';
- function FindExecutableImageEx(FileName:PSTR; SymbolPath:PSTR; ImageFilePath:PSTR; Callback:TFIND_EXE_FILE_CALLBACK; CallerData:pointer):THANDLE;stdcall;external External_library name 'FindExecutableImageEx';
- function ImageNtHeader(Base:pointer):PIMAGE_NT_HEADERS;stdcall;external External_library name 'ImageNtHeader';
- function ImageDirectoryEntryToDataEx(Base:pointer; MappedAsImage:bytebool; DirectoryEntry:ushort; Size:PULONG; FoundHeader:PPIMAGE_SECTION_HEADER):pointer;stdcall;external External_library name 'ImageDirectoryEntryToDataEx';
- function ImageDirectoryEntryToData(Base:pointer; MappedAsImage:bytebool; DirectoryEntry:ushort; Size:PULONG):pointer;stdcall;external External_library name 'ImageDirectoryEntryToData';
- function ImageRvaToSection(NtHeaders:PIMAGE_NT_HEADERS; Base:pointer; Rva:ULONG):PIMAGE_SECTION_HEADER;stdcall;external External_library name 'ImageRvaToSection';
- function ImageRvaToVa(NtHeaders:PIMAGE_NT_HEADERS; Base:pointer; Rva:ULONG; LastRvaSection:PPIMAGE_SECTION_HEADER):pointer;stdcall;external External_library name 'ImageRvaToVa';
- {$IFNDEF WIN64}
- function MapDebugInformation(FileHandle:THANDLE; FileName:PSTR; SymbolPath:PSTR; ImageBase:dword):PIMAGE_DEBUG_INFORMATION;stdcall;external External_library name 'MapDebugInformation';
- function UnmapDebugInformation(DebugInfo:PIMAGE_DEBUG_INFORMATION):bool;stdcall;external External_library name 'UnmapDebugInformation';
- {$ENDIF}
- function SearchTreeForFile(RootPath:PSTR; InputPathName:PSTR; OutputPathBuffer:PSTR):bool;stdcall;external External_library name 'SearchTreeForFile';
- function EnumDirTree(hProcess:THANDLE; RootPath:PSTR; InputPathName:PSTR; OutputPathBuffer:PSTR; Callback:TENUMDIRTREE_CALLBACK;
- CallbackData:pointer):bool;stdcall;external External_library name 'EnumDirTree';
- function MakeSureDirectoryPathExists(DirPath:LPCSTR):bool;stdcall;external External_library name 'MakeSureDirectoryPathExists';
- function UnDecorateSymbolName(DecoratedName:LPCSTR; UnDecoratedName:PSTR; UndecoratedLength:dword; Flags:dword):dword;stdcall;external External_library name 'UnDecorateSymbolName';
- function StackWalk64(MachineType:dword; hProcess:THANDLE; hThread:THANDLE; StackFrame:LPSTACKFRAME64; ContextRecord:pointer;
- ReadMemoryRoutine:TREAD_PROCESS_MEMORY_ROUTINE64; FunctionTableAccessRoutine:TFUNCTION_TABLE_ACCESS_ROUTINE64; GetModuleBaseRoutine:TGET_MODULE_BASE_ROUTINE64; TranslateAddress:TTRANSLATE_ADDRESS_ROUTINE64):bool;stdcall;external External_library name 'StackWalk64';
- {$IFDEF IMAGEHLP64}
- function StackWalk(MachineType:dword; hProcess:THANDLE; hThread:THANDLE; StackFrame:LPSTACKFRAME64; ContextRecord:pointer;
- ReadMemoryRoutine:TREAD_PROCESS_MEMORY_ROUTINE64; FunctionTableAccessRoutine:TFUNCTION_TABLE_ACCESS_ROUTINE64; GetModuleBaseRoutine:TGET_MODULE_BASE_ROUTINE64; TranslateAddress:TTRANSLATE_ADDRESS_ROUTINE64):bool;stdcall;external External_library name 'StackWalk64';
- {$ELSE}
- function StackWalk(MachineType:dword; hProcess:THANDLE; hThread:THANDLE; StackFrame:LPSTACKFRAME; ContextRecord:pointer;
- ReadMemoryRoutine:TREAD_PROCESS_MEMORY_ROUTINE; FunctionTableAccessRoutine:TFUNCTION_TABLE_ACCESS_ROUTINE; GetModuleBaseRoutine:TGET_MODULE_BASE_ROUTINE; TranslateAddress:TTRANSLATE_ADDRESS_ROUTINE):bool;stdcall;external External_library name 'StackWalk';
- {$ENDIF}
- function ImagehlpApiVersion:LPAPI_VERSION;stdcall;external External_library name 'ImagehlpApiVersion';
- function ImagehlpApiVersionEx(AppVersion:LPAPI_VERSION):LPAPI_VERSION;stdcall;external External_library name 'ImagehlpApiVersionEx';
- function GetTimestampForLoadedLibrary(Module:HMODULE):dword;stdcall;external External_library name 'GetTimestampForLoadedLibrary';
- function SymSetParentWindow(hwnd:HWND):bool;stdcall;external External_library name 'SymSetParentWindow';
- function SymSetHomeDirectory(dir:LPCSTR):PAnsiChar;stdcall;external External_library name 'SymSetHomeDirectory';
- function SymGetHomeDirectory(_type:dword; dir:PSTR; size:Tsize):PAnsiChar;stdcall;external External_library name 'SymGetHomeDirectory';
- function SymSetOptions(SymOptions:dword):dword;stdcall;external External_library name 'SymSetOptions';
- function SymGetOptions:dword;stdcall;external External_library name 'SymGetOptions';
- function SymCleanup(hProcess:THANDLE):BOOL;stdcall;external External_library name 'SymCleanup';
- function SymMatchString(_string:lpstr; expression:lpstr; fCase:BOOL):BOOL;stdcall;external External_library name 'SymMatchString';
- function SymEnumSourceFiles(hProcess:THANDLE; ModBase:ULONG64; Mask:lpstr; cbSrcFiles:TSYM_ENUMSOURCFILES_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumSourceFiles';
- function SymEnumerateModules64(hProcess:THANDLE; EnumModulesCallback:TSYM_ENUMMODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateModules64';
- function SymEnumerateSymbols64(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbols64';
- function SymEnumerateSymbolsW64(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64W; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbolsW64';
- function EnumerateLoadedModules64(hProcess:THANDLE; EnumLoadedModulesCallback:TENUMLOADED_MODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'EnumerateLoadedModules64';
- function SymFunctionTableAccess64(hProcess:THANDLE; AddrBase:dword64):pointer;stdcall;external External_library name 'SymFunctionTableAccess64';
- function SymGetModuleInfo64(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULE64):BOOL;stdcall;external External_library name 'SymGetModuleInfo64';
- function SymGetModuleInfoW64(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULEW64):BOOL;stdcall;external External_library name 'SymGetModuleInfoW64';
- function SymGetModuleBase64(hProcess:THANDLE; qwAddr:dword64):dword64;stdcall;external External_library name 'SymGetModuleBase64';
- function SymGetSymNext64(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymNext64';
- function SymGetSymPrev64(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymPrev64';
- {$ifdef IMAGEHLP64}
- function SymEnumerateModules(hProcess:THANDLE; EnumModulesCallback:TSYM_ENUMMODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateModules64';
- function SymEnumerateSymbols(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbols64';
- function SymEnumerateSymbolsW(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64W; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbolsW64';
- function EnumerateLoadedModules(hProcess:THANDLE; EnumLoadedModulesCallback:TENUMLOADED_MODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'EnumerateLoadedModules64';
- function SymFunctionTableAccess(hProcess:THANDLE; AddrBase:dword64):pointer;stdcall;external External_library name 'SymFunctionTableAccess64';
- function SymGetModuleInfo(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULE64):BOOL;stdcall;external External_library name 'SymGetModuleInfo64';
- function SymGetModuleInfoW(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULEW64):BOOL;stdcall;external External_library name 'SymGetModuleInfoW64';
- function SymGetModuleBase(hProcess:THANDLE; qwAddr:dword64):dword64;stdcall;external External_library name 'SymGetModuleBase64';
- function SymGetSymNext(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymNext64';
- function SymGetSymPrev(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymPrev64';
- {$ELSE}
- function SymEnumerateModules(hProcess:THANDLE; EnumModulesCallback:TSYM_ENUMMODULES_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateModules';
- function SymEnumerateSymbols(hProcess:THANDLE; BaseOfDll:dword; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbols';
- function SymEnumerateSymbolsW(hProcess:THANDLE; BaseOfDll:dword; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACKW; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbolsW';
- function EnumerateLoadedModules(hProcess:THANDLE; EnumLoadedModulesCallback:TENUMLOADED_MODULES_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'EnumerateLoadedModules';
- function SymFunctionTableAccess(hProcess:THANDLE; AddrBase:dword):pointer;stdcall;external External_library name 'SymFunctionTableAccess';
- function SymGetModuleInfo(hProcess:THANDLE; dwAddr:dword; ModuleInfo:PIMAGEHLP_MODULE):BOOL;stdcall;external External_library name 'SymGetModuleInfo';
- function SymGetModuleInfoW(hProcess:THANDLE; dwAddr:dword; ModuleInfo:PIMAGEHLP_MODULEW):BOOL;stdcall;external External_library name 'SymGetModuleInfoW';
- function SymGetSymPrev(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL):BOOL;stdcall;external External_library name 'SymGetSymPrev';
- function SymGetSymNext(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL):BOOL;stdcall;external External_library name 'SymGetSymNext';
- function SymGetModuleBase(hProcess:THANDLE; dwAddr:dword):dword;stdcall;external External_library name 'SymGetModuleBase';
- {$ENDIF}
- function SymGetLineFromAddr64(hProcess:THANDLE; qwAddr:dword64; pdwDisplacement:PDWORD; Line64:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromAddr64';
- function SymGetLineFromName64(hProcess:THANDLE; ModuleName:PSTR; FileName:PSTR; dwLineNumber:dword; plDisplacement:PLONG;
- Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromName64';
- function SymGetLineNext64(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineNext64';
- function SymGetLinePrev64(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLinePrev64';
- function SymLoadModule64(hProcess:THANDLE; hFile:THANDLE; ImageName:PSTR; ModuleName:PSTR; BaseOfDll:dword64;
- SizeOfDll:dword):dword64;stdcall;external External_library name 'SymLoadModule64';
- function SymUnloadModule64(hProcess:THANDLE; BaseOfDll:dword64):BOOL;stdcall;external External_library name 'SymUnloadModule64';
- function SymUnDName64(sym:PIMAGEHLP_SYMBOL64; UnDecName:PSTR; UnDecNameLength:dword):BOOL;stdcall;external External_library name 'SymUnDName64';
- function SymRegisterCallback64(hProcess:THANDLE; CallbackFunction:TSYMBOL_REGISTERED_CALLBACK64; UserContext:ULONG64):BOOL;stdcall;external External_library name 'SymRegisterCallback64';
- function SymRegisterFunctionEntryCallback64(hProcess:THANDLE; CallbackFunction:TSYMBOL_FUNCENTRY_CALLBACK64; UserContext:ULONG64):BOOL;stdcall;external External_library name 'SymRegisterFunctionEntryCallback64';
- {$ifdef IMAGEHLP64}
- function SymGetLineFromAddr(hProcess:THANDLE; qwAddr:dword64; pdwDisplacement:PDWORD; Line64:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromAddr64';
- function SymGetLineFromName(hProcess:THANDLE; ModuleName:PSTR; FileName:PSTR; dwLineNumber:dword; plDisplacement:PLONG;
- Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromName64';
- function SymGetLineNext(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineNext64';
- function SymGetLinePrev(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLinePrev64';
- function SymLoadModule(hProcess:THANDLE; hFile:THANDLE; ImageName:PSTR; ModuleName:PSTR; BaseOfDll:dword64;
- SizeOfDll:dword):dword64;stdcall;external External_library name 'SymLoadModule64';
- function SymUnloadModule(hProcess:THANDLE; BaseOfDll:dword64):BOOL;stdcall;external External_library name 'SymUnloadModule64';
- function SymUnDName(sym:PIMAGEHLP_SYMBOL64; UnDecName:PSTR; UnDecNameLength:dword):BOOL;stdcall;external External_library name 'SymUnDName64';
- function SymRegisterCallback(hProcess:THANDLE; CallbackFunction:TSYMBOL_REGISTERED_CALLBACK64; UserContext:ULONG64):BOOL;stdcall;external External_library name 'SymRegisterCallback64';
- function SymRegisterFunctionEntryCallback(hProcess:THANDLE; CallbackFunction:TSYMBOL_FUNCENTRY_CALLBACK64; UserContext:ULONG64):BOOL;stdcall;external External_library name 'SymRegisterFunctionEntryCallback64';
- {$else}
- function SymGetLineFromAddr(hProcess:THANDLE; dwAddr:dword; pdwDisplacement:PDWORD; Line:PIMAGEHLP_LINE):BOOL;stdcall;external External_library name 'SymGetLineFromAddr';
- function SymGetLineFromName(hProcess:THANDLE; ModuleName:PSTR; FileName:PSTR; dwLineNumber:dword; plDisplacement:PLONG;
- Line:PIMAGEHLP_LINE):BOOL;stdcall;external External_library name 'SymGetLineFromName';
- function SymGetLineNext(hProcess:THANDLE; Line:PIMAGEHLP_LINE):BOOL;stdcall;external External_library name 'SymGetLineNext';
- function SymGetLinePrev(hProcess:THANDLE; Line:PIMAGEHLP_LINE):BOOL;stdcall;external External_library name 'SymGetLinePrev';
- function SymLoadModule(hProcess:THANDLE; hFile:THANDLE; ImageName:PSTR; ModuleName:PSTR; BaseOfDll:dword;
- SizeOfDll:dword):dword;stdcall;external External_library name 'SymLoadModule';
- function SymUnloadModule(hProcess:THANDLE; BaseOfDll:dword):BOOL;stdcall;external External_library name 'SymUnloadModule';
- function SymUnDName(sym:PIMAGEHLP_SYMBOL; UnDecName:PSTR; UnDecNameLength:dword):BOOL;stdcall;external External_library name 'SymUnDName';
- function SymRegisterCallback(hProcess:THANDLE; CallbackFunction:TSYMBOL_REGISTERED_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymRegisterCallback';
- function SymRegisterFunctionEntryCallback(hProcess:THANDLE; CallbackFunction:TSYMBOL_FUNCENTRY_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymRegisterFunctionEntryCallback';
- {$endif}
- function SymEnumLines(hProcess:THANDLE; Base:ULONG64; Obj:LPCSTR; _File:LPCSTR; EnumLinesCallback:TSYM_ENUMLINES_CALLBACK;
- UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumLines';
- function SymMatchFileName(FileName:PSTR; Match:PSTR; FileNameStop:PPSTR; MatchStop:PPSTR):BOOL;stdcall;external External_library name 'SymMatchFileName';
- function SymInitialize(hProcess:THANDLE; UserSearchPath:PSTR; fInvadeProcess:BOOL):BOOL;stdcall;external External_library name 'SymInitialize';
- function SymGetSearchPath(hProcess:THANDLE; SearchPath:PSTR; SearchPathLength:dword):BOOL;stdcall;external External_library name 'SymGetSearchPath';
- function SymSetSearchPath(hProcess:THANDLE; SearchPath:PSTR):BOOL;stdcall;external External_library name 'SymSetSearchPath';
- function SymLoadModuleEx(hProcess:THANDLE; hFile:THANDLE; ImageName:PSTR; ModuleName:PSTR; BaseOfDll:dword64;
- DllSize:dword; Data:PMODLOAD_DATA; Flags:dword):dword64;stdcall;external External_library name 'SymLoadModuleEx';
- function SymSetContext(hProcess:THANDLE; StackFrame:PIMAGEHLP_STACK_FRAME; Context:PIMAGEHLP_CONTEXT):BOOL;stdcall;external External_library name 'SymSetContext';
- function SymFromAddr(hProcess:THANDLE; Address:dword64; Displacement:PDWORD64; Symbol:PSYMBOL_INFO):BOOL;stdcall;external External_library name 'SymFromAddr';
- function SymFromToken(hProcess:THANDLE; Base:dword64; Token:dword; Symbol:PSYMBOL_INFO):BOOL;stdcall;external External_library name 'SymFromToken';
- function SymFromName(hProcess:THANDLE; Name:lpstr; Symbol:PSYMBOL_INFO):BOOL;stdcall;external External_library name 'SymFromName';
- function SymEnumSymbols(hProcess:THANDLE; BaseOfDll:ULONG64; Mask:LPCSTR; EnumSymbolsCallback:TSYM_ENUMERATESYMBOLS_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumSymbols';
- function SymEnumSymbolsForAddr(hProcess:THANDLE; Address:dword64; EnumSymbolsCallback:TSYM_ENUMERATESYMBOLS_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumSymbolsForAddr';
-
- function SymGetTypeInfo(hProcess:THANDLE; ModBase:dword64; TypeId:ULONG; GetType:TIMAGEHLP_SYMBOL_TYPE_INFO; pInfo:pointer):BOOL;stdcall;external External_library name 'SymGetTypeInfo';
- function SymEnumTypes(hProcess:THANDLE; BaseOfDll:ULONG64; EnumSymbolsCallback:TSYM_ENUMERATESYMBOLS_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumTypes';
- function SymGetTypeFromName(hProcess:THANDLE; BaseOfDll:ULONG64; Name:lpstr; Symbol:PSYMBOL_INFO):BOOL;stdcall;external External_library name 'SymGetTypeFromName';
- function SymAddSymbol(hProcess:THANDLE; BaseOfDll:ULONG64; Name:LPCSTR; Address:dword64; Size:dword;
- Flags:dword):BOOL;stdcall;external External_library name 'SymAddSymbol';
- function SymDeleteSymbol(hProcess:THANDLE; BaseOfDll:ULONG64; Name:LPCSTR; Address:dword64; Flags:dword):BOOL;stdcall;external External_library name 'SymDeleteSymbol';
- function DbgHelpCreateUserDump(FileName:lpstr; Callback:TDBGHELP_CREATE_USER_DUMP_CALLBACK; UserData:pointer):BOOL;stdcall;external External_library name 'DbgHelpCreateUserDump';
- function DbgHelpCreateUserDumpW(FileName:LPWSTR; Callback:TDBGHELP_CREATE_USER_DUMP_CALLBACK; UserData:pointer):BOOL;stdcall;external External_library name 'DbgHelpCreateUserDumpW';
- function SymGetSymFromAddr64(hProcess:THANDLE; qwAddr:dword64; pdwDisplacement:PDWORD64; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymFromAddr64';
- function SymGetSymFromName64(hProcess:THANDLE; Name:PSTR; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdcall;external External_library name 'SymGetSymFromName64';
- {$ifdef IMAGEHLP64}
- {$else}
- function SymGetSymFromAddr(hProcess:THANDLE; dwAddr:dword; pdwDisplacement:PDWORD; Symbol:PIMAGEHLP_SYMBOL):BOOL;stdcall;external External_library name 'SymGetSymFromAddr';
- function SymGetSymFromName(hProcess:THANDLE; Name:PSTR; Symbol:PIMAGEHLP_SYMBOL):BOOL;stdcall;external External_library name 'SymGetSymFromName';
- {$endif}
- function FindFileInPath(hprocess:THANDLE; SearchPath:lpstr; FileName:lpstr; id:pointer; two:dword;
- three:dword; flags:dword; FilePath:lpstr):BOOL;stdcall;external External_library name 'FindFileInPath';
- function FindFileInSearchPath(hprocess:THANDLE; SearchPath:lpstr; FileName:lpstr; one:dword; two:dword;
- three:dword; FilePath:lpstr):BOOL;stdcall;external External_library name 'FindFileInSearchPath';
- function SymEnumSym(hProcess:THANDLE; BaseOfDll:ULONG64; EnumSymbolsCallback:TSYM_ENUMERATESYMBOLS_CALLBACK; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumSym';
- function MiniDumpWriteDump(hProcess:THANDLE; ProcessId:dword; hFile:THANDLE; DumpType:TMINIDUMP_TYPE; ExceptionParam:PMINIDUMP_EXCEPTION_INFORMATION;
- UserStreamParam:PMINIDUMP_USER_STREAM_INFORMATION; CallbackParam:TMINIDUMP_CALLBACK_INFORMATION):BOOL;stdcall;external External_library name 'MiniDumpWriteDump';
-
- function MiniDumpReadDumpStream(BaseOfDump:pointer; StreamNumber:ULONG; Dir:PPMINIDUMP_DIRECTORY; StreamPointer:PPOINTER; StreamSize:PULONG):BOOL;stdcall;external External_library name 'MiniDumpReadDumpStream';
- function RVA_TO_ADDR(Mapping:ULONG_PTR;RVA:CARDINAL):POINTER; inline;
- procedure Address64To32(a64: LPADDRESS64 ;a32:LPADDRESS); inline;
- Procedure Address32To64(a32: LPADDRESS ;a64:LPADDRESS64); inline;
- procedure KdHelp32To64(p32:PKDHELP;p64:PKDHELP64); inline;
- implementation
- function RVA_TO_ADDR(Mapping:ULONG_PTR;RVA:CARDINAL):POINTER;
- begin
- rva_to_addr:=pointer(ulong_ptr(mapping)+rva);
- end;
-
- Procedure Address32To64(a32: LPADDRESS ;a64:LPADDRESS64);
- begin
- a64^.Offset := ULONG64(LONG64(LONG(a32^.Offset))); // I assume these multiple typecasts are to avoid sign problems?
- a64^.Segment := a32^.Segment;
- a64^.Mode := a32^.Mode;
- end;
- procedure Address64To32(a64: LPADDRESS64 ;a32:LPADDRESS);
- begin
- a32^.Offset := ULONG(a64^.Offset);
- a32^.Segment:= a64^.Segment;
- a32^.Mode := a64^.Mode;
- end;
- procedure KdHelp32To64(p32:PKDHELP;p64:PKDHELP64);
- begin
- p64^.Thread := p32^.Thread;
- p64^.ThCallbackStack := p32^.ThCallbackStack;
- p64^.NextCallback := p32^.NextCallback;
- p64^.FramePointer := p32^.FramePointer;
- p64^.KiCallUserMode := p32^.KiCallUserMode;
- p64^.KeUserCallbackDispatcher := p32^.KeUserCallbackDispatcher;
- p64^.SystemRangeStart := p32^.SystemRangeStart;
- end;
-
- end.
|