| /* |
| * imagehlp.h - Declarations for IMAGEHLP |
| */ |
| |
| #ifndef __WINE_IMAGEHLP_H |
| #define __WINE_IMAGEHLP_H |
| |
| #include "windef.h" |
| #include "winbase.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* defined(__cplusplus) */ |
| |
| /*********************************************************************** |
| * Types |
| */ |
| |
| typedef PVOID DIGEST_HANDLE; |
| |
| /*********************************************************************** |
| * Enums/Defines |
| */ |
| |
| typedef enum _IMAGEHLP_STATUS_REASON { |
| BindOutOfMemory, |
| BindRvaToVaFailed, |
| BindNoRoomInImage, |
| BindImportModuleFailed, |
| BindImportProcedureFailed, |
| BindImportModule, |
| BindImportProcedure, |
| BindForwarder, |
| BindForwarderNOT, |
| BindImageModified, |
| BindExpandFileHeaders, |
| BindImageComplete, |
| BindMismatchedSymbols, |
| BindSymbolsNotUpdated |
| } IMAGEHLP_STATUS_REASON; |
| |
| #define BIND_NO_BOUND_IMPORTS 0x00000001 |
| #define BIND_NO_UPDATE 0x00000002 |
| #define BIND_ALL_IMAGES 0x00000004 |
| #define BIND_CACHE_IMPORT_DLLS 0x00000008 |
| |
| #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01 |
| #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02 |
| #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04 |
| #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08 |
| |
| #define CERT_SECTION_TYPE_ANY 0xFF |
| |
| #define WIN_CERT_REVISION_1_0 0x0100 |
| #define WIN_CERT_REVISION_2_0 0x0200 |
| |
| #define WIN_CERT_TYPE_X509 0x0001 /* X.509 Certificate */ |
| #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */ |
| #define WIN_CERT_TYPE_RESERVED_1 0x0003 /* Reserved */ |
| |
| #define SPLITSYM_REMOVE_PRIVATE 0x00000001 |
| #define SPLITSYM_EXTRACT_ALL 0x00000002 |
| #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004 |
| |
| #define IMAGE_DEBUG_TYPE_UNKNOWN 0 |
| #define IMAGE_DEBUG_TYPE_COFF 1 |
| #define IMAGE_DEBUG_TYPE_CODEVIEW 2 |
| #define IMAGE_DEBUG_TYPE_FPO 3 |
| #define IMAGE_DEBUG_TYPE_MISC 4 |
| #define IMAGE_DEBUG_TYPE_EXCEPTION 5 |
| #define IMAGE_DEBUG_TYPE_FIXUP 6 |
| #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 |
| #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 |
| #define IMAGE_DEBUG_TYPE_BORLAND 9 |
| #define IMAGE_DEBUG_TYPE_RESERVED10 10 |
| |
| #define FRAME_FPO 0 |
| #define FRAME_TRAP 1 |
| #define FRAME_TSS 2 |
| #define FRAME_NONFPO 3 |
| |
| #define CHECKSUM_SUCCESS 0 |
| #define CHECKSUM_OPEN_FAILURE 1 |
| #define CHECKSUM_MAP_FAILURE 2 |
| #define CHECKSUM_MAPVIEW_FAILURE 3 |
| #define CHECKSUM_UNICODE_FAILURE 4 |
| |
| typedef enum _ADRESS_MODE { |
| AddrMode1616, |
| AddrMode1632, |
| AddrModeReal, |
| AddrModeFlat |
| } ADDRESS_MODE; |
| |
| #define SYMOPT_CASE_INSENSITIVE 0x00000001 |
| #define SYMOPT_UNDNAME 0x00000002 |
| #define SYMOPT_DEFERRED_LOADS 0x00000004 |
| #define SYMOPT_NO_CPP 0x00000008 |
| #define SYMOPT_LOAD_LINES 0x00000010 |
| #define SYMOPT_OMAP_FIND_NEAREST 0x00000020 |
| |
| #define SYMF_OMAP_GENERATED 0x00000001 |
| #define SYMF_OMAP_MODIFIED 0x00000002 |
| |
| typedef enum _SYM_TYPE { |
| SymNone, |
| SymCoff, |
| SymCv, |
| SymPdb, |
| SymExport, |
| SymDeferred, |
| SymSym /* .sym file */ |
| } SYM_TYPE32; |
| |
| #define UNDNAME_COMPLETE 0x0000 |
| #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001 |
| #define UNDNAME_NO_MS_KEYWORDS 0x0002 |
| #define UNDNAME_NO_FUNCTION_RETURNS 0x0004 |
| #define UNDNAME_NO_ALLOCATION_MODEL 0x0008 |
| #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010 |
| #define UNDNAME_NO_MS_THISTYPE 0x0020 |
| #define UNDNAME_NO_CV_THISTYPE 0x0040 |
| #define UNDNAME_NO_THISTYPE 0x0060 |
| #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080 |
| #define UNDNAME_NO_THROW_SIGNATURES 0x0100 |
| #define UNDNAME_NO_MEMBER_TYPE 0x0200 |
| #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400 |
| #define UNDNAME_32_BIT_DECODE 0x0800 |
| #define UNDNAME_NAME_ONLY 0x1000 |
| #define UNDNAME_NO_ARGUMENTS 0x2000 |
| #define UNDNAME_NO_SPECIAL_SYMS 0x4000 |
| |
| #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001 |
| #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002 |
| #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003 |
| #define CBA_SYMBOLS_UNLOADED 0x00000004 |
| #define CBA_DUPLICATE_SYMBOL 0x00000005 |
| |
| #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ |
| #define IMAGE_OS2_SIGNATURE 0x454E /* NE */ |
| #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ |
| #define IMAGE_VXD_SIGNATURE 0x454C /* LE */ |
| #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ |
| |
| /*********************************************************************** |
| * Structures |
| */ |
| |
| typedef struct _IMAGE_DATA_DIRECTORY { |
| DWORD VirtualAddress; |
| DWORD Size; |
| } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; |
| |
| #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 |
| |
| typedef struct _IMAGE_OPTIONAL_HEADER { |
| |
| /* Standard fields */ |
| |
| WORD Magic; |
| BYTE MajorLinkerVersion; |
| BYTE MinorLinkerVersion; |
| DWORD SizeOfCode; |
| DWORD SizeOfInitializedData; |
| DWORD SizeOfUninitializedData; |
| DWORD AddressOfEntryPoint; |
| DWORD BaseOfCode; |
| DWORD BaseOfData; |
| |
| /* NT additional fields */ |
| |
| DWORD ImageBase; |
| DWORD SectionAlignment; |
| DWORD FileAlignment; |
| WORD MajorOperatingSystemVersion; |
| WORD MinorOperatingSystemVersion; |
| WORD MajorImageVersion; |
| WORD MinorImageVersion; |
| WORD MajorSubsystemVersion; |
| WORD MinorSubsystemVersion; |
| DWORD Win32VersionValue; |
| DWORD SizeOfImage; |
| DWORD SizeOfHeaders; |
| DWORD CheckSum; |
| WORD Subsystem; |
| WORD DllCharacteristics; |
| DWORD SizeOfStackReserve; |
| DWORD SizeOfStackCommit; |
| DWORD SizeOfHeapReserve; |
| DWORD SizeOfHeapCommit; |
| DWORD LoaderFlags; |
| DWORD NumberOfRvaAndSizes; |
| IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; |
| } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER; |
| |
| typedef struct _IMAGE_FILE_HEADER { |
| WORD Machine; |
| WORD NumberOfSections; |
| DWORD TimeDateStamp; |
| DWORD PointerToSymbolTable; |
| DWORD NumberOfSymbols; |
| WORD SizeOfOptionalHeader; |
| WORD Characteristics; |
| } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; |
| |
| typedef struct _IMAGE_NT_HEADERS { |
| DWORD Signature; |
| IMAGE_FILE_HEADER FileHeader; |
| IMAGE_OPTIONAL_HEADER OptionalHeader; |
| } IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS; |
| |
| #define IMAGE_SIZEOF_SHORT_NAME 8 |
| |
| typedef struct _IMAGE_SECTION_HEADER { |
| BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; |
| union { |
| DWORD PhysicalAddress; |
| DWORD VirtualSize; |
| } Misc; |
| DWORD VirtualAddress; |
| DWORD SizeOfRawData; |
| DWORD PointerToRawData; |
| DWORD PointerToRelocations; |
| DWORD PointerToLinenumbers; |
| WORD NumberOfRelocations; |
| WORD NumberOfLinenumbers; |
| DWORD Characteristics; |
| } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; |
| |
| typedef struct _LOADED_IMAGE { |
| LPSTR ModuleName; |
| HANDLE hFile; |
| PUCHAR MappedAddress; |
| PIMAGE_NT_HEADERS FileHeader; |
| PIMAGE_SECTION_HEADER LastRvaSection; |
| ULONG NumberOfSections; |
| PIMAGE_SECTION_HEADER Sections; |
| ULONG Characteristics; |
| BOOLEAN fSystemImage; |
| BOOLEAN fDOSImage; |
| LIST_ENTRY Links; |
| ULONG SizeOfImage; |
| } LOADED_IMAGE, *PLOADED_IMAGE; |
| |
| typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { |
| DWORD Characteristics; |
| DWORD TimeDateStamp; |
| WORD MajorVersion; |
| WORD MinorVersion; |
| DWORD GlobalFlagsClear; |
| DWORD GlobalFlagsSet; |
| DWORD CriticalSectionDefaultTimeout; |
| DWORD DeCommitFreeBlockThreshold; |
| DWORD DeCommitTotalFreeThreshold; |
| PVOID LockPrefixTable; |
| DWORD MaximumAllocationSize; |
| DWORD VirtualMemoryThreshold; |
| DWORD ProcessHeapFlags; |
| DWORD ProcessAffinityMask; |
| WORD CSDVersion; |
| WORD Reserved1; |
| PVOID EditList; |
| DWORD Reserved[1]; |
| } IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY; |
| |
| typedef struct _WIN_CERTIFICATE { |
| DWORD dwLength; |
| WORD wRevision; /* WIN_CERT_REVISON_xxx */ |
| WORD wCertificateType; /* WIN_CERT_TYPE_xxx */ |
| BYTE bCertificate[ANYSIZE_ARRAY]; |
| } WIN_CERTIFICATE, *PWIN_CERTIFICATE; |
| |
| typedef struct _API_VERSION { |
| USHORT MajorVersion; |
| USHORT MinorVersion; |
| USHORT Revision; |
| USHORT Reserved; |
| } API_VERSION, *PAPI_VERSION; |
| |
| typedef struct _IMAGE_FUNCTION_ENTRY { |
| DWORD StartingAddress; |
| DWORD EndingAddress; |
| DWORD EndOfPrologue; |
| } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; |
| |
| typedef struct _IMAGE_DEBUG_DIRECTORY { |
| DWORD Characteristics; |
| DWORD TimeDateStamp; |
| WORD MajorVersion; |
| WORD MinorVersion; |
| DWORD Type; |
| DWORD SizeOfData; |
| DWORD AddressOfRawData; |
| DWORD PointerToRawData; |
| } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; |
| |
| typedef struct _IMAGE_COFF_SYMBOLS_HEADER { |
| DWORD NumberOfSymbols; |
| DWORD LvaToFirstSymbol; |
| DWORD NumberOfLinenumbers; |
| DWORD LvaToFirstLinenumber; |
| DWORD RvaToFirstByteOfCode; |
| DWORD RvaToLastByteOfCode; |
| DWORD RvaToFirstByteOfData; |
| DWORD RvaToLastByteOfData; |
| } IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; |
| |
| typedef struct _FPO_DATA { |
| DWORD ulOffStart; |
| DWORD cbProcSize; |
| DWORD cdwLocals; |
| WORD cdwParams; |
| unsigned cbProlog : 8; |
| unsigned cbRegs : 3; |
| unsigned fHasSEH : 1; |
| unsigned fUseBP : 1; |
| unsigned reserved : 1; |
| unsigned cbFrame : 2; |
| } FPO_DATA, *PFPO_DATA; |
| |
| typedef struct _IMAGE_DEBUG_INFORMATION { |
| LIST_ENTRY List; |
| DWORD Size; |
| PVOID MappedBase; |
| USHORT Machine; |
| USHORT Characteristics; |
| DWORD CheckSum; |
| DWORD ImageBase; |
| DWORD SizeOfImage; |
| |
| DWORD NumberOfSections; |
| PIMAGE_SECTION_HEADER Sections; |
| |
| DWORD ExportedNamesSize; |
| LPSTR ExportedNames; |
| |
| DWORD NumberOfFunctionTableEntries; |
| PIMAGE_FUNCTION_ENTRY FunctionTableEntries; |
| DWORD LowestFunctionStartingAddress; |
| DWORD HighestFunctionEndingAddress; |
| |
| DWORD NumberOfFpoTableEntries; |
| PFPO_DATA FpoTableEntries; |
| |
| DWORD SizeOfCoffSymbols; |
| PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols; |
| |
| DWORD SizeOfCodeViewSymbols; |
| PVOID CodeViewSymbols; |
| |
| LPSTR ImageFilePath; |
| LPSTR ImageFileName; |
| LPSTR DebugFilePath; |
| |
| DWORD TimeDateStamp; |
| |
| BOOL RomImage; |
| PIMAGE_DEBUG_DIRECTORY DebugDirectory; |
| DWORD NumberOfDebugDirectories; |
| |
| DWORD Reserved[3]; |
| } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION; |
| |
| typedef struct _ADDRESS { |
| DWORD Offset; |
| WORD Segment; |
| ADDRESS_MODE Mode; |
| } ADDRESS, *PADDRESS; |
| |
| typedef struct _KDHELP { |
| DWORD Thread; |
| DWORD ThCallbackStack; |
| DWORD NextCallback; |
| DWORD FramePointer; |
| DWORD KiCallUserMode; |
| DWORD KeUserCallbackDispatcher; |
| DWORD SystemRangeStart; |
| } KDHELP, *PKDHELP; |
| |
| typedef struct _STACKFRAME { |
| ADDRESS AddrPC; |
| ADDRESS AddrReturn; |
| ADDRESS AddrFrame; |
| ADDRESS AddrStack; |
| PVOID FuncTableEntry; |
| DWORD Params[4]; |
| BOOL Far; |
| BOOL Virtual; |
| DWORD Reserved[3]; |
| KDHELP KdHelp; |
| } STACKFRAME, *PSTACKFRAME; |
| |
| typedef struct _IMAGEHLP_SYMBOL { |
| DWORD SizeOfStruct; |
| DWORD Address; |
| DWORD Size; |
| DWORD Flags; |
| DWORD MaxNameLength; |
| CHAR Name[ANYSIZE_ARRAY]; |
| } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL; |
| |
| typedef struct _IMAGEHLP_MODULE { |
| DWORD SizeOfStruct; |
| DWORD BaseOfImage; |
| DWORD ImageSize; |
| DWORD TimeDateStamp; |
| DWORD CheckSum; |
| DWORD NumSyms; |
| SYM_TYPE32 SymType; |
| CHAR ModuleName[32]; |
| CHAR ImageName[256]; |
| CHAR LoadedImageName[256]; |
| } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE; |
| |
| typedef struct _IMAGEHLP_LINE { |
| DWORD SizeOfStruct; |
| DWORD Key; |
| DWORD LineNumber; |
| PCHAR FileName; |
| DWORD Address; |
| } IMAGEHLP_LINE, *PIMAGEHLP_LINE; |
| |
| typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD { |
| DWORD SizeOfStruct; |
| DWORD BaseOfImage; |
| DWORD CheckSum; |
| DWORD TimeDateStamp; |
| CHAR FileName[MAX_PATH]; |
| BOOLEAN Reparse; |
| } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD; |
| |
| typedef struct _IMAGEHLP_DUPLICATE_SYMBOL { |
| DWORD SizeOfStruct; |
| DWORD NumberOfDups; |
| PIMAGEHLP_SYMBOL Symbol; |
| ULONG SelectedSymbol; |
| } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL; |
| |
| typedef struct _IMAGE_DOS_HEADER { |
| WORD e_magic; |
| WORD e_cblp; |
| WORD e_cp; |
| WORD e_crlc; |
| WORD e_cparhdr; |
| WORD e_minalloc; |
| WORD e_maxalloc; |
| WORD e_ss; |
| WORD e_sp; |
| WORD e_csum; |
| WORD e_ip; |
| WORD e_cs; |
| WORD e_lfarlc; |
| WORD e_ovno; |
| WORD e_res[4]; |
| WORD e_oemid; |
| WORD e_oeminfo; |
| WORD e_res2[10]; |
| LONG e_lfanew; |
| } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; |
| |
| typedef struct _IMAGE_OS2_HEADER { |
| WORD ne_magic; |
| CHAR ne_ver; |
| CHAR ne_rev; |
| WORD ne_enttab; |
| WORD ne_cbenttab; |
| LONG ne_crc; |
| WORD ne_flags; |
| WORD ne_autodata; |
| WORD ne_heap; |
| WORD ne_stack; |
| LONG ne_csip; |
| LONG ne_sssp; |
| WORD ne_cseg; |
| WORD ne_cmod; |
| WORD ne_cbnrestab; |
| WORD ne_segtab; |
| WORD ne_rsrctab; |
| WORD ne_restab; |
| WORD ne_modtab; |
| WORD ne_imptab; |
| LONG ne_nrestab; |
| WORD ne_cmovent; |
| WORD ne_align; |
| WORD ne_cres; |
| BYTE ne_exetyp; |
| BYTE ne_flagsothers; |
| WORD ne_pretthunks; |
| WORD ne_psegrefbytes; |
| WORD ne_swaparea; |
| WORD ne_expver; |
| } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; |
| |
| typedef struct _IMAGE_VXD_HEADER { |
| WORD e32_magic; |
| BYTE e32_border; |
| BYTE e32_worder; |
| DWORD e32_level; |
| WORD e32_cpu; |
| WORD e32_os; |
| DWORD e32_ver; |
| DWORD e32_mflags; |
| DWORD e32_mpages; |
| DWORD e32_startobj; |
| DWORD e32_eip; |
| DWORD e32_stackobj; |
| DWORD e32_esp; |
| DWORD e32_pagesize; |
| DWORD e32_lastpagesize; |
| DWORD e32_fixupsize; |
| DWORD e32_fixupsum; |
| DWORD e32_ldrsize; |
| DWORD e32_ldrsum; |
| DWORD e32_objtab; |
| DWORD e32_objcnt; |
| DWORD e32_objmap; |
| DWORD e32_itermap; |
| DWORD e32_rsrctab; |
| DWORD e32_rsrccnt; |
| DWORD e32_restab; |
| DWORD e32_enttab; |
| DWORD e32_dirtab; |
| DWORD e32_dircnt; |
| DWORD e32_fpagetab; |
| DWORD e32_frectab; |
| DWORD e32_impmod; |
| DWORD e32_impmodcnt; |
| DWORD e32_impproc; |
| DWORD e32_pagesum; |
| DWORD e32_datapage; |
| DWORD e32_preload; |
| DWORD e32_nrestab; |
| DWORD e32_cbnrestab; |
| DWORD e32_nressum; |
| DWORD e32_autodata; |
| DWORD e32_debuginfo; |
| DWORD e32_debuglen; |
| DWORD e32_instpreload; |
| DWORD e32_instdemand; |
| DWORD e32_heapsize; |
| BYTE e32_res3[12]; |
| DWORD e32_winresoff; |
| DWORD e32_winreslen; |
| WORD e32_devid; |
| WORD e32_ddkver; |
| } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; |
| |
| /*********************************************************************** |
| * Callbacks |
| */ |
| |
| typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)( |
| IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName, |
| ULONG Va, ULONG Parameter |
| ); |
| |
| typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)( |
| LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext |
| ); |
| |
| typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)( |
| LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize, |
| PVOID UserContext |
| ); |
| |
| typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)( |
| LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize, |
| PVOID UserContext |
| ); |
| |
| typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)( |
| HANDLE hProcess, ULONG ActionCode, PVOID CallbackData, |
| PVOID UserContext |
| ); |
| |
| typedef BOOL (CALLBACK *DIGEST_FUNCTION)( |
| DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength |
| ); |
| |
| typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)( |
| HANDLE hProcess, PCVOID lpBaseAddress, PVOID lpBuffer, |
| DWORD nSize, PDWORD lpNumberOfBytesRead |
| ); |
| |
| typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)( |
| HANDLE hProcess, DWORD AddrBase |
| ); |
| |
| typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)( |
| HANDLE hProcess, DWORD ReturnAddress); |
| |
| typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)( |
| HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr |
| ); |
| |
| /*********************************************************************** |
| * Functions |
| */ |
| |
| BOOL WINAPI BindImage( |
| LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath |
| ); |
| BOOL WINAPI BindImageEx( |
| DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath, |
| PIMAGEHLP_STATUS_ROUTINE StatusRoutine |
| ); |
| PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile( |
| LPVOID BaseAddress, DWORD FileLength, |
| LPDWORD HeaderSum, LPDWORD CheckSum |
| ); |
| BOOL WINAPI EnumerateLoadedModules( |
| HANDLE hProcess, |
| PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback, |
| PVOID UserContext |
| ); |
| HANDLE WINAPI FindDebugInfoFile( |
| LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath |
| ); |
| HANDLE WINAPI FindExecutableImage( |
| LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath |
| ); |
| BOOL WINAPI GetImageConfigInformation( |
| PLOADED_IMAGE LoadedImage, |
| PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation |
| ); |
| DWORD WINAPI GetImageUnusedHeaderBytes( |
| PLOADED_IMAGE LoadedImage, |
| LPDWORD SizeUnusedHeaderBytes |
| ); |
| DWORD WINAPI GetTimestampForLoadedLibrary( |
| HMODULE Module |
| ); |
| BOOL WINAPI ImageAddCertificate( |
| HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index |
| ); |
| PVOID WINAPI ImageDirectoryEntryToData( |
| PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size |
| ); |
| BOOL WINAPI ImageEnumerateCertificates( |
| HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount, |
| PDWORD Indices, DWORD IndexCount |
| ); |
| BOOL WINAPI ImageGetCertificateData( |
| HANDLE FileHandle, DWORD CertificateIndex, |
| PWIN_CERTIFICATE Certificate, PDWORD RequiredLength |
| ); |
| BOOL WINAPI ImageGetCertificateHeader( |
| HANDLE FileHandle, DWORD CertificateIndex, |
| PWIN_CERTIFICATE Certificateheader |
| ); |
| BOOL WINAPI ImageGetDigestStream( |
| HANDLE FileHandle, DWORD DigestLevel, |
| DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle |
| ); |
| PLOADED_IMAGE WINAPI ImageLoad( |
| LPSTR DllName, LPSTR DllPath |
| ); |
| PIMAGE_NT_HEADERS WINAPI ImageNtHeader( |
| PVOID Base |
| ); |
| BOOL WINAPI ImageRemoveCertificate( |
| HANDLE FileHandle, DWORD Index |
| ); |
| PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection( |
| PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva |
| ); |
| PVOID WINAPI ImageRvaToVa( |
| PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva, |
| PIMAGE_SECTION_HEADER *LastRvaSection |
| ); |
| BOOL WINAPI ImageUnload( |
| PLOADED_IMAGE LoadedImage |
| ); |
| PAPI_VERSION WINAPI ImagehlpApiVersion( |
| void |
| ); |
| PAPI_VERSION WINAPI ImagehlpApiVersionEx( |
| PAPI_VERSION AppVersion |
| ); |
| BOOL WINAPI MakeSureDirectoryPathExists( |
| LPCSTR DirPath |
| ); |
| BOOL WINAPI MapAndLoad( |
| LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage, |
| BOOL DotDll, BOOL ReadOnly |
| ); |
| PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation( |
| HANDLE FileHandle, LPSTR FileName, |
| LPSTR SymbolPath, DWORD ImageBase |
| ); |
| DWORD WINAPI MapFileAndCheckSumA( |
| LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum |
| ); |
| DWORD WINAPI MapFileAndCheckSumW( |
| LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum |
| ); |
| BOOL WINAPI ReBaseImage( |
| LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase, |
| BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, |
| ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize, |
| ULONG *NewImageBase, ULONG TimeStamp |
| ); |
| BOOL WINAPI RemovePrivateCvSymbolic( |
| PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize |
| ); |
| VOID WINAPI RemoveRelocations( |
| PCHAR ImageName |
| ); |
| BOOL WINAPI SearchTreeForFile( |
| LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer |
| ); |
| BOOL WINAPI SetImageConfigInformation( |
| PLOADED_IMAGE LoadedImage, |
| PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation |
| ); |
| BOOL WINAPI SplitSymbols( |
| LPSTR ImageName, LPSTR SymbolsPath, |
| LPSTR SymbolFilePath, DWORD Flags |
| ); |
| BOOL WINAPI StackWalk( |
| DWORD MachineType, HANDLE hProcess, HANDLE hThread, |
| PSTACKFRAME StackFrame, PVOID ContextRecord, |
| PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, |
| PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, |
| PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, |
| PTRANSLATE_ADDRESS_ROUTINE TranslateAddress |
| ); |
| BOOL WINAPI SymCleanup( |
| HANDLE hProcess |
| ); |
| BOOL WINAPI SymEnumerateModules( |
| HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback, |
| PVOID UserContext |
| ); |
| BOOL WINAPI SymEnumerateSymbols( |
| HANDLE hProcess, DWORD BaseOfDll, |
| PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext |
| ); |
| PVOID WINAPI SymFunctionTableAccess( |
| HANDLE hProcess, DWORD AddrBase |
| ); |
| DWORD WINAPI SymGetModuleBase( |
| HANDLE hProcess, DWORD dwAddr |
| ); |
| BOOL WINAPI SymGetModuleInfo( |
| HANDLE hProcess, DWORD dwAddr, |
| PIMAGEHLP_MODULE ModuleInfo |
| ); |
| DWORD WINAPI SymGetOptions( |
| void |
| ); |
| BOOL WINAPI SymGetSearchPath( |
| HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength |
| ); |
| BOOL WINAPI SymGetSymFromAddr( |
| HANDLE hProcess, DWORD dwAddr, |
| PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol |
| ); |
| BOOL WINAPI SymGetSymFromName( |
| HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol |
| ); |
| BOOL WINAPI SymGetSymNext( |
| HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol |
| ); |
| BOOL WINAPI SymGetSymPrev( |
| HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol |
| ); |
| BOOL WINAPI SymInitialize( |
| HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess |
| ); |
| BOOL WINAPI SymLoadModule( |
| HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName, |
| DWORD BaseOfDll, DWORD SizeOfDll |
| ); |
| BOOL WINAPI SymRegisterCallback( |
| HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction, |
| PVOID UserContext |
| ); |
| DWORD WINAPI SymSetOptions( |
| DWORD SymOptions |
| ); |
| BOOL WINAPI SymSetSearchPath( |
| HANDLE hProcess, LPSTR szSearchPath |
| ); |
| BOOL WINAPI SymUnDName( |
| PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength |
| ); |
| BOOL WINAPI SymUnloadModule( |
| HANDLE hProcess, DWORD BaseOfDll |
| ); |
| BOOL WINAPI TouchFileTimes( |
| HANDLE FileHandle, LPSYSTEMTIME lpSystemTime |
| ); |
| DWORD WINAPI UnDecorateSymbolName( |
| LPCSTR DecoratedName, LPSTR UnDecoratedName, |
| DWORD UndecoratedLength, DWORD Flags |
| ); |
| BOOL WINAPI UnMapAndLoad( |
| PLOADED_IMAGE LoadedImage |
| ); |
| BOOL WINAPI UnmapDebugInformation( |
| PIMAGE_DEBUG_INFORMATION DebugInfo |
| ); |
| BOOL WINAPI UpdateDebugInfoFile( |
| LPSTR ImageFileName, LPSTR SymbolPath, |
| LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders |
| ); |
| BOOL WINAPI UpdateDebugInfoFileEx( |
| LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath, |
| PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum |
| ); |
| |
| /*********************************************************************** |
| * Wine specific |
| */ |
| |
| extern HANDLE IMAGEHLP_hHeap; |
| |
| #ifdef __cplusplus |
| } /* extern "C" */ |
| #endif /* defined(__cplusplus) */ |
| |
| #endif /* __WINE_IMAGEHLP_H */ |
| |
| |
| |