Added definition for HUGE_VAL.
[wine] / include / imagehlp.h
1 /*
2  * Declarations for IMAGEHLP
3  *
4  * Copyright (C) 1998 Patrik Stridvall
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #ifndef __WINE_IMAGEHLP_H
22 #define __WINE_IMAGEHLP_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
27
28 #define API_VERSION_NUMBER 7            /* 7 is the default */
29
30 /***********************************************************************
31  * Types
32  */
33
34 typedef PVOID DIGEST_HANDLE;
35
36 /***********************************************************************
37  * Enums/Defines
38  */
39
40 typedef enum _IMAGEHLP_STATUS_REASON {
41   BindOutOfMemory,
42   BindRvaToVaFailed,
43   BindNoRoomInImage,
44   BindImportModuleFailed,
45   BindImportProcedureFailed,
46   BindImportModule,
47   BindImportProcedure,
48   BindForwarder,
49   BindForwarderNOT,
50   BindImageModified,
51   BindExpandFileHeaders,
52   BindImageComplete,
53   BindMismatchedSymbols,
54   BindSymbolsNotUpdated
55 } IMAGEHLP_STATUS_REASON;
56
57 #define BIND_NO_BOUND_IMPORTS  0x00000001
58 #define BIND_NO_UPDATE         0x00000002
59 #define BIND_ALL_IMAGES        0x00000004
60 #define BIND_CACHE_IMPORT_DLLS 0x00000008
61
62 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO      0x01
63 #define CERT_PE_IMAGE_DIGEST_RESOURCES       0x02
64 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
65 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO     0x08
66
67 #define CERT_SECTION_TYPE_ANY 0xFF
68
69 #define WIN_CERT_REVISION_1_0 0x0100
70 #define WIN_CERT_REVISION_2_0 0x0200
71
72 #define WIN_CERT_TYPE_X509             0x0001 /* X.509 Certificate */
73 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
74 #define WIN_CERT_TYPE_RESERVED_1       0x0003 /* Reserved */
75
76 #define SPLITSYM_REMOVE_PRIVATE    0x00000001
77 #define SPLITSYM_EXTRACT_ALL       0x00000002
78 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
79
80 #define FRAME_FPO    0
81 #define FRAME_TRAP   1
82 #define FRAME_TSS    2
83 #define FRAME_NONFPO 3
84
85 #define CHECKSUM_SUCCESS         0
86 #define CHECKSUM_OPEN_FAILURE    1
87 #define CHECKSUM_MAP_FAILURE     2
88 #define CHECKSUM_MAPVIEW_FAILURE 3
89 #define CHECKSUM_UNICODE_FAILURE 4
90
91 typedef enum _ADRESS_MODE {
92   AddrMode1616,
93   AddrMode1632,
94   AddrModeReal,
95   AddrModeFlat
96 } ADDRESS_MODE;
97
98 #define SYMOPT_CASE_INSENSITIVE  0x00000001
99 #define SYMOPT_UNDNAME           0x00000002
100 #define SYMOPT_DEFERRED_LOADS    0x00000004
101 #define SYMOPT_NO_CPP            0x00000008
102 #define SYMOPT_LOAD_LINES        0x00000010
103 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
104
105 #define SYMF_OMAP_GENERATED   0x00000001
106 #define SYMF_OMAP_MODIFIED    0x00000002
107 /* 0x00000004 has been obsoleted */
108 #define SYMF_REGISTER         0x00000008
109 #define SYMF_REGREL           0x00000010
110 #define SYMF_FRAMEREL         0x00000020
111 #define SYMF_PARAMETER        0x00000040
112 #define SYMF_LOCAL            0x00000080
113 #define SYMF_CONSTANT         0x00000100
114 #define SYMF_EXPORT           0x00000200
115 #define SYMF_FORWARDER        0x00000400
116 #define SYMF_FUNCTION         0x00000800
117
118 typedef enum {
119   SymNone,
120   SymCoff,
121   SymCv,
122   SymPdb,
123   SymExport,
124   SymDeferred,
125   SymSym,
126   SymDia,
127   SymVirtual,
128   NumSymTypes
129 } SYM_TYPE;
130
131 #define UNDNAME_COMPLETE               0x0000
132 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
133 #define UNDNAME_NO_MS_KEYWORDS         0x0002
134 #define UNDNAME_NO_FUNCTION_RETURNS    0x0004
135 #define UNDNAME_NO_ALLOCATION_MODEL    0x0008
136 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
137 #define UNDNAME_NO_MS_THISTYPE         0x0020
138 #define UNDNAME_NO_CV_THISTYPE         0x0040
139 #define UNDNAME_NO_THISTYPE            0x0060
140 #define UNDNAME_NO_ACCESS_SPECIFIERS   0x0080
141 #define UNDNAME_NO_THROW_SIGNATURES    0x0100
142 #define UNDNAME_NO_MEMBER_TYPE         0x0200
143 #define UNDNAME_NO_RETURN_UDT_MODEL    0x0400
144 #define UNDNAME_32_BIT_DECODE          0x0800
145 #define UNDNAME_NAME_ONLY              0x1000
146 #define UNDNAME_NO_ARGUMENTS           0x2000
147 #define UNDNAME_NO_SPECIAL_SYMS        0x4000
148
149 #define CBA_DEFERRED_SYMBOL_LOAD_START          0x00000001
150 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE       0x00000002
151 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE        0x00000003
152 #define CBA_SYMBOLS_UNLOADED                    0x00000004
153 #define CBA_DUPLICATE_SYMBOL                    0x00000005
154
155 /***********************************************************************
156  * Structures
157  */
158
159 typedef struct _LOADED_IMAGE {
160   LPSTR                   ModuleName;
161   HANDLE                hFile;
162   PUCHAR                  MappedAddress;
163   PIMAGE_NT_HEADERS     FileHeader;
164   PIMAGE_SECTION_HEADER LastRvaSection;
165   ULONG                   NumberOfSections;
166   PIMAGE_SECTION_HEADER Sections;
167   ULONG                   Characteristics;
168   BOOLEAN                 fSystemImage;
169   BOOLEAN                 fDOSImage;
170   LIST_ENTRY            Links;
171   ULONG                   SizeOfImage;
172 } LOADED_IMAGE, *PLOADED_IMAGE;
173
174 typedef struct _WIN_CERTIFICATE {
175   DWORD dwLength;
176   WORD  wRevision;                   /*  WIN_CERT_REVISON_xxx */
177   WORD  wCertificateType;            /*  WIN_CERT_TYPE_xxx */
178   BYTE  bCertificate[ANYSIZE_ARRAY];
179 } WIN_CERTIFICATE, *PWIN_CERTIFICATE;
180
181 typedef struct _API_VERSION {
182   USHORT  MajorVersion;
183   USHORT  MinorVersion;
184   USHORT  Revision;
185   USHORT  Reserved;
186 } API_VERSION, *LPAPI_VERSION;
187
188 typedef struct _IMAGE_DEBUG_INFORMATION {
189   LIST_ENTRY List;
190   DWORD        Size;
191   PVOID        MappedBase;
192   USHORT       Machine;
193   USHORT       Characteristics;
194   DWORD        CheckSum;
195   DWORD        ImageBase;
196   DWORD        SizeOfImage;
197
198   DWORD NumberOfSections;
199   PIMAGE_SECTION_HEADER Sections;
200
201   DWORD ExportedNamesSize;
202   LPSTR ExportedNames;
203
204   DWORD NumberOfFunctionTableEntries;
205   PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
206   DWORD LowestFunctionStartingAddress;
207   DWORD HighestFunctionEndingAddress;
208
209   DWORD NumberOfFpoTableEntries;
210   PFPO_DATA FpoTableEntries;
211
212   DWORD SizeOfCoffSymbols;
213   PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
214
215   DWORD SizeOfCodeViewSymbols;
216   PVOID CodeViewSymbols;
217
218   LPSTR ImageFilePath;
219   LPSTR ImageFileName;
220   LPSTR DebugFilePath;
221
222   DWORD TimeDateStamp;
223
224   BOOL RomImage;
225   PIMAGE_DEBUG_DIRECTORY DebugDirectory;
226   DWORD  NumberOfDebugDirectories;
227
228   DWORD Reserved[3];
229 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
230
231 typedef struct _ADDRESS {
232     DWORD          Offset;
233     WORD           Segment;
234     ADDRESS_MODE Mode;
235 } ADDRESS, *PADDRESS;
236
237 typedef struct _KDHELP {
238   DWORD Thread;
239   DWORD ThCallbackStack;
240   DWORD NextCallback;
241   DWORD FramePointer;
242   DWORD KiCallUserMode;
243   DWORD KeUserCallbackDispatcher;
244   DWORD SystemRangeStart;
245 } KDHELP, *PKDHELP;
246
247 typedef struct _STACKFRAME {
248   ADDRESS AddrPC;
249   ADDRESS AddrReturn;
250   ADDRESS AddrFrame;
251   ADDRESS AddrStack;
252   PVOID     FuncTableEntry;
253   DWORD     Params[4];
254   BOOL    Far;
255   BOOL    Virtual;
256   DWORD     Reserved[3];
257   KDHELP  KdHelp;
258 } STACKFRAME, *LPSTACKFRAME;
259
260 typedef struct _SOURCEFILE {
261     DWORD64                     ModBase;
262     PCHAR                       FileName;
263 } SOURCEFILE, *PSOURCEFILE;
264
265 typedef struct _IMAGEHLP_STACK_FRAME
266 {
267   DWORD InstructionOffset;
268   DWORD ReturnOffset;
269   DWORD FrameOffset;
270   DWORD StackOffset;
271   DWORD BackingStoreOffset;
272   DWORD FuncTableEntry;
273   DWORD Params[4];
274   DWORD Reserved[5];
275   DWORD Virtual;
276   DWORD Reserved2;
277 } IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
278
279 typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
280
281 typedef struct _IMAGEHLP_SYMBOL {
282   DWORD SizeOfStruct;
283   DWORD Address;
284   DWORD Size;
285   DWORD Flags;
286   DWORD MaxNameLength;
287   CHAR  Name[ANYSIZE_ARRAY];
288 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
289
290 typedef struct _IMAGEHLP_MODULE {
291   DWORD      SizeOfStruct;
292   DWORD      BaseOfImage;
293   DWORD      ImageSize;
294   DWORD      TimeDateStamp;
295   DWORD      CheckSum;
296   DWORD      NumSyms;
297   SYM_TYPE   SymType;
298   CHAR       ModuleName[32];
299   CHAR       ImageName[256];
300   CHAR       LoadedImageName[256];
301 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
302
303 typedef struct _IMAGEHLP_LINE {
304   DWORD SizeOfStruct;
305   DWORD Key;
306   DWORD LineNumber;
307   PCHAR FileName;
308   DWORD Address;
309 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
310
311 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
312   DWORD   SizeOfStruct;
313   DWORD   BaseOfImage;
314   DWORD   CheckSum;
315   DWORD   TimeDateStamp;
316   CHAR    FileName[MAX_PATH];
317   BOOLEAN Reparse;
318 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
319
320 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
321   DWORD              SizeOfStruct;
322   DWORD              NumberOfDups;
323   PIMAGEHLP_SYMBOL Symbol;
324   ULONG              SelectedSymbol;
325 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
326
327 #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT          1
328 #define IMAGEHLP_SYMBOL_INFO_REGISTER              SYMF_REGISTER
329 #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE           SYMF_REGREL
330 #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE         SYMF_FRAMEREL
331 #define IMAGEHLP_SYMBOL_INFO_PARAMETER             SYMF_PARAMETER
332 #define IMAGEHLP_SYMBOL_INFO_LOCAL                 SYMF_LOCAL
333 #define IMAGEHLP_SYMBOL_INFO_CONSTANT              SYMF_CONSTANT
334 #define IMAGEHLP_SYMBOL_FUNCTION                   SYMF_FUNCTION
335
336 typedef struct _SYMBOL_INFO {
337     ULONG       SizeOfStruct;
338     ULONG       TypeIndex;
339     ULONG64     Reserved[2];
340     ULONG       info;
341     ULONG       Size;
342     ULONG64     ModBase;
343     ULONG       Flags;
344     ULONG64     Value;
345     ULONG64     Address;
346     ULONG       Register;
347     ULONG       Scope;
348     ULONG       Tag;
349     ULONG       NameLen;
350     ULONG       MaxNameLen;
351     CHAR        Name[1];
352 } SYMBOL_INFO, *PSYMBOL_INFO;
353
354 /***********************************************************************
355  * Callbacks
356  */
357
358 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
359   IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName,
360   ULONG Va, ULONG Parameter
361 );
362
363 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
364   PSYMBOL_INFO pSymInfo, DWORD SymbolSize, PVOID UserContext
365 );
366
367 typedef BOOL (CALLBACK *PSYM_ENUMSOURCFILES_CALLBACK)(
368   PSOURCEFILE pSourceFile, PVOID UserContext
369 );
370
371 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
372   LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
373 );
374
375 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
376   LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
377   PVOID UserContext
378 );
379
380 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
381   LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
382   PVOID UserContext
383 );
384
385 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
386   HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
387   PVOID UserContext
388 );
389
390 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
391   DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
392 );
393
394 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
395   HANDLE  hProcess, LPCVOID lpBaseAddress, PVOID lpBuffer,
396   DWORD nSize, PDWORD lpNumberOfBytesRead
397 );
398
399 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
400   HANDLE hProcess, DWORD AddrBase
401 );
402
403 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
404   HANDLE hProcess, DWORD ReturnAddress);
405
406 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
407   HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
408 );
409
410 /***********************************************************************
411  * Functions
412  */
413
414 BOOL WINAPI BindImage(
415   LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
416 );
417 BOOL WINAPI BindImageEx(
418   DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
419   PIMAGEHLP_STATUS_ROUTINE StatusRoutine
420 );
421 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
422   LPVOID BaseAddress, DWORD FileLength,
423   LPDWORD HeaderSum, LPDWORD CheckSum
424 );
425 BOOL WINAPI EnumerateLoadedModules(
426   HANDLE hProcess,
427   PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
428   PVOID UserContext
429 );
430 HANDLE WINAPI FindDebugInfoFile(
431   LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
432 );
433 HANDLE WINAPI FindExecutableImage(
434   LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
435 );
436 BOOL WINAPI GetImageConfigInformation(
437   PLOADED_IMAGE LoadedImage,
438   PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
439 );
440 DWORD WINAPI GetImageUnusedHeaderBytes(
441   PLOADED_IMAGE LoadedImage,
442   LPDWORD SizeUnusedHeaderBytes
443 );
444 DWORD WINAPI GetTimestampForLoadedLibrary(
445   HMODULE Module
446 );
447 BOOL WINAPI ImageAddCertificate(
448   HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index
449 );
450 PVOID WINAPI ImageDirectoryEntryToData(
451   PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
452 );
453 BOOL WINAPI ImageEnumerateCertificates(
454   HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
455   PDWORD Indices, DWORD IndexCount
456 );
457 BOOL WINAPI ImageGetCertificateData(
458   HANDLE FileHandle, DWORD CertificateIndex,
459   PWIN_CERTIFICATE Certificate, PDWORD RequiredLength
460 );
461 BOOL WINAPI ImageGetCertificateHeader(
462   HANDLE FileHandle, DWORD CertificateIndex,
463   PWIN_CERTIFICATE Certificateheader
464 );
465 BOOL WINAPI ImageGetDigestStream(
466   HANDLE FileHandle, DWORD DigestLevel,
467   DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
468 );
469 PLOADED_IMAGE WINAPI ImageLoad(
470   LPSTR DllName, LPSTR DllPath
471 );
472 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
473   PVOID Base
474 );
475 BOOL WINAPI ImageRemoveCertificate(
476   HANDLE FileHandle, DWORD Index
477 );
478 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
479   PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
480 );
481 PVOID WINAPI ImageRvaToVa(
482   PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
483   PIMAGE_SECTION_HEADER *LastRvaSection
484 );
485 BOOL WINAPI ImageUnload(
486   PLOADED_IMAGE LoadedImage
487 );
488 LPAPI_VERSION WINAPI ImagehlpApiVersion(
489   void
490 );
491 LPAPI_VERSION WINAPI ImagehlpApiVersionEx(
492   LPAPI_VERSION AppVersion
493 );
494 BOOL WINAPI MakeSureDirectoryPathExists(
495   LPCSTR DirPath
496 );
497 BOOL WINAPI MapAndLoad(
498   LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage,
499   BOOL DotDll, BOOL ReadOnly
500 );
501 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
502   HANDLE FileHandle, LPSTR FileName,
503   LPSTR SymbolPath, DWORD ImageBase
504 );
505 DWORD WINAPI MapFileAndCheckSumA(
506   LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
507 );
508 DWORD WINAPI MapFileAndCheckSumW(
509   LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
510 );
511 BOOL WINAPI ReBaseImage(
512   LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
513   BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
514   ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
515   ULONG *NewImageBase, ULONG TimeStamp
516 );
517 BOOL WINAPI RemovePrivateCvSymbolic(
518   PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
519 );
520 VOID WINAPI RemoveRelocations(
521   PCHAR ImageName
522 );
523 BOOL WINAPI SearchTreeForFile(
524   LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
525 );
526 BOOL WINAPI SetImageConfigInformation(
527   PLOADED_IMAGE LoadedImage,
528   PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
529 );
530 BOOL WINAPI SplitSymbols(
531   LPSTR ImageName, LPSTR SymbolsPath,
532   LPSTR SymbolFilePath, DWORD Flags
533 );
534 BOOL WINAPI StackWalk(
535   DWORD MachineType, HANDLE hProcess, HANDLE hThread,
536   LPSTACKFRAME StackFrame, PVOID ContextRecord,
537   PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
538   PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
539   PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
540   PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
541 );
542 BOOL WINAPI SymCleanup(
543   HANDLE hProcess
544 );
545 BOOL WINAPI SymEnumerateModules(
546   HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
547   PVOID UserContext
548 );
549 BOOL WINAPI SymEnumerateSymbols(
550   HANDLE hProcess, DWORD BaseOfDll,
551   PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
552 );
553 BOOL WINAPI SymEnumSourceFiles(
554   HANDLE hProcess, DWORD ModBase, LPSTR Mask,
555   PSYM_ENUMSOURCFILES_CALLBACK cbSrcFiles, PVOID UserContext
556 );
557 BOOL WINAPI SymEnumSymbols(
558   HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask, 
559   PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
560 );
561 PVOID WINAPI SymFunctionTableAccess(
562   HANDLE hProcess, DWORD AddrBase
563 );
564 DWORD WINAPI SymGetModuleBase(
565   HANDLE hProcess, DWORD dwAddr
566 );
567 BOOL WINAPI SymGetModuleInfo(
568   HANDLE hProcess, DWORD dwAddr,
569   PIMAGEHLP_MODULE ModuleInfo
570 );
571 DWORD WINAPI SymGetOptions(
572   void
573 );
574 BOOL WINAPI SymGetSearchPath(
575   HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength
576 );
577 BOOL WINAPI SymGetSymFromAddr(
578   HANDLE hProcess, DWORD dwAddr,
579   PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
580 );
581 BOOL WINAPI SymGetSymFromName(
582   HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol
583 );
584 BOOL WINAPI SymGetSymNext(
585   HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
586 );
587 BOOL WINAPI SymGetSymPrev(
588   HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
589 );
590 BOOL WINAPI SymInitialize(
591   HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
592 );
593 DWORD WINAPI SymLoadModule(
594   HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
595   DWORD BaseOfDll, DWORD SizeOfDll
596 );
597 BOOL WINAPI SymRegisterCallback(
598   HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
599   PVOID UserContext
600 );
601 DWORD WINAPI SymSetContext(
602   HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, 
603   PIMAGEHLP_CONTEXT Context
604 );
605 DWORD WINAPI SymSetOptions(
606   DWORD SymOptions
607 );
608 BOOL WINAPI SymSetSearchPath(
609   HANDLE hProcess, LPSTR szSearchPath
610 );
611 BOOL WINAPI SymUnDName(
612   PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength
613 );
614 BOOL WINAPI SymUnloadModule(
615   HANDLE hProcess, DWORD BaseOfDll
616 );
617 BOOL WINAPI TouchFileTimes(
618   HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
619 );
620 DWORD WINAPI UnDecorateSymbolName(
621   LPCSTR DecoratedName, LPSTR UnDecoratedName,
622   DWORD UndecoratedLength, DWORD Flags
623 );
624 BOOL WINAPI UnMapAndLoad(
625   PLOADED_IMAGE LoadedImage
626 );
627 BOOL WINAPI UnmapDebugInformation(
628   PIMAGE_DEBUG_INFORMATION DebugInfo
629 );
630 BOOL WINAPI UpdateDebugInfoFile(
631   LPSTR ImageFileName, LPSTR SymbolPath,
632   LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders
633 );
634 BOOL WINAPI UpdateDebugInfoFileEx(
635   LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
636   PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum
637 );
638
639 #ifdef __cplusplus
640 } /* extern "C" */
641 #endif /* defined(__cplusplus) */
642
643 #endif  /* __WINE_IMAGEHLP_H */