Implementation of the new monitor abstraction.
[wine.git] / include / imagehlp.h
blob34949b2ed49bba7a4ec0d780f1b71ec03c760390
1 /*
2 * imagehlp.h - Declarations for IMAGEHLP
3 */
5 #ifndef __WINE_IMAGEHLP_H
6 #define __WINE_IMAGEHLP_H
8 #include "toolhelp.h"
9 #include "winnt.h"
10 #include "wintypes.h"
12 /***********************************************************************
13 * Types
16 typedef PVOID DIGEST_HANDLE32;
18 /***********************************************************************
19 * Enums/Defines
22 typedef enum _IMAGEHLP_STATUS_REASON32 {
23 BindOutOfMemory,
24 BindRvaToVaFailed,
25 BindNoRoomInImage,
26 BindImportModuleFailed,
27 BindImportProcedureFailed,
28 BindImportModule,
29 BindImportProcedure,
30 BindForwarder,
31 BindForwarderNOT,
32 BindImageModified,
33 BindExpandFileHeaders,
34 BindImageComplete,
35 BindMismatchedSymbols,
36 BindSymbolsNotUpdated
37 } IMAGEHLP_STATUS_REASON32;
39 #define BIND_NO_BOUND_IMPORTS 0x00000001
40 #define BIND_NO_UPDATE 0x00000002
41 #define BIND_ALL_IMAGES 0x00000004
42 #define BIND_CACHE_IMPORT_DLLS 0x00000008
44 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
45 #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
46 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
47 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
49 #define CERT_SECTION_TYPE_ANY 0xFF
51 #define WIN_CERT_REVISION_1_0 0x0100
52 #define WIN_CERT_REVISION_2_0 0x0200
54 #define WIN_CERT_TYPE_X509 0x0001 /* X.509 Certificate */
55 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
56 #define WIN_CERT_TYPE_RESERVED_1 0x0003 /* Reserved */
58 #define SPLITSYM_REMOVE_PRIVATE 0x00000001
59 #define SPLITSYM_EXTRACT_ALL 0x00000002
60 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
62 #define IMAGE_DEBUG_TYPE_UNKNOWN 0
63 #define IMAGE_DEBUG_TYPE_COFF 1
64 #define IMAGE_DEBUG_TYPE_CODEVIEW 2
65 #define IMAGE_DEBUG_TYPE_FPO 3
66 #define IMAGE_DEBUG_TYPE_MISC 4
67 #define IMAGE_DEBUG_TYPE_EXCEPTION 5
68 #define IMAGE_DEBUG_TYPE_FIXUP 6
69 #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
70 #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
71 #define IMAGE_DEBUG_TYPE_BORLAND 9
72 #define IMAGE_DEBUG_TYPE_RESERVED10 10
74 #define FRAME_FPO 0
75 #define FRAME_TRAP 1
76 #define FRAME_TSS 2
77 #define FRAME_NONFPO 3
79 #define CHECKSUM_SUCCESS 0
80 #define CHECKSUM_OPEN_FAILURE 1
81 #define CHECKSUM_MAP_FAILURE 2
82 #define CHECKSUM_MAPVIEW_FAILURE 3
83 #define CHECKSUM_UNICODE_FAILURE 4
85 typedef enum _ADRESS_MODE32 {
86 AddrMode1616,
87 AddrMode1632,
88 AddrModeReal,
89 AddrModeFlat
90 } ADDRESS_MODE32;
92 #define SYMOPT_CASE_INSENSITIVE 0x00000001
93 #define SYMOPT_UNDNAME 0x00000002
94 #define SYMOPT_DEFERRED_LOADS 0x00000004
95 #define SYMOPT_NO_CPP 0x00000008
96 #define SYMOPT_LOAD_LINES 0x00000010
97 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
99 #define SYMF_OMAP_GENERATED 0x00000001
100 #define SYMF_OMAP_MODIFIED 0x00000002
102 typedef enum _SYM_TYPE32 {
103 SymNone,
104 SymCoff,
105 SymCv,
106 SymPdb,
107 SymExport,
108 SymDeferred,
109 SymSym /* .sym file */
110 } SYM_TYPE32;
112 #define UNDNAME_COMPLETE 0x0000
113 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
114 #define UNDNAME_NO_MS_KEYWORDS 0x0002
115 #define UNDNAME_NO_FUNCTION_RETURNS 0x0004
116 #define UNDNAME_NO_ALLOCATION_MODEL 0x0008
117 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
118 #define UNDNAME_NO_MS_THISTYPE 0x0020
119 #define UNDNAME_NO_CV_THISTYPE 0x0040
120 #define UNDNAME_NO_THISTYPE 0x0060
121 #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080
122 #define UNDNAME_NO_THROW_SIGNATURES 0x0100
123 #define UNDNAME_NO_MEMBER_TYPE 0x0200
124 #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400
125 #define UNDNAME_32_BIT_DECODE 0x0800
126 #define UNDNAME_NAME_ONLY 0x1000
127 #define UNDNAME_NO_ARGUMENTS 0x2000
128 #define UNDNAME_NO_SPECIAL_SYMS 0x4000
130 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
131 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
132 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
133 #define CBA_SYMBOLS_UNLOADED 0x00000004
134 #define CBA_DUPLICATE_SYMBOL 0x00000005
136 #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */
137 #define IMAGE_OS2_SIGNATURE 0x454E /* NE */
138 #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */
139 #define IMAGE_VXD_SIGNATURE 0x454C /* LE */
140 #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */
142 /***********************************************************************
143 * Structures
146 typedef struct _IMAGE_DATA_DIRECTORY32 {
147 DWORD VirtualAddress;
148 DWORD Size;
149 } IMAGE_DATA_DIRECTORY32, *PIMAGE_DATA_DIRECTORY32;
151 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
153 typedef struct _IMAGE_OPTIONAL_HEADER32 {
155 /* Standard fields */
157 WORD Magic;
158 BYTE MajorLinkerVersion;
159 BYTE MinorLinkerVersion;
160 DWORD SizeOfCode;
161 DWORD SizeOfInitializedData;
162 DWORD SizeOfUninitializedData;
163 DWORD AddressOfEntryPoint;
164 DWORD BaseOfCode;
165 DWORD BaseOfData;
167 /* NT additional fields */
169 DWORD ImageBase;
170 DWORD SectionAlignment;
171 DWORD FileAlignment;
172 WORD MajorOperatingSystemVersion;
173 WORD MinorOperatingSystemVersion;
174 WORD MajorImageVersion;
175 WORD MinorImageVersion;
176 WORD MajorSubsystemVersion;
177 WORD MinorSubsystemVersion;
178 DWORD Win32VersionValue;
179 DWORD SizeOfImage;
180 DWORD SizeOfHeaders;
181 DWORD CheckSum;
182 WORD Subsystem;
183 WORD DllCharacteristics;
184 DWORD SizeOfStackReserve;
185 DWORD SizeOfStackCommit;
186 DWORD SizeOfHeapReserve;
187 DWORD SizeOfHeapCommit;
188 DWORD LoaderFlags;
189 DWORD NumberOfRvaAndSizes;
190 IMAGE_DATA_DIRECTORY32 DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
191 } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
193 typedef struct _IMAGE_FILE_HEADER32 {
194 WORD Machine;
195 WORD NumberOfSections;
196 DWORD TimeDateStamp;
197 DWORD PointerToSymbolTable;
198 DWORD NumberOfSymbols;
199 WORD SizeOfOptionalHeader;
200 WORD Characteristics;
201 } IMAGE_FILE_HEADER32, *PIMAGE_FILE_HEADER32;
203 typedef struct _IMAGE_NT_HEADERS32 {
204 DWORD Signature;
205 IMAGE_FILE_HEADER32 FileHeader;
206 IMAGE_OPTIONAL_HEADER32 OptionalHeader;
207 } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
209 #define IMAGE_SIZEOF_SHORT_NAME 8
211 typedef struct _IMAGE_SECTION_HEADER32 {
212 BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
213 union {
214 DWORD PhysicalAddress;
215 DWORD VirtualSize;
216 } Misc;
217 DWORD VirtualAddress;
218 DWORD SizeOfRawData;
219 DWORD PointerToRawData;
220 DWORD PointerToRelocations;
221 DWORD PointerToLinenumbers;
222 WORD NumberOfRelocations;
223 WORD NumberOfLinenumbers;
224 DWORD Characteristics;
225 } IMAGE_SECTION_HEADER32, *PIMAGE_SECTION_HEADER32;
227 typedef struct _LOADED_IMAGE32 {
228 LPSTR ModuleName;
229 HANDLE32 hFile;
230 PUCHAR MappedAddress;
231 PIMAGE_NT_HEADERS32 FileHeader;
232 PIMAGE_SECTION_HEADER32 LastRvaSection;
233 ULONG NumberOfSections;
234 PIMAGE_SECTION_HEADER32 Sections;
235 ULONG Characteristics;
236 BOOLEAN fSystemImage;
237 BOOLEAN fDOSImage;
238 LIST_ENTRY32 Links;
239 ULONG SizeOfImage;
240 } LOADED_IMAGE32, *PLOADED_IMAGE32;
242 typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32 {
243 DWORD Characteristics;
244 DWORD TimeDateStamp;
245 WORD MajorVersion;
246 WORD MinorVersion;
247 DWORD GlobalFlagsClear;
248 DWORD GlobalFlagsSet;
249 DWORD CriticalSectionDefaultTimeout;
250 DWORD DeCommitFreeBlockThreshold;
251 DWORD DeCommitTotalFreeThreshold;
252 PVOID LockPrefixTable;
253 DWORD MaximumAllocationSize;
254 DWORD VirtualMemoryThreshold;
255 DWORD ProcessHeapFlags;
256 DWORD ProcessAffinityMask;
257 WORD CSDVersion;
258 WORD Reserved1;
259 PVOID EditList;
260 DWORD Reserved[1];
261 } IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32;
263 typedef struct _WIN_CERTIFICATE32 {
264 DWORD dwLength;
265 WORD wRevision; /* WIN_CERT_REVISON_xxx */
266 WORD wCertificateType; /* WIN_CERT_TYPE_xxx */
267 BYTE bCertificate[ANYSIZE_ARRAY];
268 } WIN_CERTIFICATE32, *PWIN_CERTIFICATE32;
270 typedef struct _API_VERSION32 {
271 USHORT MajorVersion;
272 USHORT MinorVersion;
273 USHORT Revision;
274 USHORT Reserved;
275 } API_VERSION32, *PAPI_VERSION32;
277 typedef struct _IMAGE_FUNCTION_ENTRY32 {
278 DWORD StartingAddress;
279 DWORD EndingAddress;
280 DWORD EndOfPrologue;
281 } IMAGE_FUNCTION_ENTRY32, *PIMAGE_FUNCTION_ENTRY32;
283 typedef struct _IMAGE_DEBUG_DIRECTORY32 {
284 DWORD Characteristics;
285 DWORD TimeDateStamp;
286 WORD MajorVersion;
287 WORD MinorVersion;
288 DWORD Type;
289 DWORD SizeOfData;
290 DWORD AddressOfRawData;
291 DWORD PointerToRawData;
292 } IMAGE_DEBUG_DIRECTORY32, *PIMAGE_DEBUG_DIRECTORY32;
294 typedef struct _IMAGE_COFF_SYMBOLS_HEADER32 {
295 DWORD NumberOfSymbols;
296 DWORD LvaToFirstSymbol;
297 DWORD NumberOfLinenumbers;
298 DWORD LvaToFirstLinenumber;
299 DWORD RvaToFirstByteOfCode;
300 DWORD RvaToLastByteOfCode;
301 DWORD RvaToFirstByteOfData;
302 DWORD RvaToLastByteOfData;
303 } IMAGE_COFF_SYMBOLS_HEADER32, *PIMAGE_COFF_SYMBOLS_HEADER32;
305 typedef struct _FPO_DATA32 {
306 DWORD ulOffStart;
307 DWORD cbProcSize;
308 DWORD cdwLocals;
309 WORD cdwParams;
310 WORD cbProlog : 8;
311 WORD cbRegs : 3;
312 WORD fHasSEH : 1;
313 WORD fUseBP : 1;
314 WORD reserved : 1;
315 WORD cbFrame : 2;
316 } FPO_DATA32, *PFPO_DATA32;
318 typedef struct _IMAGE_DEBUG_INFORMATION32 {
319 LIST_ENTRY32 List;
320 DWORD Size;
321 PVOID MappedBase;
322 USHORT Machine;
323 USHORT Characteristics;
324 DWORD CheckSum;
325 DWORD ImageBase;
326 DWORD SizeOfImage;
328 DWORD NumberOfSections;
329 PIMAGE_SECTION_HEADER32 Sections;
331 DWORD ExportedNamesSize;
332 LPSTR ExportedNames;
334 DWORD NumberOfFunctionTableEntries;
335 PIMAGE_FUNCTION_ENTRY32 FunctionTableEntries;
336 DWORD LowestFunctionStartingAddress;
337 DWORD HighestFunctionEndingAddress;
339 DWORD NumberOfFpoTableEntries;
340 PFPO_DATA32 FpoTableEntries;
342 DWORD SizeOfCoffSymbols;
343 PIMAGE_COFF_SYMBOLS_HEADER32 CoffSymbols;
345 DWORD SizeOfCodeViewSymbols;
346 PVOID CodeViewSymbols;
348 LPSTR ImageFilePath;
349 LPSTR ImageFileName;
350 LPSTR DebugFilePath;
352 DWORD TimeDateStamp;
354 BOOL32 RomImage;
355 PIMAGE_DEBUG_DIRECTORY32 DebugDirectory;
356 DWORD NumberOfDebugDirectories;
358 DWORD Reserved[3];
359 } IMAGE_DEBUG_INFORMATION32, *PIMAGE_DEBUG_INFORMATION32;
361 typedef struct _ADDRESS32 {
362 DWORD Offset;
363 WORD Segment;
364 ADDRESS_MODE32 Mode;
365 } ADDRESS32, *PADDRESS32;
367 typedef struct _KDHELP32 {
368 DWORD Thread;
369 DWORD ThCallbackStack;
370 DWORD NextCallback;
371 DWORD FramePointer;
372 DWORD KiCallUserMode;
373 DWORD KeUserCallbackDispatcher;
374 DWORD SystemRangeStart;
375 } KDHELP32, *PKDHELP32;
377 typedef struct _STACKFRAME32 {
378 ADDRESS32 AddrPC;
379 ADDRESS32 AddrReturn;
380 ADDRESS32 AddrFrame;
381 ADDRESS32 AddrStack;
382 PVOID FuncTableEntry;
383 DWORD Params[4];
384 BOOL32 Far;
385 BOOL32 Virtual;
386 DWORD Reserved[3];
387 KDHELP32 KdHelp;
388 } STACKFRAME32, *PSTACKFRAME32;
390 typedef struct _IMAGEHLP_SYMBOL32 {
391 DWORD SizeOfStruct;
392 DWORD Address;
393 DWORD Size;
394 DWORD Flags;
395 DWORD MaxNameLength;
396 CHAR Name[ANYSIZE_ARRAY];
397 } IMAGEHLP_SYMBOL32, *PIMAGEHLP_SYMBOL32;
399 typedef struct _IMAGEHLP_MODULE32 {
400 DWORD SizeOfStruct;
401 DWORD BaseOfImage;
402 DWORD ImageSize;
403 DWORD TimeDateStamp;
404 DWORD CheckSum;
405 DWORD NumSyms;
406 SYM_TYPE32 SymType;
407 CHAR ModuleName[32];
408 CHAR ImageName[256];
409 CHAR LoadedImageName[256];
410 } IMAGEHLP_MODULE32, *PIMAGEHLP_MODULE32;
412 typedef struct _IMAGEHLP_LINE32 {
413 DWORD SizeOfStruct;
414 DWORD Key;
415 DWORD LineNumber;
416 PCHAR FileName;
417 DWORD Address;
418 } IMAGEHLP_LINE32, *PIMAGEHLP_LINE32;
420 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD32 {
421 DWORD SizeOfStruct;
422 DWORD BaseOfImage;
423 DWORD CheckSum;
424 DWORD TimeDateStamp;
425 CHAR FileName[MAX_PATH];
426 BOOLEAN Reparse;
427 } IMAGEHLP_DEFERRED_SYMBOL_LOAD32, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD32;
429 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL32 {
430 DWORD SizeOfStruct;
431 DWORD NumberOfDups;
432 PIMAGEHLP_SYMBOL32 Symbol;
433 ULONG SelectedSymbol;
434 } IMAGEHLP_DUPLICATE_SYMBOL32, *PIMAGEHLP_DUPLICATE_SYMBOL32;
436 typedef struct _IMAGE_DOS_HEADER32 {
437 WORD e_magic;
438 WORD e_cblp;
439 WORD e_cp;
440 WORD e_crlc;
441 WORD e_cparhdr;
442 WORD e_minalloc;
443 WORD e_maxalloc;
444 WORD e_ss;
445 WORD e_sp;
446 WORD e_csum;
447 WORD e_ip;
448 WORD e_cs;
449 WORD e_lfarlc;
450 WORD e_ovno;
451 WORD e_res[4];
452 WORD e_oemid;
453 WORD e_oeminfo;
454 WORD e_res2[10];
455 LONG e_lfanew;
456 } IMAGE_DOS_HEADER32, *PIMAGE_DOS_HEADER32;
458 typedef struct _IMAGE_OS2_HEADER32 {
459 WORD ne_magic;
460 CHAR ne_ver;
461 CHAR ne_rev;
462 WORD ne_enttab;
463 WORD ne_cbenttab;
464 LONG ne_crc;
465 WORD ne_flags;
466 WORD ne_autodata;
467 WORD ne_heap;
468 WORD ne_stack;
469 LONG ne_csip;
470 LONG ne_sssp;
471 WORD ne_cseg;
472 WORD ne_cmod;
473 WORD ne_cbnrestab;
474 WORD ne_segtab;
475 WORD ne_rsrctab;
476 WORD ne_restab;
477 WORD ne_modtab;
478 WORD ne_imptab;
479 LONG ne_nrestab;
480 WORD ne_cmovent;
481 WORD ne_align;
482 WORD ne_cres;
483 BYTE ne_exetyp;
484 BYTE ne_flagsothers;
485 WORD ne_pretthunks;
486 WORD ne_psegrefbytes;
487 WORD ne_swaparea;
488 WORD ne_expver;
489 } IMAGE_OS2_HEADER32, *PIMAGE_OS2_HEADER32;
491 typedef struct _IMAGE_VXD_HEADER32 {
492 WORD e32_magic;
493 BYTE e32_border;
494 BYTE e32_worder;
495 DWORD e32_level;
496 WORD e32_cpu;
497 WORD e32_os;
498 DWORD e32_ver;
499 DWORD e32_mflags;
500 DWORD e32_mpages;
501 DWORD e32_startobj;
502 DWORD e32_eip;
503 DWORD e32_stackobj;
504 DWORD e32_esp;
505 DWORD e32_pagesize;
506 DWORD e32_lastpagesize;
507 DWORD e32_fixupsize;
508 DWORD e32_fixupsum;
509 DWORD e32_ldrsize;
510 DWORD e32_ldrsum;
511 DWORD e32_objtab;
512 DWORD e32_objcnt;
513 DWORD e32_objmap;
514 DWORD e32_itermap;
515 DWORD e32_rsrctab;
516 DWORD e32_rsrccnt;
517 DWORD e32_restab;
518 DWORD e32_enttab;
519 DWORD e32_dirtab;
520 DWORD e32_dircnt;
521 DWORD e32_fpagetab;
522 DWORD e32_frectab;
523 DWORD e32_impmod;
524 DWORD e32_impmodcnt;
525 DWORD e32_impproc;
526 DWORD e32_pagesum;
527 DWORD e32_datapage;
528 DWORD e32_preload;
529 DWORD e32_nrestab;
530 DWORD e32_cbnrestab;
531 DWORD e32_nressum;
532 DWORD e32_autodata;
533 DWORD e32_debuginfo;
534 DWORD e32_debuglen;
535 DWORD e32_instpreload;
536 DWORD e32_instdemand;
537 DWORD e32_heapsize;
538 BYTE e32_res3[12];
539 DWORD e32_winresoff;
540 DWORD e32_winreslen;
541 WORD e32_devid;
542 WORD e32_ddkver;
543 } IMAGE_VXD_HEADER32, *PIMAGE_VXD_HEADER32;
545 /***********************************************************************
546 * Callbacks
549 typedef BOOL32 (CALLBACK *PIMAGEHLP_STATUS_ROUTINE32)(
550 IMAGEHLP_STATUS_REASON32 Reason, LPSTR ImageName, LPSTR DllName,
551 ULONG Va, ULONG Parameter
554 typedef BOOL32 (CALLBACK *PSYM_ENUMMODULES_CALLBACK32)(
555 LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
558 typedef BOOL32 (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK32)(
559 LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
560 PVOID UserContext
563 typedef BOOL32 (CALLBACK *PENUMLOADED_MODULES_CALLBACK32)(
564 LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
565 PVOID UserContext
568 typedef BOOL32 (CALLBACK *PSYMBOL_REGISTERED_CALLBACK32)(
569 HANDLE32 hProcess, ULONG ActionCode, PVOID CallbackData,
570 PVOID UserContext
573 typedef BOOL32 (CALLBACK *DIGEST_FUNCTION32)(
574 DIGEST_HANDLE32 refdata, PBYTE pData, DWORD dwLength
577 typedef BOOL32 (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE32)(
578 HANDLE32 hProcess, PCVOID lpBaseAddress, PVOID lpBuffer,
579 DWORD nSize, PDWORD lpNumberOfBytesRead
582 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE32)(
583 HANDLE32 hProcess, DWORD AddrBase
586 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE32)(
587 HANDLE32 hProcess, DWORD ReturnAddress);
589 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE32)(
590 HANDLE32 hProcess, HANDLE32 hThread, PADDRESS32 lpaddr
593 /***********************************************************************
594 * Functions
597 BOOL32 WINAPI BindImage32(
598 LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
600 BOOL32 WINAPI BindImageEx32(
601 DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
602 PIMAGEHLP_STATUS_ROUTINE32 StatusRoutine
604 PIMAGE_NT_HEADERS32 WINAPI CheckSumMappedFile32(
605 LPVOID BaseAddress, DWORD FileLength,
606 LPDWORD HeaderSum, LPDWORD CheckSum
608 BOOL32 WINAPI EnumerateLoadedModules32(
609 HANDLE32 hProcess,
610 PENUMLOADED_MODULES_CALLBACK32 EnumLoadedModulesCallback,
611 PVOID UserContext
613 HANDLE32 WINAPI FindDebugInfoFile32(
614 LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
616 HANDLE32 WINAPI FindExecutableImage32(
617 LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
619 BOOL32 WINAPI GetImageConfigInformation32(
620 PLOADED_IMAGE32 LoadedImage,
621 PIMAGE_LOAD_CONFIG_DIRECTORY32 ImageConfigInformation
623 DWORD WINAPI GetImageUnusedHeaderBytes32(
624 PLOADED_IMAGE32 LoadedImage,
625 LPDWORD SizeUnusedHeaderBytes
627 DWORD WINAPI GetTimestampForLoadedLibrary32(
628 HMODULE32 Module
630 BOOL32 WINAPI ImageAddCertificate32(
631 HANDLE32 FileHandle, PWIN_CERTIFICATE32 Certificate, PDWORD Index
633 PVOID WINAPI ImageDirectoryEntryToData32(
634 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
636 BOOL32 WINAPI ImageEnumerateCertificates32(
637 HANDLE32 FileHandle, WORD TypeFilter, PDWORD CertificateCount,
638 PDWORD Indices, DWORD IndexCount
640 BOOL32 WINAPI ImageGetCertificateData32(
641 HANDLE32 FileHandle, DWORD CertificateIndex,
642 PWIN_CERTIFICATE32 Certificate, PDWORD RequiredLength
644 BOOL32 WINAPI ImageGetCertificateHeader32(
645 HANDLE32 FileHandle, DWORD CertificateIndex,
646 PWIN_CERTIFICATE32 Certificateheader
648 BOOL32 WINAPI ImageGetDigestStream32(
649 HANDLE32 FileHandle, DWORD DigestLevel,
650 DIGEST_FUNCTION32 DigestFunction, DIGEST_HANDLE32 DigestHandle
652 PLOADED_IMAGE32 WINAPI ImageLoad32(
653 LPSTR DllName, LPSTR DllPath
655 PIMAGE_NT_HEADERS32 WINAPI ImageNtHeader32(
656 PVOID Base
658 BOOL32 WINAPI ImageRemoveCertificate32(
659 HANDLE32 FileHandle, DWORD Index
661 PIMAGE_SECTION_HEADER32 WINAPI ImageRvaToSection32(
662 PIMAGE_NT_HEADERS32 NtHeaders, PVOID Base, ULONG Rva
664 PVOID WINAPI ImageRvaToVa32(
665 PIMAGE_NT_HEADERS32 NtHeaders, PVOID Base, ULONG Rva,
666 PIMAGE_SECTION_HEADER32 *LastRvaSection
668 BOOL32 WINAPI ImageUnload32(
669 PLOADED_IMAGE32 LoadedImage
671 PAPI_VERSION32 WINAPI ImagehlpApiVersion32(
672 void
674 PAPI_VERSION32 WINAPI ImagehlpApiVersionEx32(
675 PAPI_VERSION32 AppVersion
677 BOOL32 WINAPI MakeSureDirectoryPathExists32(
678 LPCSTR DirPath
680 BOOL32 WINAPI MapAndLoad32(
681 LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE32 LoadedImage,
682 BOOL32 DotDll, BOOL32 ReadOnly
684 PIMAGE_DEBUG_INFORMATION32 WINAPI MapDebugInformation32(
685 HANDLE32 FileHandle, LPSTR FileName,
686 LPSTR SymbolPath, DWORD ImageBase
688 DWORD WINAPI MapFileAndCheckSum32A(
689 LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
691 DWORD WINAPI MapFileAndCheckSum32W(
692 LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
694 BOOL32 WINAPI ReBaseImage32(
695 LPSTR CurrentImageName, LPSTR SymbolPath, BOOL32 fReBase,
696 BOOL32 fRebaseSysfileOk, BOOL32 fGoingDown, ULONG CheckImageSize,
697 ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
698 ULONG *NewImageBase, ULONG TimeStamp
700 BOOL32 WINAPI RemovePrivateCvSymbolic32(
701 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
703 VOID WINAPI RemoveRelocations32(
704 PCHAR ImageName
706 BOOL32 WINAPI SearchTreeForFile32(
707 LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
709 BOOL32 WINAPI SetImageConfigInformation32(
710 PLOADED_IMAGE32 LoadedImage,
711 PIMAGE_LOAD_CONFIG_DIRECTORY32 ImageConfigInformation
713 BOOL32 WINAPI SplitSymbols32(
714 LPSTR ImageName, LPSTR SymbolsPath,
715 LPSTR SymbolFilePath, DWORD Flags
717 BOOL32 WINAPI StackWalk32(
718 DWORD MachineType, HANDLE32 hProcess, HANDLE32 hThread,
719 PSTACKFRAME32 StackFrame, PVOID ContextRecord,
720 PREAD_PROCESS_MEMORY_ROUTINE32 ReadMemoryRoutine,
721 PFUNCTION_TABLE_ACCESS_ROUTINE32 FunctionTableAccessRoutine,
722 PGET_MODULE_BASE_ROUTINE32 GetModuleBaseRoutine,
723 PTRANSLATE_ADDRESS_ROUTINE32 TranslateAddress
725 BOOL32 WINAPI SymCleanup32(
726 HANDLE32 hProcess
728 BOOL32 WINAPI SymEnumerateModules32(
729 HANDLE32 hProcess, PSYM_ENUMMODULES_CALLBACK32 EnumModulesCallback,
730 PVOID UserContext
732 BOOL32 WINAPI SymEnumerateSymbols32(
733 HANDLE32 hProcess, DWORD BaseOfDll,
734 PSYM_ENUMSYMBOLS_CALLBACK32 EnumSymbolsCallback, PVOID UserContext
736 PVOID WINAPI SymFunctionTableAccess32(
737 HANDLE32 hProcess, DWORD AddrBase
739 DWORD WINAPI SymGetModuleBase32(
740 HANDLE32 hProcess, DWORD dwAddr
742 BOOL32 WINAPI SymGetModuleInfo32(
743 HANDLE32 hProcess, DWORD dwAddr,
744 PIMAGEHLP_MODULE32 ModuleInfo
746 DWORD WINAPI SymGetOptions32(
747 void
749 BOOL32 WINAPI SymGetSearchPath32(
750 HANDLE32 hProcess, LPSTR szSearchPath, DWORD SearchPathLength
752 BOOL32 WINAPI SymGetSymFromAddr32(
753 HANDLE32 hProcess, DWORD dwAddr,
754 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL32 Symbol
756 BOOL32 WINAPI SymGetSymFromName32(
757 HANDLE32 hProcess, LPSTR Name, PIMAGEHLP_SYMBOL32 Symbol
759 BOOL32 WINAPI SymGetSymNext32(
760 HANDLE32 hProcess, PIMAGEHLP_SYMBOL32 Symbol
762 BOOL32 WINAPI SymGetSymPrev32(
763 HANDLE32 hProcess, PIMAGEHLP_SYMBOL32 Symbol
765 BOOL32 WINAPI SymInitialize32(
766 HANDLE32 hProcess, LPSTR UserSearchPath, BOOL32 fInvadeProcess
768 BOOL32 WINAPI SymLoadModule32(
769 HANDLE32 hProcess, HANDLE32 hFile, LPSTR ImageName, LPSTR ModuleName,
770 DWORD BaseOfDll, DWORD SizeOfDll
772 BOOL32 WINAPI SymRegisterCallback32(
773 HANDLE32 hProcess, PSYMBOL_REGISTERED_CALLBACK32 CallbackFunction,
774 PVOID UserContext
776 DWORD WINAPI SymSetOptions32(
777 DWORD SymOptions
779 BOOL32 WINAPI SymSetSearchPath32(
780 HANDLE32 hProcess, LPSTR szSearchPath
782 BOOL32 WINAPI SymUnDName32(
783 PIMAGEHLP_SYMBOL32 sym, LPSTR UnDecName, DWORD UnDecNameLength
785 BOOL32 WINAPI SymUnloadModule32(
786 HANDLE32 hProcess, DWORD BaseOfDll
788 BOOL32 WINAPI TouchFileTimes32(
789 HANDLE32 FileHandle, LPSYSTEMTIME lpSystemTime
791 DWORD WINAPI UnDecorateSymbolName32(
792 LPCSTR DecoratedName, LPSTR UnDecoratedName,
793 DWORD UndecoratedLength, DWORD Flags
795 BOOL32 WINAPI UnMapAndLoad32(
796 PLOADED_IMAGE32 LoadedImage
798 BOOL32 WINAPI UnmapDebugInformation32(
799 PIMAGE_DEBUG_INFORMATION32 DebugInfo
801 BOOL32 WINAPI UpdateDebugInfoFile32(
802 LPSTR ImageFileName, LPSTR SymbolPath,
803 LPSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders
805 BOOL32 WINAPI UpdateDebugInfoFileEx32(
806 LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
807 PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum
810 /***********************************************************************
811 * Wine specific
814 extern HANDLE32 IMAGEHLP_hHeap32;
816 #endif /* __WINE_IMAGEHLP_H */