Removed definitions for FIONREAD and FIONBIO.
[wine/wine-kai.git] / include / imagehlp.h
blob4f6077a41c2e75f8eea807d81c909fb4086e1064
1 /*
2 * imagehlp.h - Declarations for IMAGEHLP
3 */
5 #ifndef __WINE_IMAGEHLP_H
6 #define __WINE_IMAGEHLP_H
8 #include "windef.h"
9 #include "winbase.h"
11 /***********************************************************************
12 * Types
15 typedef PVOID DIGEST_HANDLE;
17 /***********************************************************************
18 * Enums/Defines
21 typedef enum _IMAGEHLP_STATUS_REASON {
22 BindOutOfMemory,
23 BindRvaToVaFailed,
24 BindNoRoomInImage,
25 BindImportModuleFailed,
26 BindImportProcedureFailed,
27 BindImportModule,
28 BindImportProcedure,
29 BindForwarder,
30 BindForwarderNOT,
31 BindImageModified,
32 BindExpandFileHeaders,
33 BindImageComplete,
34 BindMismatchedSymbols,
35 BindSymbolsNotUpdated
36 } IMAGEHLP_STATUS_REASON;
38 #define BIND_NO_BOUND_IMPORTS 0x00000001
39 #define BIND_NO_UPDATE 0x00000002
40 #define BIND_ALL_IMAGES 0x00000004
41 #define BIND_CACHE_IMPORT_DLLS 0x00000008
43 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
44 #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
45 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
46 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
48 #define CERT_SECTION_TYPE_ANY 0xFF
50 #define WIN_CERT_REVISION_1_0 0x0100
51 #define WIN_CERT_REVISION_2_0 0x0200
53 #define WIN_CERT_TYPE_X509 0x0001 /* X.509 Certificate */
54 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
55 #define WIN_CERT_TYPE_RESERVED_1 0x0003 /* Reserved */
57 #define SPLITSYM_REMOVE_PRIVATE 0x00000001
58 #define SPLITSYM_EXTRACT_ALL 0x00000002
59 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
61 #define IMAGE_DEBUG_TYPE_UNKNOWN 0
62 #define IMAGE_DEBUG_TYPE_COFF 1
63 #define IMAGE_DEBUG_TYPE_CODEVIEW 2
64 #define IMAGE_DEBUG_TYPE_FPO 3
65 #define IMAGE_DEBUG_TYPE_MISC 4
66 #define IMAGE_DEBUG_TYPE_EXCEPTION 5
67 #define IMAGE_DEBUG_TYPE_FIXUP 6
68 #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
69 #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
70 #define IMAGE_DEBUG_TYPE_BORLAND 9
71 #define IMAGE_DEBUG_TYPE_RESERVED10 10
73 #define FRAME_FPO 0
74 #define FRAME_TRAP 1
75 #define FRAME_TSS 2
76 #define FRAME_NONFPO 3
78 #define CHECKSUM_SUCCESS 0
79 #define CHECKSUM_OPEN_FAILURE 1
80 #define CHECKSUM_MAP_FAILURE 2
81 #define CHECKSUM_MAPVIEW_FAILURE 3
82 #define CHECKSUM_UNICODE_FAILURE 4
84 typedef enum _ADRESS_MODE {
85 AddrMode1616,
86 AddrMode1632,
87 AddrModeReal,
88 AddrModeFlat
89 } ADDRESS_MODE;
91 #define SYMOPT_CASE_INSENSITIVE 0x00000001
92 #define SYMOPT_UNDNAME 0x00000002
93 #define SYMOPT_DEFERRED_LOADS 0x00000004
94 #define SYMOPT_NO_CPP 0x00000008
95 #define SYMOPT_LOAD_LINES 0x00000010
96 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
98 #define SYMF_OMAP_GENERATED 0x00000001
99 #define SYMF_OMAP_MODIFIED 0x00000002
101 typedef enum _SYM_TYPE {
102 SymNone,
103 SymCoff,
104 SymCv,
105 SymPdb,
106 SymExport,
107 SymDeferred,
108 SymSym /* .sym file */
109 } SYM_TYPE32;
111 #define UNDNAME_COMPLETE 0x0000
112 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
113 #define UNDNAME_NO_MS_KEYWORDS 0x0002
114 #define UNDNAME_NO_FUNCTION_RETURNS 0x0004
115 #define UNDNAME_NO_ALLOCATION_MODEL 0x0008
116 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
117 #define UNDNAME_NO_MS_THISTYPE 0x0020
118 #define UNDNAME_NO_CV_THISTYPE 0x0040
119 #define UNDNAME_NO_THISTYPE 0x0060
120 #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080
121 #define UNDNAME_NO_THROW_SIGNATURES 0x0100
122 #define UNDNAME_NO_MEMBER_TYPE 0x0200
123 #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400
124 #define UNDNAME_32_BIT_DECODE 0x0800
125 #define UNDNAME_NAME_ONLY 0x1000
126 #define UNDNAME_NO_ARGUMENTS 0x2000
127 #define UNDNAME_NO_SPECIAL_SYMS 0x4000
129 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
130 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
131 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
132 #define CBA_SYMBOLS_UNLOADED 0x00000004
133 #define CBA_DUPLICATE_SYMBOL 0x00000005
135 #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */
136 #define IMAGE_OS2_SIGNATURE 0x454E /* NE */
137 #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */
138 #define IMAGE_VXD_SIGNATURE 0x454C /* LE */
139 #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */
141 /***********************************************************************
142 * Structures
145 typedef struct _IMAGE_DATA_DIRECTORY {
146 DWORD VirtualAddress;
147 DWORD Size;
148 } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
150 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
152 typedef struct _IMAGE_OPTIONAL_HEADER {
154 /* Standard fields */
156 WORD Magic;
157 BYTE MajorLinkerVersion;
158 BYTE MinorLinkerVersion;
159 DWORD SizeOfCode;
160 DWORD SizeOfInitializedData;
161 DWORD SizeOfUninitializedData;
162 DWORD AddressOfEntryPoint;
163 DWORD BaseOfCode;
164 DWORD BaseOfData;
166 /* NT additional fields */
168 DWORD ImageBase;
169 DWORD SectionAlignment;
170 DWORD FileAlignment;
171 WORD MajorOperatingSystemVersion;
172 WORD MinorOperatingSystemVersion;
173 WORD MajorImageVersion;
174 WORD MinorImageVersion;
175 WORD MajorSubsystemVersion;
176 WORD MinorSubsystemVersion;
177 DWORD Win32VersionValue;
178 DWORD SizeOfImage;
179 DWORD SizeOfHeaders;
180 DWORD CheckSum;
181 WORD Subsystem;
182 WORD DllCharacteristics;
183 DWORD SizeOfStackReserve;
184 DWORD SizeOfStackCommit;
185 DWORD SizeOfHeapReserve;
186 DWORD SizeOfHeapCommit;
187 DWORD LoaderFlags;
188 DWORD NumberOfRvaAndSizes;
189 IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
190 } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
192 typedef struct _IMAGE_FILE_HEADER {
193 WORD Machine;
194 WORD NumberOfSections;
195 DWORD TimeDateStamp;
196 DWORD PointerToSymbolTable;
197 DWORD NumberOfSymbols;
198 WORD SizeOfOptionalHeader;
199 WORD Characteristics;
200 } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
202 typedef struct _IMAGE_NT_HEADERS {
203 DWORD Signature;
204 IMAGE_FILE_HEADER FileHeader;
205 IMAGE_OPTIONAL_HEADER OptionalHeader;
206 } IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;
208 #define IMAGE_SIZEOF_SHORT_NAME 8
210 typedef struct _IMAGE_SECTION_HEADER {
211 BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
212 union {
213 DWORD PhysicalAddress;
214 DWORD VirtualSize;
215 } Misc;
216 DWORD VirtualAddress;
217 DWORD SizeOfRawData;
218 DWORD PointerToRawData;
219 DWORD PointerToRelocations;
220 DWORD PointerToLinenumbers;
221 WORD NumberOfRelocations;
222 WORD NumberOfLinenumbers;
223 DWORD Characteristics;
224 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
226 typedef struct _LOADED_IMAGE {
227 LPSTR ModuleName;
228 HANDLE hFile;
229 PUCHAR MappedAddress;
230 PIMAGE_NT_HEADERS FileHeader;
231 PIMAGE_SECTION_HEADER LastRvaSection;
232 ULONG NumberOfSections;
233 PIMAGE_SECTION_HEADER Sections;
234 ULONG Characteristics;
235 BOOLEAN fSystemImage;
236 BOOLEAN fDOSImage;
237 LIST_ENTRY Links;
238 ULONG SizeOfImage;
239 } LOADED_IMAGE, *PLOADED_IMAGE;
241 typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY {
242 DWORD Characteristics;
243 DWORD TimeDateStamp;
244 WORD MajorVersion;
245 WORD MinorVersion;
246 DWORD GlobalFlagsClear;
247 DWORD GlobalFlagsSet;
248 DWORD CriticalSectionDefaultTimeout;
249 DWORD DeCommitFreeBlockThreshold;
250 DWORD DeCommitTotalFreeThreshold;
251 PVOID LockPrefixTable;
252 DWORD MaximumAllocationSize;
253 DWORD VirtualMemoryThreshold;
254 DWORD ProcessHeapFlags;
255 DWORD ProcessAffinityMask;
256 WORD CSDVersion;
257 WORD Reserved1;
258 PVOID EditList;
259 DWORD Reserved[1];
260 } IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY;
262 typedef struct _WIN_CERTIFICATE {
263 DWORD dwLength;
264 WORD wRevision; /* WIN_CERT_REVISON_xxx */
265 WORD wCertificateType; /* WIN_CERT_TYPE_xxx */
266 BYTE bCertificate[ANYSIZE_ARRAY];
267 } WIN_CERTIFICATE, *PWIN_CERTIFICATE;
269 typedef struct _API_VERSION {
270 USHORT MajorVersion;
271 USHORT MinorVersion;
272 USHORT Revision;
273 USHORT Reserved;
274 } API_VERSION, *PAPI_VERSION;
276 typedef struct _IMAGE_FUNCTION_ENTRY {
277 DWORD StartingAddress;
278 DWORD EndingAddress;
279 DWORD EndOfPrologue;
280 } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
282 typedef struct _IMAGE_DEBUG_DIRECTORY {
283 DWORD Characteristics;
284 DWORD TimeDateStamp;
285 WORD MajorVersion;
286 WORD MinorVersion;
287 DWORD Type;
288 DWORD SizeOfData;
289 DWORD AddressOfRawData;
290 DWORD PointerToRawData;
291 } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
293 typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
294 DWORD NumberOfSymbols;
295 DWORD LvaToFirstSymbol;
296 DWORD NumberOfLinenumbers;
297 DWORD LvaToFirstLinenumber;
298 DWORD RvaToFirstByteOfCode;
299 DWORD RvaToLastByteOfCode;
300 DWORD RvaToFirstByteOfData;
301 DWORD RvaToLastByteOfData;
302 } IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;
304 typedef struct _FPO_DATA {
305 DWORD ulOffStart;
306 DWORD cbProcSize;
307 DWORD cdwLocals;
308 WORD cdwParams;
309 WORD cbProlog : 8;
310 WORD cbRegs : 3;
311 WORD fHasSEH : 1;
312 WORD fUseBP : 1;
313 WORD reserved : 1;
314 WORD cbFrame : 2;
315 } FPO_DATA, *PFPO_DATA;
317 typedef struct _IMAGE_DEBUG_INFORMATION {
318 LIST_ENTRY List;
319 DWORD Size;
320 PVOID MappedBase;
321 USHORT Machine;
322 USHORT Characteristics;
323 DWORD CheckSum;
324 DWORD ImageBase;
325 DWORD SizeOfImage;
327 DWORD NumberOfSections;
328 PIMAGE_SECTION_HEADER Sections;
330 DWORD ExportedNamesSize;
331 LPSTR ExportedNames;
333 DWORD NumberOfFunctionTableEntries;
334 PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
335 DWORD LowestFunctionStartingAddress;
336 DWORD HighestFunctionEndingAddress;
338 DWORD NumberOfFpoTableEntries;
339 PFPO_DATA FpoTableEntries;
341 DWORD SizeOfCoffSymbols;
342 PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
344 DWORD SizeOfCodeViewSymbols;
345 PVOID CodeViewSymbols;
347 LPSTR ImageFilePath;
348 LPSTR ImageFileName;
349 LPSTR DebugFilePath;
351 DWORD TimeDateStamp;
353 BOOL RomImage;
354 PIMAGE_DEBUG_DIRECTORY DebugDirectory;
355 DWORD NumberOfDebugDirectories;
357 DWORD Reserved[3];
358 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
360 typedef struct _ADDRESS {
361 DWORD Offset;
362 WORD Segment;
363 ADDRESS_MODE Mode;
364 } ADDRESS, *PADDRESS;
366 typedef struct _KDHELP {
367 DWORD Thread;
368 DWORD ThCallbackStack;
369 DWORD NextCallback;
370 DWORD FramePointer;
371 DWORD KiCallUserMode;
372 DWORD KeUserCallbackDispatcher;
373 DWORD SystemRangeStart;
374 } KDHELP, *PKDHELP;
376 typedef struct _STACKFRAME {
377 ADDRESS AddrPC;
378 ADDRESS AddrReturn;
379 ADDRESS AddrFrame;
380 ADDRESS AddrStack;
381 PVOID FuncTableEntry;
382 DWORD Params[4];
383 BOOL Far;
384 BOOL Virtual;
385 DWORD Reserved[3];
386 KDHELP KdHelp;
387 } STACKFRAME, *PSTACKFRAME;
389 typedef struct _IMAGEHLP_SYMBOL {
390 DWORD SizeOfStruct;
391 DWORD Address;
392 DWORD Size;
393 DWORD Flags;
394 DWORD MaxNameLength;
395 CHAR Name[ANYSIZE_ARRAY];
396 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
398 typedef struct _IMAGEHLP_MODULE {
399 DWORD SizeOfStruct;
400 DWORD BaseOfImage;
401 DWORD ImageSize;
402 DWORD TimeDateStamp;
403 DWORD CheckSum;
404 DWORD NumSyms;
405 SYM_TYPE32 SymType;
406 CHAR ModuleName[32];
407 CHAR ImageName[256];
408 CHAR LoadedImageName[256];
409 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
411 typedef struct _IMAGEHLP_LINE {
412 DWORD SizeOfStruct;
413 DWORD Key;
414 DWORD LineNumber;
415 PCHAR FileName;
416 DWORD Address;
417 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
419 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
420 DWORD SizeOfStruct;
421 DWORD BaseOfImage;
422 DWORD CheckSum;
423 DWORD TimeDateStamp;
424 CHAR FileName[MAX_PATH];
425 BOOLEAN Reparse;
426 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
428 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
429 DWORD SizeOfStruct;
430 DWORD NumberOfDups;
431 PIMAGEHLP_SYMBOL Symbol;
432 ULONG SelectedSymbol;
433 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
435 typedef struct _IMAGE_DOS_HEADER {
436 WORD e_magic;
437 WORD e_cblp;
438 WORD e_cp;
439 WORD e_crlc;
440 WORD e_cparhdr;
441 WORD e_minalloc;
442 WORD e_maxalloc;
443 WORD e_ss;
444 WORD e_sp;
445 WORD e_csum;
446 WORD e_ip;
447 WORD e_cs;
448 WORD e_lfarlc;
449 WORD e_ovno;
450 WORD e_res[4];
451 WORD e_oemid;
452 WORD e_oeminfo;
453 WORD e_res2[10];
454 LONG e_lfanew;
455 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
457 typedef struct _IMAGE_OS2_HEADER {
458 WORD ne_magic;
459 CHAR ne_ver;
460 CHAR ne_rev;
461 WORD ne_enttab;
462 WORD ne_cbenttab;
463 LONG ne_crc;
464 WORD ne_flags;
465 WORD ne_autodata;
466 WORD ne_heap;
467 WORD ne_stack;
468 LONG ne_csip;
469 LONG ne_sssp;
470 WORD ne_cseg;
471 WORD ne_cmod;
472 WORD ne_cbnrestab;
473 WORD ne_segtab;
474 WORD ne_rsrctab;
475 WORD ne_restab;
476 WORD ne_modtab;
477 WORD ne_imptab;
478 LONG ne_nrestab;
479 WORD ne_cmovent;
480 WORD ne_align;
481 WORD ne_cres;
482 BYTE ne_exetyp;
483 BYTE ne_flagsothers;
484 WORD ne_pretthunks;
485 WORD ne_psegrefbytes;
486 WORD ne_swaparea;
487 WORD ne_expver;
488 } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;
490 typedef struct _IMAGE_VXD_HEADER {
491 WORD e32_magic;
492 BYTE e32_border;
493 BYTE e32_worder;
494 DWORD e32_level;
495 WORD e32_cpu;
496 WORD e32_os;
497 DWORD e32_ver;
498 DWORD e32_mflags;
499 DWORD e32_mpages;
500 DWORD e32_startobj;
501 DWORD e32_eip;
502 DWORD e32_stackobj;
503 DWORD e32_esp;
504 DWORD e32_pagesize;
505 DWORD e32_lastpagesize;
506 DWORD e32_fixupsize;
507 DWORD e32_fixupsum;
508 DWORD e32_ldrsize;
509 DWORD e32_ldrsum;
510 DWORD e32_objtab;
511 DWORD e32_objcnt;
512 DWORD e32_objmap;
513 DWORD e32_itermap;
514 DWORD e32_rsrctab;
515 DWORD e32_rsrccnt;
516 DWORD e32_restab;
517 DWORD e32_enttab;
518 DWORD e32_dirtab;
519 DWORD e32_dircnt;
520 DWORD e32_fpagetab;
521 DWORD e32_frectab;
522 DWORD e32_impmod;
523 DWORD e32_impmodcnt;
524 DWORD e32_impproc;
525 DWORD e32_pagesum;
526 DWORD e32_datapage;
527 DWORD e32_preload;
528 DWORD e32_nrestab;
529 DWORD e32_cbnrestab;
530 DWORD e32_nressum;
531 DWORD e32_autodata;
532 DWORD e32_debuginfo;
533 DWORD e32_debuglen;
534 DWORD e32_instpreload;
535 DWORD e32_instdemand;
536 DWORD e32_heapsize;
537 BYTE e32_res3[12];
538 DWORD e32_winresoff;
539 DWORD e32_winreslen;
540 WORD e32_devid;
541 WORD e32_ddkver;
542 } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
544 /***********************************************************************
545 * Callbacks
548 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
549 IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName,
550 ULONG Va, ULONG Parameter
553 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
554 LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
557 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
558 LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
559 PVOID UserContext
562 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
563 LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
564 PVOID UserContext
567 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
568 HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
569 PVOID UserContext
572 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
573 DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
576 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
577 HANDLE hProcess, PCVOID lpBaseAddress, PVOID lpBuffer,
578 DWORD nSize, PDWORD lpNumberOfBytesRead
581 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
582 HANDLE hProcess, DWORD AddrBase
585 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
586 HANDLE hProcess, DWORD ReturnAddress);
588 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
589 HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
592 /***********************************************************************
593 * Functions
596 BOOL WINAPI BindImage(
597 LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
599 BOOL WINAPI BindImageEx(
600 DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
601 PIMAGEHLP_STATUS_ROUTINE StatusRoutine
603 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
604 LPVOID BaseAddress, DWORD FileLength,
605 LPDWORD HeaderSum, LPDWORD CheckSum
607 BOOL WINAPI EnumerateLoadedModules(
608 HANDLE hProcess,
609 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
610 PVOID UserContext
612 HANDLE WINAPI FindDebugInfoFile(
613 LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
615 HANDLE WINAPI FindExecutableImage(
616 LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
618 BOOL WINAPI GetImageConfigInformation(
619 PLOADED_IMAGE LoadedImage,
620 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
622 DWORD WINAPI GetImageUnusedHeaderBytes(
623 PLOADED_IMAGE LoadedImage,
624 LPDWORD SizeUnusedHeaderBytes
626 DWORD WINAPI GetTimestampForLoadedLibrary(
627 HMODULE Module
629 BOOL WINAPI ImageAddCertificate(
630 HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index
632 PVOID WINAPI ImageDirectoryEntryToData(
633 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
635 BOOL WINAPI ImageEnumerateCertificates(
636 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
637 PDWORD Indices, DWORD IndexCount
639 BOOL WINAPI ImageGetCertificateData(
640 HANDLE FileHandle, DWORD CertificateIndex,
641 PWIN_CERTIFICATE Certificate, PDWORD RequiredLength
643 BOOL WINAPI ImageGetCertificateHeader(
644 HANDLE FileHandle, DWORD CertificateIndex,
645 PWIN_CERTIFICATE Certificateheader
647 BOOL WINAPI ImageGetDigestStream(
648 HANDLE FileHandle, DWORD DigestLevel,
649 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
651 PLOADED_IMAGE WINAPI ImageLoad(
652 LPSTR DllName, LPSTR DllPath
654 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
655 PVOID Base
657 BOOL WINAPI ImageRemoveCertificate(
658 HANDLE FileHandle, DWORD Index
660 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
661 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
663 PVOID WINAPI ImageRvaToVa(
664 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
665 PIMAGE_SECTION_HEADER *LastRvaSection
667 BOOL WINAPI ImageUnload(
668 PLOADED_IMAGE LoadedImage
670 PAPI_VERSION WINAPI ImagehlpApiVersion(
671 void
673 PAPI_VERSION WINAPI ImagehlpApiVersionEx(
674 PAPI_VERSION AppVersion
676 BOOL WINAPI MakeSureDirectoryPathExists(
677 LPCSTR DirPath
679 BOOL WINAPI MapAndLoad(
680 LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage,
681 BOOL DotDll, BOOL ReadOnly
683 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
684 HANDLE FileHandle, LPSTR FileName,
685 LPSTR SymbolPath, DWORD ImageBase
687 DWORD WINAPI MapFileAndCheckSumA(
688 LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
690 DWORD WINAPI MapFileAndCheckSumW(
691 LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
693 BOOL WINAPI ReBaseImage(
694 LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
695 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
696 ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
697 ULONG *NewImageBase, ULONG TimeStamp
699 BOOL WINAPI RemovePrivateCvSymbolic(
700 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
702 VOID WINAPI RemoveRelocations(
703 PCHAR ImageName
705 BOOL WINAPI SearchTreeForFile(
706 LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
708 BOOL WINAPI SetImageConfigInformation(
709 PLOADED_IMAGE LoadedImage,
710 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
712 BOOL WINAPI SplitSymbols(
713 LPSTR ImageName, LPSTR SymbolsPath,
714 LPSTR SymbolFilePath, DWORD Flags
716 BOOL WINAPI StackWalk(
717 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
718 PSTACKFRAME StackFrame, PVOID ContextRecord,
719 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
720 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
721 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
722 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
724 BOOL WINAPI SymCleanup(
725 HANDLE hProcess
727 BOOL WINAPI SymEnumerateModules(
728 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
729 PVOID UserContext
731 BOOL WINAPI SymEnumerateSymbols(
732 HANDLE hProcess, DWORD BaseOfDll,
733 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
735 PVOID WINAPI SymFunctionTableAccess(
736 HANDLE hProcess, DWORD AddrBase
738 DWORD WINAPI SymGetModuleBase(
739 HANDLE hProcess, DWORD dwAddr
741 BOOL WINAPI SymGetModuleInfo(
742 HANDLE hProcess, DWORD dwAddr,
743 PIMAGEHLP_MODULE ModuleInfo
745 DWORD WINAPI SymGetOptions(
746 void
748 BOOL WINAPI SymGetSearchPath(
749 HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength
751 BOOL WINAPI SymGetSymFromAddr(
752 HANDLE hProcess, DWORD dwAddr,
753 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
755 BOOL WINAPI SymGetSymFromName(
756 HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol
758 BOOL WINAPI SymGetSymNext(
759 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
761 BOOL WINAPI SymGetSymPrev(
762 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
764 BOOL WINAPI SymInitialize(
765 HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
767 BOOL WINAPI SymLoadModule(
768 HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
769 DWORD BaseOfDll, DWORD SizeOfDll
771 BOOL WINAPI SymRegisterCallback(
772 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
773 PVOID UserContext
775 DWORD WINAPI SymSetOptions(
776 DWORD SymOptions
778 BOOL WINAPI SymSetSearchPath(
779 HANDLE hProcess, LPSTR szSearchPath
781 BOOL WINAPI SymUnDName(
782 PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength
784 BOOL WINAPI SymUnloadModule(
785 HANDLE hProcess, DWORD BaseOfDll
787 BOOL WINAPI TouchFileTimes(
788 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
790 DWORD WINAPI UnDecorateSymbolName(
791 LPCSTR DecoratedName, LPSTR UnDecoratedName,
792 DWORD UndecoratedLength, DWORD Flags
794 BOOL WINAPI UnMapAndLoad(
795 PLOADED_IMAGE LoadedImage
797 BOOL WINAPI UnmapDebugInformation(
798 PIMAGE_DEBUG_INFORMATION DebugInfo
800 BOOL WINAPI UpdateDebugInfoFile(
801 LPSTR ImageFileName, LPSTR SymbolPath,
802 LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders
804 BOOL WINAPI UpdateDebugInfoFileEx(
805 LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
806 PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum
809 /***********************************************************************
810 * Wine specific
813 extern HANDLE IMAGEHLP_hHeap;
815 #endif /* __WINE_IMAGEHLP_H */