Release 0.9.4.
[wine/multimedia.git] / include / imagehlp.h
bloba456c2fa6250fd0121c6b8d317e2e6515990cbaa
1 /*
2 * Declarations for IMAGEHLP
4 * Copyright (C) 1998 Patrik Stridvall
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.
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.
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
21 #ifndef __WINE_IMAGEHLP_H
22 #define __WINE_IMAGEHLP_H
24 #include <wintrust.h>
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* defined(__cplusplus) */
30 #define API_VERSION_NUMBER 7 /* 7 is the default */
32 /***********************************************************************
33 * Types
36 typedef PVOID DIGEST_HANDLE;
38 /***********************************************************************
39 * Enums/Defines
42 typedef enum _IMAGEHLP_STATUS_REASON {
43 BindOutOfMemory,
44 BindRvaToVaFailed,
45 BindNoRoomInImage,
46 BindImportModuleFailed,
47 BindImportProcedureFailed,
48 BindImportModule,
49 BindImportProcedure,
50 BindForwarder,
51 BindForwarderNOT,
52 BindImageModified,
53 BindExpandFileHeaders,
54 BindImageComplete,
55 BindMismatchedSymbols,
56 BindSymbolsNotUpdated
57 } IMAGEHLP_STATUS_REASON;
59 #define BIND_NO_BOUND_IMPORTS 0x00000001
60 #define BIND_NO_UPDATE 0x00000002
61 #define BIND_ALL_IMAGES 0x00000004
62 #define BIND_CACHE_IMPORT_DLLS 0x00000008
64 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
65 #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
66 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
67 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
69 #define CERT_SECTION_TYPE_ANY 0xFF
71 #define WIN_CERT_REVISION_1_0 0x0100
72 #define WIN_CERT_REVISION_2_0 0x0200
74 #define WIN_CERT_TYPE_X509 0x0001 /* X.509 Certificate */
75 #define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002 /* PKCS SignedData */
76 #define WIN_CERT_TYPE_RESERVED_1 0x0003 /* Reserved */
78 #define SPLITSYM_REMOVE_PRIVATE 0x00000001
79 #define SPLITSYM_EXTRACT_ALL 0x00000002
80 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
82 #define FRAME_FPO 0
83 #define FRAME_TRAP 1
84 #define FRAME_TSS 2
85 #define FRAME_NONFPO 3
87 #define CHECKSUM_SUCCESS 0
88 #define CHECKSUM_OPEN_FAILURE 1
89 #define CHECKSUM_MAP_FAILURE 2
90 #define CHECKSUM_MAPVIEW_FAILURE 3
91 #define CHECKSUM_UNICODE_FAILURE 4
93 typedef enum _ADRESS_MODE {
94 AddrMode1616,
95 AddrMode1632,
96 AddrModeReal,
97 AddrModeFlat
98 } ADDRESS_MODE;
100 #define SYMOPT_CASE_INSENSITIVE 0x00000001
101 #define SYMOPT_UNDNAME 0x00000002
102 #define SYMOPT_DEFERRED_LOADS 0x00000004
103 #define SYMOPT_NO_CPP 0x00000008
104 #define SYMOPT_LOAD_LINES 0x00000010
105 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
107 #define SYMF_OMAP_GENERATED 0x00000001
108 #define SYMF_OMAP_MODIFIED 0x00000002
109 /* 0x00000004 has been obsoleted */
110 #define SYMF_REGISTER 0x00000008
111 #define SYMF_REGREL 0x00000010
112 #define SYMF_FRAMEREL 0x00000020
113 #define SYMF_PARAMETER 0x00000040
114 #define SYMF_LOCAL 0x00000080
115 #define SYMF_CONSTANT 0x00000100
116 #define SYMF_EXPORT 0x00000200
117 #define SYMF_FORWARDER 0x00000400
118 #define SYMF_FUNCTION 0x00000800
120 typedef enum {
121 SymNone,
122 SymCoff,
123 SymCv,
124 SymPdb,
125 SymExport,
126 SymDeferred,
127 SymSym,
128 SymDia,
129 SymVirtual,
130 NumSymTypes
131 } SYM_TYPE;
133 #define UNDNAME_COMPLETE 0x0000
134 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
135 #define UNDNAME_NO_MS_KEYWORDS 0x0002
136 #define UNDNAME_NO_FUNCTION_RETURNS 0x0004
137 #define UNDNAME_NO_ALLOCATION_MODEL 0x0008
138 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
139 #define UNDNAME_NO_MS_THISTYPE 0x0020
140 #define UNDNAME_NO_CV_THISTYPE 0x0040
141 #define UNDNAME_NO_THISTYPE 0x0060
142 #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080
143 #define UNDNAME_NO_THROW_SIGNATURES 0x0100
144 #define UNDNAME_NO_MEMBER_TYPE 0x0200
145 #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400
146 #define UNDNAME_32_BIT_DECODE 0x0800
147 #define UNDNAME_NAME_ONLY 0x1000
148 #define UNDNAME_NO_ARGUMENTS 0x2000
149 #define UNDNAME_NO_SPECIAL_SYMS 0x4000
151 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
152 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
153 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
154 #define CBA_SYMBOLS_UNLOADED 0x00000004
155 #define CBA_DUPLICATE_SYMBOL 0x00000005
157 /***********************************************************************
158 * Structures
161 typedef struct _LOADED_IMAGE {
162 LPSTR ModuleName;
163 HANDLE hFile;
164 PUCHAR MappedAddress;
165 PIMAGE_NT_HEADERS FileHeader;
166 PIMAGE_SECTION_HEADER LastRvaSection;
167 ULONG NumberOfSections;
168 PIMAGE_SECTION_HEADER Sections;
169 ULONG Characteristics;
170 BOOLEAN fSystemImage;
171 BOOLEAN fDOSImage;
172 LIST_ENTRY Links;
173 ULONG SizeOfImage;
174 } LOADED_IMAGE, *PLOADED_IMAGE;
176 typedef struct _WIN_CERTIFICATE {
177 DWORD dwLength;
178 WORD wRevision; /* WIN_CERT_REVISON_xxx */
179 WORD wCertificateType; /* WIN_CERT_TYPE_xxx */
180 BYTE bCertificate[ANYSIZE_ARRAY];
181 } WIN_CERTIFICATE, *PWIN_CERTIFICATE;
183 typedef struct _API_VERSION {
184 USHORT MajorVersion;
185 USHORT MinorVersion;
186 USHORT Revision;
187 USHORT Reserved;
188 } API_VERSION, *LPAPI_VERSION;
190 typedef struct _IMAGE_DEBUG_INFORMATION {
191 LIST_ENTRY List;
192 DWORD Size;
193 PVOID MappedBase;
194 USHORT Machine;
195 USHORT Characteristics;
196 DWORD CheckSum;
197 DWORD ImageBase;
198 DWORD SizeOfImage;
200 DWORD NumberOfSections;
201 PIMAGE_SECTION_HEADER Sections;
203 DWORD ExportedNamesSize;
204 LPSTR ExportedNames;
206 DWORD NumberOfFunctionTableEntries;
207 PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
208 DWORD LowestFunctionStartingAddress;
209 DWORD HighestFunctionEndingAddress;
211 DWORD NumberOfFpoTableEntries;
212 PFPO_DATA FpoTableEntries;
214 DWORD SizeOfCoffSymbols;
215 PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
217 DWORD SizeOfCodeViewSymbols;
218 PVOID CodeViewSymbols;
220 LPSTR ImageFilePath;
221 LPSTR ImageFileName;
222 LPSTR DebugFilePath;
224 DWORD TimeDateStamp;
226 BOOL RomImage;
227 PIMAGE_DEBUG_DIRECTORY DebugDirectory;
228 DWORD NumberOfDebugDirectories;
230 DWORD Reserved[3];
231 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
233 typedef struct _ADDRESS {
234 DWORD Offset;
235 WORD Segment;
236 ADDRESS_MODE Mode;
237 } ADDRESS, *PADDRESS;
239 typedef struct _ADDRESS64 {
240 DWORD64 Offset;
241 WORD Segment;
242 ADDRESS_MODE Mode;
243 } ADDRESS64, *LPADDRESS64;
245 typedef struct _KDHELP {
246 DWORD Thread;
247 DWORD ThCallbackStack;
248 DWORD NextCallback;
249 DWORD FramePointer;
250 DWORD KiCallUserMode;
251 DWORD KeUserCallbackDispatcher;
252 DWORD SystemRangeStart;
253 } KDHELP, *PKDHELP;
255 typedef struct _KDHELP64 {
256 DWORD64 Thread;
257 DWORD ThCallbackStack;
258 DWORD ThCallbackBStore;
259 DWORD NextCallback;
260 DWORD FramePointer;
261 DWORD64 KiCallUserMode;
262 DWORD64 KeUserCallbackDispatcher;
263 DWORD64 SystemRangeStart;
264 DWORD64 Reserved[8];
265 } KDHELP64, *PKDHELP64;
267 typedef struct _STACKFRAME {
268 ADDRESS AddrPC;
269 ADDRESS AddrReturn;
270 ADDRESS AddrFrame;
271 ADDRESS AddrStack;
272 PVOID FuncTableEntry;
273 DWORD Params[4];
274 BOOL Far;
275 BOOL Virtual;
276 DWORD Reserved[3];
277 KDHELP KdHelp;
278 } STACKFRAME, *LPSTACKFRAME;
280 typedef struct _STACKFRAME64 {
281 ADDRESS64 AddrPC;
282 ADDRESS64 AddrReturn;
283 ADDRESS64 AddrFrame;
284 ADDRESS64 AddrStack;
285 ADDRESS64 AddrBStore;
286 PVOID FuncTableEntry;
287 DWORD64 Params[4];
288 BOOL Far;
289 BOOL Virtual;
290 DWORD64 Reserved[3];
291 KDHELP64 KdHelp;
292 } STACKFRAME64, *LPSTACKFRAME64;
294 typedef struct _SOURCEFILE {
295 DWORD64 ModBase;
296 PCHAR FileName;
297 } SOURCEFILE, *PSOURCEFILE;
299 typedef struct _IMAGEHLP_STACK_FRAME
301 DWORD InstructionOffset;
302 DWORD ReturnOffset;
303 DWORD FrameOffset;
304 DWORD StackOffset;
305 DWORD BackingStoreOffset;
306 DWORD FuncTableEntry;
307 DWORD Params[4];
308 DWORD Reserved[5];
309 DWORD Virtual;
310 DWORD Reserved2;
311 } IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
313 typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
315 typedef struct _IMAGEHLP_SYMBOL {
316 DWORD SizeOfStruct;
317 DWORD Address;
318 DWORD Size;
319 DWORD Flags;
320 DWORD MaxNameLength;
321 CHAR Name[ANYSIZE_ARRAY];
322 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
324 typedef struct _IMAGEHLP_MODULE {
325 DWORD SizeOfStruct;
326 DWORD BaseOfImage;
327 DWORD ImageSize;
328 DWORD TimeDateStamp;
329 DWORD CheckSum;
330 DWORD NumSyms;
331 SYM_TYPE SymType;
332 CHAR ModuleName[32];
333 CHAR ImageName[256];
334 CHAR LoadedImageName[256];
335 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
337 typedef struct _IMAGEHLP_LINE {
338 DWORD SizeOfStruct;
339 DWORD Key;
340 DWORD LineNumber;
341 PCHAR FileName;
342 DWORD Address;
343 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
345 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
346 DWORD SizeOfStruct;
347 DWORD BaseOfImage;
348 DWORD CheckSum;
349 DWORD TimeDateStamp;
350 CHAR FileName[MAX_PATH];
351 BOOLEAN Reparse;
352 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
354 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
355 DWORD SizeOfStruct;
356 DWORD NumberOfDups;
357 PIMAGEHLP_SYMBOL Symbol;
358 ULONG SelectedSymbol;
359 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
361 #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
362 #define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
363 #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
364 #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL
365 #define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER
366 #define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL
367 #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT
368 #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION
370 typedef struct _SYMBOL_INFO {
371 ULONG SizeOfStruct;
372 ULONG TypeIndex;
373 ULONG64 Reserved[2];
374 ULONG info;
375 ULONG Size;
376 ULONG64 ModBase;
377 ULONG Flags;
378 ULONG64 Value;
379 ULONG64 Address;
380 ULONG Register;
381 ULONG Scope;
382 ULONG Tag;
383 ULONG NameLen;
384 ULONG MaxNameLen;
385 CHAR Name[1];
386 } SYMBOL_INFO, *PSYMBOL_INFO;
388 /***********************************************************************
389 * Callbacks
392 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
393 IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName,
394 ULONG Va, ULONG Parameter
397 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
398 PSYMBOL_INFO pSymInfo, DWORD SymbolSize, PVOID UserContext
401 typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(
402 PSOURCEFILE pSourceFile, PVOID UserContext
405 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
406 LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
409 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
410 LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize,
411 PVOID UserContext
414 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
415 LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
416 PVOID UserContext
419 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
420 HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
421 PVOID UserContext
424 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
425 DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
428 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
429 HANDLE hProcess, LPCVOID lpBaseAddress, PVOID lpBuffer,
430 DWORD nSize, PDWORD lpNumberOfBytesRead
433 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)(
434 HANDLE hProcess, DWORD64 lpBaseAddress, PVOID lpBuffer,
435 DWORD nSize, LPDWORD lpNumberOfBytesRead
438 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
439 HANDLE hProcess, DWORD AddrBase
442 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(
443 HANDLE hProcess, DWORD64 AddrBase
446 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
447 HANDLE hProcess, DWORD ReturnAddress);
449 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(
450 HANDLE hProcess, DWORD64 ReturnAddress);
452 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
453 HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
456 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(
457 HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr
460 /***********************************************************************
461 * Functions
464 BOOL WINAPI BindImage(
465 LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath
467 BOOL WINAPI BindImageEx(
468 DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath,
469 PIMAGEHLP_STATUS_ROUTINE StatusRoutine
471 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
472 LPVOID BaseAddress, DWORD FileLength,
473 LPDWORD HeaderSum, LPDWORD CheckSum
475 BOOL WINAPI EnumerateLoadedModules(
476 HANDLE hProcess,
477 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
478 PVOID UserContext
480 HANDLE WINAPI FindDebugInfoFile(
481 LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath
483 HANDLE WINAPI FindExecutableImage(
484 LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath
486 BOOL WINAPI GetImageConfigInformation(
487 PLOADED_IMAGE LoadedImage,
488 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
490 DWORD WINAPI GetImageUnusedHeaderBytes(
491 PLOADED_IMAGE LoadedImage,
492 LPDWORD SizeUnusedHeaderBytes
494 DWORD WINAPI GetTimestampForLoadedLibrary(
495 HMODULE Module
497 BOOL WINAPI ImageAddCertificate(
498 HANDLE FileHandle, PWIN_CERTIFICATE Certificate, PDWORD Index
500 PVOID WINAPI ImageDirectoryEntryToData(
501 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
503 BOOL WINAPI ImageEnumerateCertificates(
504 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
505 PDWORD Indices, DWORD IndexCount
507 BOOL WINAPI ImageGetCertificateData(
508 HANDLE FileHandle, DWORD CertificateIndex,
509 PWIN_CERTIFICATE Certificate, PDWORD RequiredLength
511 BOOL WINAPI ImageGetCertificateHeader(
512 HANDLE FileHandle, DWORD CertificateIndex,
513 PWIN_CERTIFICATE Certificateheader
515 BOOL WINAPI ImageGetDigestStream(
516 HANDLE FileHandle, DWORD DigestLevel,
517 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
519 PLOADED_IMAGE WINAPI ImageLoad(
520 LPSTR DllName, LPSTR DllPath
522 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
523 PVOID Base
525 BOOL WINAPI ImageRemoveCertificate(
526 HANDLE FileHandle, DWORD Index
528 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
529 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
531 PVOID WINAPI ImageRvaToVa(
532 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
533 PIMAGE_SECTION_HEADER *LastRvaSection
535 BOOL WINAPI ImageUnload(
536 PLOADED_IMAGE LoadedImage
538 LPAPI_VERSION WINAPI ImagehlpApiVersion(
539 void
541 LPAPI_VERSION WINAPI ImagehlpApiVersionEx(
542 LPAPI_VERSION AppVersion
544 BOOL WINAPI MakeSureDirectoryPathExists(
545 LPCSTR DirPath
547 BOOL WINAPI MapAndLoad(
548 LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage,
549 BOOL DotDll, BOOL ReadOnly
551 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
552 HANDLE FileHandle, LPSTR FileName,
553 LPSTR SymbolPath, DWORD ImageBase
555 DWORD WINAPI MapFileAndCheckSumA(
556 LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
558 DWORD WINAPI MapFileAndCheckSumW(
559 LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum
561 BOOL WINAPI ReBaseImage(
562 LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase,
563 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
564 ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize,
565 ULONG *NewImageBase, ULONG TimeStamp
567 BOOL WINAPI RemovePrivateCvSymbolic(
568 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
570 VOID WINAPI RemoveRelocations(
571 PCHAR ImageName
573 BOOL WINAPI SearchTreeForFile(
574 LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer
576 BOOL WINAPI SetImageConfigInformation(
577 PLOADED_IMAGE LoadedImage,
578 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
580 BOOL WINAPI SplitSymbols(
581 LPSTR ImageName, LPSTR SymbolsPath,
582 LPSTR SymbolFilePath, DWORD Flags
584 BOOL WINAPI StackWalk(
585 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
586 LPSTACKFRAME StackFrame, PVOID ContextRecord,
587 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
588 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
589 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
590 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
592 BOOL WINAPI StackWalk64(
593 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
594 LPSTACKFRAME64 StackFrame, PVOID ContextRecord,
595 PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
596 PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
597 PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
598 PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
600 BOOL WINAPI SymCleanup(
601 HANDLE hProcess
603 BOOL WINAPI SymEnumerateModules(
604 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
605 PVOID UserContext
607 BOOL WINAPI SymEnumerateSymbols(
608 HANDLE hProcess, DWORD BaseOfDll,
609 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
611 BOOL WINAPI SymEnumSourceFiles(
612 HANDLE hProcess, DWORD ModBase, LPSTR Mask,
613 PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext
615 BOOL WINAPI SymEnumSymbols(
616 HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask,
617 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
619 PVOID WINAPI SymFunctionTableAccess(
620 HANDLE hProcess, DWORD AddrBase
622 DWORD WINAPI SymGetModuleBase(
623 HANDLE hProcess, DWORD dwAddr
625 BOOL WINAPI SymGetModuleInfo(
626 HANDLE hProcess, DWORD dwAddr,
627 PIMAGEHLP_MODULE ModuleInfo
629 DWORD WINAPI SymGetOptions(
630 void
632 BOOL WINAPI SymGetSearchPath(
633 HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength
635 BOOL WINAPI SymGetSymFromAddr(
636 HANDLE hProcess, DWORD dwAddr,
637 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
639 BOOL WINAPI SymGetSymFromName(
640 HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol
642 BOOL WINAPI SymGetSymNext(
643 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
645 BOOL WINAPI SymGetSymPrev(
646 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
648 BOOL WINAPI SymInitialize(
649 HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess
651 DWORD WINAPI SymLoadModule(
652 HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName,
653 DWORD BaseOfDll, DWORD SizeOfDll
655 BOOL WINAPI SymRegisterCallback(
656 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
657 PVOID UserContext
659 DWORD WINAPI SymSetContext(
660 HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
661 PIMAGEHLP_CONTEXT Context
663 DWORD WINAPI SymSetOptions(
664 DWORD SymOptions
666 BOOL WINAPI SymSetSearchPath(
667 HANDLE hProcess, LPSTR szSearchPath
669 BOOL WINAPI SymUnDName(
670 PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength
672 BOOL WINAPI SymUnloadModule(
673 HANDLE hProcess, DWORD BaseOfDll
675 BOOL WINAPI TouchFileTimes(
676 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
678 DWORD WINAPI UnDecorateSymbolName(
679 LPCSTR DecoratedName, LPSTR UnDecoratedName,
680 DWORD UndecoratedLength, DWORD Flags
682 BOOL WINAPI UnMapAndLoad(
683 PLOADED_IMAGE LoadedImage
685 BOOL WINAPI UnmapDebugInformation(
686 PIMAGE_DEBUG_INFORMATION DebugInfo
688 BOOL WINAPI UpdateDebugInfoFile(
689 LPSTR ImageFileName, LPSTR SymbolPath,
690 LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders
692 BOOL WINAPI UpdateDebugInfoFileEx(
693 LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath,
694 PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum
697 #ifdef __cplusplus
698 } /* extern "C" */
699 #endif /* defined(__cplusplus) */
701 #endif /* __WINE_IMAGEHLP_H */