imagehlp.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _IMAGEHLP_
  7. #define _IMAGEHLP_
  8. #include <_mingw_unicode.h>
  9. #ifdef _WIN64
  10. #ifndef _IMAGEHLP64
  11. #define _IMAGEHLP64
  12. #endif
  13. #endif
  14. #include <wintrust.h>
  15. #include <psdk_inc/_dbg_LOAD_IMAGE.h>
  16. typedef enum _IMAGEHLP_STATUS_REASON {
  17. BindOutOfMemory,
  18. BindRvaToVaFailed,
  19. BindNoRoomInImage,
  20. BindImportModuleFailed,
  21. BindImportProcedureFailed,
  22. BindImportModule,
  23. BindImportProcedure,
  24. BindForwarder,
  25. BindForwarderNOT,
  26. BindImageModified,
  27. BindExpandFileHeaders,
  28. BindImageComplete,
  29. BindMismatchedSymbols,
  30. BindSymbolsNotUpdated,
  31. BindImportProcedure32,
  32. BindImportProcedure64,
  33. BindForwarder32,
  34. BindForwarder64,
  35. BindForwarderNOT32,
  36. BindForwarderNOT64
  37. } IMAGEHLP_STATUS_REASON;
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41. typedef WINBOOL (WINAPI *PIMAGEHLP_STATUS_ROUTINE)(IMAGEHLP_STATUS_REASON Reason,PCSTR ImageName,PCSTR DllName,ULONG_PTR Va,ULONG_PTR Parameter);
  42. typedef WINBOOL (WINAPI *PIMAGEHLP_STATUS_ROUTINE32)(IMAGEHLP_STATUS_REASON Reason,PCSTR ImageName,PCSTR DllName,ULONG Va,ULONG_PTR Parameter);
  43. typedef WINBOOL (WINAPI *PIMAGEHLP_STATUS_ROUTINE64)(IMAGEHLP_STATUS_REASON Reason,PCSTR ImageName,PCSTR DllName,ULONG64 Va,ULONG_PTR Parameter);
  44. #define BIND_NO_BOUND_IMPORTS 0x00000001
  45. #define BIND_NO_UPDATE 0x00000002
  46. #define BIND_ALL_IMAGES 0x00000004
  47. #define BIND_CACHE_IMPORT_DLLS 0x00000008
  48. #define BIND_REPORT_64BIT_VA 0x00000010
  49. #define CHECKSUM_SUCCESS 0
  50. #define CHECKSUM_OPEN_FAILURE 1
  51. #define CHECKSUM_MAP_FAILURE 2
  52. #define CHECKSUM_MAPVIEW_FAILURE 3
  53. #define CHECKSUM_UNICODE_FAILURE 4
  54. #define SPLITSYM_REMOVE_PRIVATE 0x00000001
  55. #define SPLITSYM_EXTRACT_ALL 0x00000002
  56. #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
  57. #define MapFileAndCheckSum __MINGW_NAME_AW(MapFileAndCheckSum)
  58. WINBOOL IMAGEAPI BindImage(PCSTR ImageName,PCSTR DllPath,PCSTR SymbolPath);
  59. WINBOOL IMAGEAPI BindImageEx(DWORD Flags,PCSTR ImageName,PCSTR DllPath,PCSTR SymbolPath,PIMAGEHLP_STATUS_ROUTINE StatusRoutine);
  60. WINBOOL IMAGEAPI ReBaseImage(PCSTR CurrentImageName,PCSTR SymbolPath,WINBOOL fReBase,WINBOOL fRebaseSysfileOk,WINBOOL fGoingDown,ULONG CheckImageSize,ULONG *OldImageSize,ULONG_PTR *OldImageBase,ULONG *NewImageSize,ULONG_PTR *NewImageBase,ULONG TimeStamp);
  61. WINBOOL IMAGEAPI ReBaseImage64(PCSTR CurrentImageName,PCSTR SymbolPath,WINBOOL fReBase,WINBOOL fRebaseSysfileOk,WINBOOL fGoingDown,ULONG CheckImageSize,ULONG *OldImageSize,ULONG64 *OldImageBase,ULONG *NewImageSize,ULONG64 *NewImageBase,ULONG TimeStamp);
  62. WINBOOL IMAGEAPI GetImageConfigInformation(PLOADED_IMAGE LoadedImage,PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation);
  63. DWORD IMAGEAPI GetImageUnusedHeaderBytes(PLOADED_IMAGE LoadedImage,PDWORD SizeUnusedHeaderBytes);
  64. WINBOOL IMAGEAPI SetImageConfigInformation(PLOADED_IMAGE LoadedImage,PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation);
  65. PIMAGE_NT_HEADERS IMAGEAPI CheckSumMappedFile (PVOID BaseAddress,DWORD FileLength,PDWORD HeaderSum,PDWORD CheckSum);
  66. DWORD IMAGEAPI MapFileAndCheckSumA(PCSTR Filename,PDWORD HeaderSum,PDWORD CheckSum);
  67. DWORD IMAGEAPI MapFileAndCheckSumW(PCWSTR Filename,PDWORD HeaderSum,PDWORD CheckSum);
  68. #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
  69. #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
  70. #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
  71. #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
  72. #define CERT_SECTION_TYPE_ANY 0xFF
  73. typedef PVOID DIGEST_HANDLE;
  74. typedef WINBOOL (WINAPI *DIGEST_FUNCTION)(DIGEST_HANDLE refdata,PBYTE pData,DWORD dwLength);
  75. WINBOOL IMAGEAPI ImageGetDigestStream(HANDLE FileHandle,DWORD DigestLevel,DIGEST_FUNCTION DigestFunction,DIGEST_HANDLE DigestHandle);
  76. WINBOOL IMAGEAPI ImageAddCertificate(HANDLE FileHandle,LPWIN_CERTIFICATE Certificate,PDWORD Index);
  77. WINBOOL IMAGEAPI ImageRemoveCertificate(HANDLE FileHandle,DWORD Index);
  78. WINBOOL IMAGEAPI ImageEnumerateCertificates(HANDLE FileHandle,WORD TypeFilter,PDWORD CertificateCount,PDWORD Indices,DWORD IndexCount);
  79. WINBOOL IMAGEAPI ImageGetCertificateData(HANDLE FileHandle,DWORD CertificateIndex,LPWIN_CERTIFICATE Certificate,PDWORD RequiredLength);
  80. WINBOOL IMAGEAPI ImageGetCertificateHeader(HANDLE FileHandle,DWORD CertificateIndex,LPWIN_CERTIFICATE Certificateheader);
  81. PLOADED_IMAGE IMAGEAPI ImageLoad(PCSTR DllName,PCSTR DllPath);
  82. WINBOOL IMAGEAPI ImageUnload(PLOADED_IMAGE LoadedImage);
  83. WINBOOL IMAGEAPI MapAndLoad(PCSTR ImageName,PCSTR DllPath,PLOADED_IMAGE LoadedImage,WINBOOL DotDll,WINBOOL ReadOnly);
  84. WINBOOL IMAGEAPI UnMapAndLoad(PLOADED_IMAGE LoadedImage);
  85. WINBOOL IMAGEAPI TouchFileTimes(HANDLE FileHandle,PSYSTEMTIME pSystemTime);
  86. WINBOOL IMAGEAPI SplitSymbols(PSTR ImageName,PCSTR SymbolsPath,PSTR SymbolFilePath,DWORD Flags);
  87. WINBOOL IMAGEAPI UpdateDebugInfoFile(PCSTR ImageFileName,PCSTR SymbolPath,PSTR DebugFilePath,PIMAGE_NT_HEADERS32 NtHeaders);
  88. WINBOOL IMAGEAPI UpdateDebugInfoFileEx(PCSTR ImageFileName,PCSTR SymbolPath,PSTR DebugFilePath,PIMAGE_NT_HEADERS32 NtHeaders,DWORD OldChecksum);
  89. #ifdef __cplusplus
  90. }
  91. #endif
  92. #include <psdk_inc/_dbg_common.h>
  93. #endif