Release 990226.
[wine/gsoc-2012-control.git] / include / imagehlp.h
blobfc404b20330e2ade4d57d7b049e6e36ee43addeb
1 /*
2 * imagehlp.h - Declarations for IMAGEHLP
3 */
5 #ifndef __WINE_IMAGEHLP_H
6 #define __WINE_IMAGEHLP_H
8 #include "wintypes.h"
9 #include "windef.h"
10 #include "winbase.h"
12 /***********************************************************************
13 * Types
16 typedef PVOID DIGEST_HANDLE;
18 /***********************************************************************
19 * Enums/Defines
22 typedef enum _IMAGEHLP_STATUS_REASON {
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_REASON;
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_MODE {
86 AddrMode1616,
87 AddrMode1632,
88 AddrModeReal,
89 AddrModeFlat
90 } ADDRESS_MODE;
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_TYPE {
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_DIRECTORY {
147 DWORD VirtualAddress;
148 DWORD Size;
149 } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
151 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
153 typedef struct _IMAGE_OPTIONAL_HEADER {
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_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
191 } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
193 typedef struct _IMAGE_FILE_HEADER {
194 WORD Machine;
195 WORD NumberOfSections;
196 DWORD TimeDateStamp;
197 DWORD PointerToSymbolTable;
198 DWORD NumberOfSymbols;
199 WORD SizeOfOptionalHeader;
200 WORD Characteristics;
201 } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
203 typedef struct _IMAGE_NT_HEADERS {
204 DWORD Signature;
205 IMAGE_FILE_HEADER FileHeader;
206 IMAGE_OPTIONAL_HEADER OptionalHeader;
207 } IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;
209 #define IMAGE_SIZEOF_SHORT_NAME 8
211 typedef struct _IMAGE_SECTION_HEADER {
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_HEADER, *PIMAGE_SECTION_HEADER;
227 typedef struct _LOADED_IMAGE {
228 LPSTR ModuleName;
229 HANDLE hFile;
230 PUCHAR MappedAddress;
231 PIMAGE_NT_HEADERS FileHeader;
232 PIMAGE_SECTION_HEADER LastRvaSection;
233 ULONG NumberOfSections;
234 PIMAGE_SECTION_HEADER Sections;
235 ULONG Characteristics;
236 BOOLEAN fSystemImage;
237 BOOLEAN fDOSImage;
238 LIST_ENTRY Links;
239 ULONG SizeOfImage;
240 } LOADED_IMAGE, *PLOADED_IMAGE;
242 typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY {
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_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY;
263 typedef struct _WIN_CERTIFICATE {
264 DWORD dwLength;
265 WORD wRevision; /* WIN_CERT_REVISON_xxx */
266 WORD wCertificateType; /* WIN_CERT_TYPE_xxx */
267 BYTE bCertificate[ANYSIZE_ARRAY];
268 } WIN_CERTIFICATE, *PWIN_CERTIFICATE;
270 typedef struct _API_VERSION {
271 USHORT MajorVersion;
272 USHORT MinorVersion;
273 USHORT Revision;
274 USHORT Reserved;
275 } API_VERSION, *PAPI_VERSION;
277 typedef struct _IMAGE_FUNCTION_ENTRY {
278 DWORD StartingAddress;
279 DWORD EndingAddress;
280 DWORD EndOfPrologue;
281 } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
283 typedef struct _IMAGE_DEBUG_DIRECTORY {
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_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
294 typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
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_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;
305 typedef struct _FPO_DATA {
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_DATA, *PFPO_DATA;
318 typedef struct _IMAGE_DEBUG_INFORMATION {
319 LIST_ENTRY 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_HEADER Sections;
331 DWORD ExportedNamesSize;
332 LPSTR ExportedNames;
334 DWORD NumberOfFunctionTableEntries;
335 PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
336 DWORD LowestFunctionStartingAddress;
337 DWORD HighestFunctionEndingAddress;
339 DWORD NumberOfFpoTableEntries;
340 PFPO_DATA FpoTableEntries;
342 DWORD SizeOfCoffSymbols;
343 PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
345 DWORD SizeOfCodeViewSymbols;
346 PVOID CodeViewSymbols;
348 LPSTR ImageFilePath;
349 LPSTR ImageFileName;
350 LPSTR DebugFilePath;
352 DWORD TimeDateStamp;
354 BOOL RomImage;
355 PIMAGE_DEBUG_DIRECTORY DebugDirectory;
356 DWORD NumberOfDebugDirectories;
358 DWORD Reserved[3];
359 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
361 typedef struct _ADDRESS {
362 DWORD Offset;
363 WORD Segment;
364 ADDRESS_MODE Mode;
365 } ADDRESS, *PADDRESS;
367 typedef struct _KDHELP {
368 DWORD Thread;
369 DWORD ThCallbackStack;
370 DWORD NextCallback;
371 DWORD FramePointer;
372 DWORD KiCallUserMode;
373 DWORD KeUserCallbackDispatcher;
374 DWORD SystemRangeStart;
375 } KDHELP, *PKDHELP;
377 typedef struct _STACKFRAME {
378 ADDRESS AddrPC;
379 ADDRESS AddrReturn;
380 ADDRESS AddrFrame;
381 ADDRESS AddrStack;
382 PVOID FuncTableEntry;
383 DWORD Params[4];
384 BOOL Far;
385 BOOL Virtual;
386 DWORD Reserved[3];
387 KDHELP KdHelp;
388 } STACKFRAME, *PSTACKFRAME;
390 typedef struct _IMAGEHLP_SYMBOL {
391 DWORD SizeOfStruct;
392 DWORD Address;
393 DWORD Size;
394 DWORD Flags;
395 DWORD MaxNameLength;
396 CHAR Name[ANYSIZE_ARRAY];
397 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
399 typedef struct _IMAGEHLP_MODULE {
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_MODULE, *PIMAGEHLP_MODULE;
412 typedef struct _IMAGEHLP_LINE {
413 DWORD SizeOfStruct;
414 DWORD Key;
415 DWORD LineNumber;
416 PCHAR FileName;
417 DWORD Address;
418 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
420 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
421 DWORD SizeOfStruct;
422 DWORD BaseOfImage;
423 DWORD CheckSum;
424 DWORD TimeDateStamp;
425 CHAR FileName[MAX_PATH];
426 BOOLEAN Reparse;
427 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
429 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
430 DWORD SizeOfStruct;
431 DWORD NumberOfDups;
432 PIMAGEHLP_SYMBOL Symbol;
433 ULONG SelectedSymbol;
434 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
436 typedef struct _IMAGE_DOS_HEADER {
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_HEADER, *PIMAGE_DOS_HEADER;
458 typedef struct _IMAGE_OS2_HEADER {
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_HEADER, *PIMAGE_OS2_HEADER;
491 typedef struct _IMAGE_VXD_HEADER {
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_HEADER, *PIMAGE_VXD_HEADER;
545 /***********************************************************************
546 * Callbacks
549 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
550 IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName,
551 ULONG Va, ULONG Parameter
554 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
555 LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
558 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
559 LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
560 PVOID UserContext
563 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
564 LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
565 PVOID UserContext
568 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
569 HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
570 PVOID UserContext
573 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
574 DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
577 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
578 HANDLE hProcess, PCVOID lpBaseAddress, PVOID lpBuffer,
579 DWORD nSize, PDWORD lpNumberOfBytesRead
582 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
583 HANDLE hProcess, DWORD AddrBase
586 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
587 HANDLE hProcess, DWORD ReturnAddress);
589 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
590 HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
593 /***********************************************************************
594 * Functions
597 BOOL WINAPI BindImage(
598 LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
600 BOOL WINAPI BindImageEx(
601 DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
602 PIMAGEHLP_STATUS_ROUTINE StatusRoutine
604 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
605 LPVOID BaseAddress, DWORD FileLength,
606 LPDWORD HeaderSum, LPDWORD CheckSum
608 BOOL WINAPI EnumerateLoadedModules(
609 HANDLE hProcess,
610 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
611 PVOID UserContext
613 HANDLE WINAPI FindDebugInfoFile(
614 LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
616 HANDLE WINAPI FindExecutableImage(
617 LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
619 BOOL WINAPI GetImageConfigInformation(
620 PLOADED_IMAGE LoadedImage,
621 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
623 DWORD WINAPI GetImageUnusedHeaderBytes(
624 PLOADED_IMAGE LoadedImage,
625 LPDWORD SizeUnusedHeaderBytes
627 DWORD WINAPI GetTimestampForLoadedLibrary(
628 HMODULE Module
630 BOOL WINAPI ImageAddCertificate(
631 HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index
633 PVOID WINAPI ImageDirectoryEntryToData(
634 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
636 BOOL WINAPI ImageEnumerateCertificates(
637 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
638 PDWORD Indices, DWORD IndexCount
640 BOOL WINAPI ImageGetCertificateData(
641 HANDLE FileHandle, DWORD CertificateIndex,
642 PWIN_CERTIFICATE Certificate, PDWORD RequiredLength
644 BOOL WINAPI ImageGetCertificateHeader(
645 HANDLE FileHandle, DWORD CertificateIndex,
646 PWIN_CERTIFICATE Certificateheader
648 BOOL WINAPI ImageGetDigestStream(
649 HANDLE FileHandle, DWORD DigestLevel,
650 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
652 PLOADED_IMAGE WINAPI ImageLoad(
653 LPSTR DllName, LPSTR DllPath
655 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
656 PVOID Base
658 BOOL WINAPI ImageRemoveCertificate(
659 HANDLE FileHandle, DWORD Index
661 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
662 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
664 PVOID WINAPI ImageRvaToVa(
665 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
666 PIMAGE_SECTION_HEADER *LastRvaSection
668 BOOL WINAPI ImageUnload(
669 PLOADED_IMAGE LoadedImage
671 PAPI_VERSION WINAPI ImagehlpApiVersion(
672 void
674 PAPI_VERSION WINAPI ImagehlpApiVersionEx(
675 PAPI_VERSION AppVersion
677 BOOL WINAPI MakeSureDirectoryPathExists(
678 LPCSTR DirPath
680 BOOL WINAPI MapAndLoad(
681 LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage,
682 BOOL DotDll, BOOL ReadOnly
684 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
685 HANDLE FileHandle, LPSTR FileName,
686 LPSTR SymbolPath, DWORD ImageBase
688 DWORD WINAPI MapFileAndCheckSumA(
689 LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
691 DWORD WINAPI MapFileAndCheckSumW(
692 LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
694 BOOL WINAPI ReBaseImage(
695 LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
696 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
697 ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
698 ULONG *NewImageBase, ULONG TimeStamp
700 BOOL WINAPI RemovePrivateCvSymbolic(
701 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
703 VOID WINAPI RemoveRelocations(
704 PCHAR ImageName
706 BOOL WINAPI SearchTreeForFile(
707 LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
709 BOOL WINAPI SetImageConfigInformation(
710 PLOADED_IMAGE LoadedImage,
711 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
713 BOOL WINAPI SplitSymbols(
714 LPSTR ImageName, LPSTR SymbolsPath,
715 LPSTR SymbolFilePath, DWORD Flags
717 BOOL WINAPI StackWalk(
718 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
719 PSTACKFRAME StackFrame, PVOID ContextRecord,
720 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
721 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
722 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
723 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
725 BOOL WINAPI SymCleanup(
726 HANDLE hProcess
728 BOOL WINAPI SymEnumerateModules(
729 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
730 PVOID UserContext
732 BOOL WINAPI SymEnumerateSymbols(
733 HANDLE hProcess, DWORD BaseOfDll,
734 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
736 PVOID WINAPI SymFunctionTableAccess(
737 HANDLE hProcess, DWORD AddrBase
739 DWORD WINAPI SymGetModuleBase(
740 HANDLE hProcess, DWORD dwAddr
742 BOOL WINAPI SymGetModuleInfo(
743 HANDLE hProcess, DWORD dwAddr,
744 PIMAGEHLP_MODULE ModuleInfo
746 DWORD WINAPI SymGetOptions(
747 void
749 BOOL WINAPI SymGetSearchPath(
750 HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength
752 BOOL WINAPI SymGetSymFromAddr(
753 HANDLE hProcess, DWORD dwAddr,
754 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
756 BOOL WINAPI SymGetSymFromName(
757 HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol
759 BOOL WINAPI SymGetSymNext(
760 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
762 BOOL WINAPI SymGetSymPrev(
763 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
765 BOOL WINAPI SymInitialize(
766 HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
768 BOOL WINAPI SymLoadModule(
769 HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
770 DWORD BaseOfDll, DWORD SizeOfDll
772 BOOL WINAPI SymRegisterCallback(
773 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
774 PVOID UserContext
776 DWORD WINAPI SymSetOptions(
777 DWORD SymOptions
779 BOOL WINAPI SymSetSearchPath(
780 HANDLE hProcess, LPSTR szSearchPath
782 BOOL WINAPI SymUnDName(
783 PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength
785 BOOL WINAPI SymUnloadModule(
786 HANDLE hProcess, DWORD BaseOfDll
788 BOOL WINAPI TouchFileTimes(
789 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
791 DWORD WINAPI UnDecorateSymbolName(
792 LPCSTR DecoratedName, LPSTR UnDecoratedName,
793 DWORD UndecoratedLength, DWORD Flags
795 BOOL WINAPI UnMapAndLoad(
796 PLOADED_IMAGE LoadedImage
798 BOOL WINAPI UnmapDebugInformation(
799 PIMAGE_DEBUG_INFORMATION DebugInfo
801 BOOL WINAPI UpdateDebugInfoFile(
802 LPSTR ImageFileName, LPSTR SymbolPath,
803 LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders
805 BOOL WINAPI UpdateDebugInfoFileEx(
806 LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
807 PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum
810 /***********************************************************************
811 * Wine specific
814 extern HANDLE IMAGEHLP_hHeap;
816 #endif /* __WINE_IMAGEHLP_H */