Fix the case of product and company names.
[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 /***********************************************************************
29  * Types
30  */
31
32 typedef PVOID DIGEST_HANDLE;
33
34 /***********************************************************************
35  * Enums/Defines
36  */
37
38 typedef enum _IMAGEHLP_STATUS_REASON {
39   BindOutOfMemory,
40   BindRvaToVaFailed,
41   BindNoRoomInImage,
42   BindImportModuleFailed,
43   BindImportProcedureFailed,
44   BindImportModule,
45   BindImportProcedure,
46   BindForwarder,
47   BindForwarderNOT,
48   BindImageModified,
49   BindExpandFileHeaders,
50   BindImageComplete,
51   BindMismatchedSymbols,
52   BindSymbolsNotUpdated
53 } IMAGEHLP_STATUS_REASON;
54
55 #define BIND_NO_BOUND_IMPORTS  0x00000001
56 #define BIND_NO_UPDATE         0x00000002
57 #define BIND_ALL_IMAGES        0x00000004
58 #define BIND_CACHE_IMPORT_DLLS 0x00000008
59
60 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO      0x01
61 #define CERT_PE_IMAGE_DIGEST_RESOURCES       0x02
62 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
63 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO     0x08
64
65 #define CERT_SECTION_TYPE_ANY 0xFF
66
67 #define WIN_CERT_REVISION_1_0 0x0100
68 #define WIN_CERT_REVISION_2_0 0x0200
69
70 #define WIN_CERT_TYPE_X509             0x0001 /* X.509 Certificate */
71 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
72 #define WIN_CERT_TYPE_RESERVED_1       0x0003 /* Reserved */
73
74 #define SPLITSYM_REMOVE_PRIVATE    0x00000001
75 #define SPLITSYM_EXTRACT_ALL       0x00000002
76 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
77
78 #define FRAME_FPO    0
79 #define FRAME_TRAP   1
80 #define FRAME_TSS    2
81 #define FRAME_NONFPO 3
82
83 #define CHECKSUM_SUCCESS         0
84 #define CHECKSUM_OPEN_FAILURE    1
85 #define CHECKSUM_MAP_FAILURE     2
86 #define CHECKSUM_MAPVIEW_FAILURE 3
87 #define CHECKSUM_UNICODE_FAILURE 4
88
89 typedef enum _ADRESS_MODE {
90   AddrMode1616,
91   AddrMode1632,
92   AddrModeReal,
93   AddrModeFlat
94 } ADDRESS_MODE;
95
96 #define SYMOPT_CASE_INSENSITIVE  0x00000001
97 #define SYMOPT_UNDNAME           0x00000002
98 #define SYMOPT_DEFERRED_LOADS    0x00000004
99 #define SYMOPT_NO_CPP            0x00000008
100 #define SYMOPT_LOAD_LINES        0x00000010
101 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
102
103 #define SYMF_OMAP_GENERATED   0x00000001
104 #define SYMF_OMAP_MODIFIED    0x00000002
105
106 typedef enum {
107   SymNone,
108   SymCoff,
109   SymCv,
110   SymPdb,
111   SymExport,
112   SymDeferred,
113   SymSym        /* .sym file */
114 } SYM_TYPE;
115
116 #define UNDNAME_COMPLETE               0x0000
117 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
118 #define UNDNAME_NO_MS_KEYWORDS         0x0002
119 #define UNDNAME_NO_FUNCTION_RETURNS    0x0004
120 #define UNDNAME_NO_ALLOCATION_MODEL    0x0008
121 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
122 #define UNDNAME_NO_MS_THISTYPE         0x0020
123 #define UNDNAME_NO_CV_THISTYPE         0x0040
124 #define UNDNAME_NO_THISTYPE            0x0060
125 #define UNDNAME_NO_ACCESS_SPECIFIERS   0x0080
126 #define UNDNAME_NO_THROW_SIGNATURES    0x0100
127 #define UNDNAME_NO_MEMBER_TYPE         0x0200
128 #define UNDNAME_NO_RETURN_UDT_MODEL    0x0400
129 #define UNDNAME_32_BIT_DECODE          0x0800
130 #define UNDNAME_NAME_ONLY              0x1000
131 #define UNDNAME_NO_ARGUMENTS           0x2000
132 #define UNDNAME_NO_SPECIAL_SYMS        0x4000
133
134 #define CBA_DEFERRED_SYMBOL_LOAD_START          0x00000001
135 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE       0x00000002
136 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE        0x00000003
137 #define CBA_SYMBOLS_UNLOADED                    0x00000004
138 #define CBA_DUPLICATE_SYMBOL                    0x00000005
139
140 /***********************************************************************
141  * Structures
142  */
143
144 typedef struct _LOADED_IMAGE {
145   LPSTR                   ModuleName;
146   HANDLE                hFile;
147   PUCHAR                  MappedAddress;
148   PIMAGE_NT_HEADERS     FileHeader;
149   PIMAGE_SECTION_HEADER LastRvaSection;
150   ULONG                   NumberOfSections;
151   PIMAGE_SECTION_HEADER Sections;
152   ULONG                   Characteristics;
153   BOOLEAN                 fSystemImage;
154   BOOLEAN                 fDOSImage;
155   LIST_ENTRY            Links;
156   ULONG                   SizeOfImage;
157 } LOADED_IMAGE, *PLOADED_IMAGE;
158
159 typedef struct _WIN_CERTIFICATE {
160   DWORD dwLength;
161   WORD  wRevision;                   /*  WIN_CERT_REVISON_xxx */
162   WORD  wCertificateType;            /*  WIN_CERT_TYPE_xxx */
163   BYTE  bCertificate[ANYSIZE_ARRAY];
164 } WIN_CERTIFICATE, *PWIN_CERTIFICATE;
165
166 typedef struct _API_VERSION {
167   USHORT  MajorVersion;
168   USHORT  MinorVersion;
169   USHORT  Revision;
170   USHORT  Reserved;
171 } API_VERSION, *PAPI_VERSION;
172
173 typedef struct _IMAGE_DEBUG_INFORMATION {
174   LIST_ENTRY List;
175   DWORD        Size;
176   PVOID        MappedBase;
177   USHORT       Machine;
178   USHORT       Characteristics;
179   DWORD        CheckSum;
180   DWORD        ImageBase;
181   DWORD        SizeOfImage;
182
183   DWORD NumberOfSections;
184   PIMAGE_SECTION_HEADER Sections;
185
186   DWORD ExportedNamesSize;
187   LPSTR ExportedNames;
188
189   DWORD NumberOfFunctionTableEntries;
190   PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
191   DWORD LowestFunctionStartingAddress;
192   DWORD HighestFunctionEndingAddress;
193
194   DWORD NumberOfFpoTableEntries;
195   PFPO_DATA FpoTableEntries;
196
197   DWORD SizeOfCoffSymbols;
198   PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
199
200   DWORD SizeOfCodeViewSymbols;
201   PVOID CodeViewSymbols;
202
203   LPSTR ImageFilePath;
204   LPSTR ImageFileName;
205   LPSTR DebugFilePath;
206
207   DWORD TimeDateStamp;
208
209   BOOL RomImage;
210   PIMAGE_DEBUG_DIRECTORY DebugDirectory;
211   DWORD  NumberOfDebugDirectories;
212
213   DWORD Reserved[3];
214 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
215
216 typedef struct _ADDRESS {
217     DWORD          Offset;
218     WORD           Segment;
219     ADDRESS_MODE Mode;
220 } ADDRESS, *PADDRESS;
221
222 typedef struct _KDHELP {
223   DWORD Thread;
224   DWORD ThCallbackStack;
225   DWORD NextCallback;
226   DWORD FramePointer;
227   DWORD KiCallUserMode;
228   DWORD KeUserCallbackDispatcher;
229   DWORD SystemRangeStart;
230 } KDHELP, *PKDHELP;
231
232 typedef struct _STACKFRAME {
233   ADDRESS AddrPC;
234   ADDRESS AddrReturn;
235   ADDRESS AddrFrame;
236   ADDRESS AddrStack;
237   PVOID     FuncTableEntry;
238   DWORD     Params[4];
239   BOOL    Far;
240   BOOL    Virtual;
241   DWORD     Reserved[3];
242   KDHELP  KdHelp;
243 } STACKFRAME, *PSTACKFRAME, *LPSTACKFRAME;
244
245 typedef struct _IMAGEHLP_SYMBOL {
246   DWORD SizeOfStruct;
247   DWORD Address;
248   DWORD Size;
249   DWORD Flags;
250   DWORD MaxNameLength;
251   CHAR  Name[ANYSIZE_ARRAY];
252 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
253
254 typedef struct _IMAGEHLP_MODULE {
255   DWORD      SizeOfStruct;
256   DWORD      BaseOfImage;
257   DWORD      ImageSize;
258   DWORD      TimeDateStamp;
259   DWORD      CheckSum;
260   DWORD      NumSyms;
261   SYM_TYPE   SymType;
262   CHAR       ModuleName[32];
263   CHAR       ImageName[256];
264   CHAR       LoadedImageName[256];
265 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
266
267 typedef struct _IMAGEHLP_LINE {
268   DWORD SizeOfStruct;
269   DWORD Key;
270   DWORD LineNumber;
271   PCHAR FileName;
272   DWORD Address;
273 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
274
275 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
276   DWORD   SizeOfStruct;
277   DWORD   BaseOfImage;
278   DWORD   CheckSum;
279   DWORD   TimeDateStamp;
280   CHAR    FileName[MAX_PATH];
281   BOOLEAN Reparse;
282 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
283
284 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
285   DWORD              SizeOfStruct;
286   DWORD              NumberOfDups;
287   PIMAGEHLP_SYMBOL Symbol;
288   ULONG              SelectedSymbol;
289 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
290
291 /***********************************************************************
292  * Callbacks
293  */
294
295 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
296   IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName,
297   ULONG Va, ULONG Parameter
298 );
299
300 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
301   LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
302 );
303
304 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
305   LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
306   PVOID UserContext
307 );
308
309 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
310   LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
311   PVOID UserContext
312 );
313
314 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
315   HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
316   PVOID UserContext
317 );
318
319 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
320   DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
321 );
322
323 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
324   HANDLE  hProcess, LPCVOID lpBaseAddress, PVOID lpBuffer,
325   DWORD nSize, PDWORD lpNumberOfBytesRead
326 );
327
328 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
329   HANDLE hProcess, DWORD AddrBase
330 );
331
332 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
333   HANDLE hProcess, DWORD ReturnAddress);
334
335 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
336   HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
337 );
338
339 /***********************************************************************
340  * Functions
341  */
342
343 BOOL WINAPI BindImage(
344   LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
345 );
346 BOOL WINAPI BindImageEx(
347   DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
348   PIMAGEHLP_STATUS_ROUTINE StatusRoutine
349 );
350 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
351   LPVOID BaseAddress, DWORD FileLength,
352   LPDWORD HeaderSum, LPDWORD CheckSum
353 );
354 BOOL WINAPI EnumerateLoadedModules(
355   HANDLE hProcess,
356   PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
357   PVOID UserContext
358 );
359 HANDLE WINAPI FindDebugInfoFile(
360   LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
361 );
362 HANDLE WINAPI FindExecutableImage(
363   LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
364 );
365 BOOL WINAPI GetImageConfigInformation(
366   PLOADED_IMAGE LoadedImage,
367   PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
368 );
369 DWORD WINAPI GetImageUnusedHeaderBytes(
370   PLOADED_IMAGE LoadedImage,
371   LPDWORD SizeUnusedHeaderBytes
372 );
373 DWORD WINAPI GetTimestampForLoadedLibrary(
374   HMODULE Module
375 );
376 BOOL WINAPI ImageAddCertificate(
377   HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index
378 );
379 PVOID WINAPI ImageDirectoryEntryToData(
380   PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
381 );
382 BOOL WINAPI ImageEnumerateCertificates(
383   HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
384   PDWORD Indices, DWORD IndexCount
385 );
386 BOOL WINAPI ImageGetCertificateData(
387   HANDLE FileHandle, DWORD CertificateIndex,
388   PWIN_CERTIFICATE Certificate, PDWORD RequiredLength
389 );
390 BOOL WINAPI ImageGetCertificateHeader(
391   HANDLE FileHandle, DWORD CertificateIndex,
392   PWIN_CERTIFICATE Certificateheader
393 );
394 BOOL WINAPI ImageGetDigestStream(
395   HANDLE FileHandle, DWORD DigestLevel,
396   DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
397 );
398 PLOADED_IMAGE WINAPI ImageLoad(
399   LPSTR DllName, LPSTR DllPath
400 );
401 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
402   PVOID Base
403 );
404 BOOL WINAPI ImageRemoveCertificate(
405   HANDLE FileHandle, DWORD Index
406 );
407 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
408   PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
409 );
410 PVOID WINAPI ImageRvaToVa(
411   PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
412   PIMAGE_SECTION_HEADER *LastRvaSection
413 );
414 BOOL WINAPI ImageUnload(
415   PLOADED_IMAGE LoadedImage
416 );
417 PAPI_VERSION WINAPI ImagehlpApiVersion(
418   void
419 );
420 PAPI_VERSION WINAPI ImagehlpApiVersionEx(
421   PAPI_VERSION AppVersion
422 );
423 BOOL WINAPI MakeSureDirectoryPathExists(
424   LPCSTR DirPath
425 );
426 BOOL WINAPI MapAndLoad(
427   LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage,
428   BOOL DotDll, BOOL ReadOnly
429 );
430 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
431   HANDLE FileHandle, LPSTR FileName,
432   LPSTR SymbolPath, DWORD ImageBase
433 );
434 DWORD WINAPI MapFileAndCheckSumA(
435   LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
436 );
437 DWORD WINAPI MapFileAndCheckSumW(
438   LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
439 );
440 BOOL WINAPI ReBaseImage(
441   LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
442   BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
443   ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
444   ULONG *NewImageBase, ULONG TimeStamp
445 );
446 BOOL WINAPI RemovePrivateCvSymbolic(
447   PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
448 );
449 VOID WINAPI RemoveRelocations(
450   PCHAR ImageName
451 );
452 BOOL WINAPI SearchTreeForFile(
453   LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
454 );
455 BOOL WINAPI SetImageConfigInformation(
456   PLOADED_IMAGE LoadedImage,
457   PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
458 );
459 BOOL WINAPI SplitSymbols(
460   LPSTR ImageName, LPSTR SymbolsPath,
461   LPSTR SymbolFilePath, DWORD Flags
462 );
463 BOOL WINAPI StackWalk(
464   DWORD MachineType, HANDLE hProcess, HANDLE hThread,
465   PSTACKFRAME StackFrame, PVOID ContextRecord,
466   PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
467   PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
468   PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
469   PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
470 );
471 BOOL WINAPI SymCleanup(
472   HANDLE hProcess
473 );
474 BOOL WINAPI SymEnumerateModules(
475   HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
476   PVOID UserContext
477 );
478 BOOL WINAPI SymEnumerateSymbols(
479   HANDLE hProcess, DWORD BaseOfDll,
480   PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
481 );
482 PVOID WINAPI SymFunctionTableAccess(
483   HANDLE hProcess, DWORD AddrBase
484 );
485 DWORD WINAPI SymGetModuleBase(
486   HANDLE hProcess, DWORD dwAddr
487 );
488 BOOL WINAPI SymGetModuleInfo(
489   HANDLE hProcess, DWORD dwAddr,
490   PIMAGEHLP_MODULE ModuleInfo
491 );
492 DWORD WINAPI SymGetOptions(
493   void
494 );
495 BOOL WINAPI SymGetSearchPath(
496   HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength
497 );
498 BOOL WINAPI SymGetSymFromAddr(
499   HANDLE hProcess, DWORD dwAddr,
500   PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
501 );
502 BOOL WINAPI SymGetSymFromName(
503   HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol
504 );
505 BOOL WINAPI SymGetSymNext(
506   HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
507 );
508 BOOL WINAPI SymGetSymPrev(
509   HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
510 );
511 BOOL WINAPI SymInitialize(
512   HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
513 );
514 BOOL WINAPI SymLoadModule(
515   HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
516   DWORD BaseOfDll, DWORD SizeOfDll
517 );
518 BOOL WINAPI SymRegisterCallback(
519   HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
520   PVOID UserContext
521 );
522 DWORD WINAPI SymSetOptions(
523   DWORD SymOptions
524 );
525 BOOL WINAPI SymSetSearchPath(
526   HANDLE hProcess, LPSTR szSearchPath
527 );
528 BOOL WINAPI SymUnDName(
529   PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength
530 );
531 BOOL WINAPI SymUnloadModule(
532   HANDLE hProcess, DWORD BaseOfDll
533 );
534 BOOL WINAPI TouchFileTimes(
535   HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
536 );
537 DWORD WINAPI UnDecorateSymbolName(
538   LPCSTR DecoratedName, LPSTR UnDecoratedName,
539   DWORD UndecoratedLength, DWORD Flags
540 );
541 BOOL WINAPI UnMapAndLoad(
542   PLOADED_IMAGE LoadedImage
543 );
544 BOOL WINAPI UnmapDebugInformation(
545   PIMAGE_DEBUG_INFORMATION DebugInfo
546 );
547 BOOL WINAPI UpdateDebugInfoFile(
548   LPSTR ImageFileName, LPSTR SymbolPath,
549   LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders
550 );
551 BOOL WINAPI UpdateDebugInfoFileEx(
552   LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
553   PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum
554 );
555
556 #ifdef __cplusplus
557 } /* extern "C" */
558 #endif /* defined(__cplusplus) */
559
560 #endif  /* __WINE_IMAGEHLP_H */