source: trunk/include/win/imagehlp.h@ 1036

Last change on this file since 1036 was 4, checked in by ktk, 26 years ago

Import

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