imagehlp.h 18 KB

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