imagehlp: Better match the PSDK types, especially with regards to constness.

Add many missing prototypes which we already had in dbghelp.h, and their related structures.
Update win32.api to fix the winapi_check warnings.
This commit is contained in:
Francois Gouget 2007-08-04 03:15:44 +02:00 committed by Alexandre Julliard
parent 5e565a76b4
commit b86570d136
4 changed files with 698 additions and 65 deletions

View File

@ -87,7 +87,7 @@ DWORD WINAPI GetImageUnusedHeaderBytes(
/*********************************************************************** /***********************************************************************
* ImageLoad (IMAGEHLP.@) * ImageLoad (IMAGEHLP.@)
*/ */
PLOADED_IMAGE WINAPI ImageLoad(LPSTR DllName, LPSTR DllPath) PLOADED_IMAGE WINAPI ImageLoad(PCSTR DllName, PCSTR DllPath)
{ {
PLOADED_IMAGE pLoadedImage; PLOADED_IMAGE pLoadedImage;
@ -146,7 +146,7 @@ BOOL WINAPI ImageUnload(PLOADED_IMAGE pLoadedImage)
/*********************************************************************** /***********************************************************************
* MapAndLoad (IMAGEHLP.@) * MapAndLoad (IMAGEHLP.@)
*/ */
BOOL WINAPI MapAndLoad(LPSTR pszImageName, LPSTR pszDllPath, PLOADED_IMAGE pLoadedImage, BOOL WINAPI MapAndLoad(PCSTR pszImageName, PCSTR pszDllPath, PLOADED_IMAGE pLoadedImage,
BOOL bDotDll, BOOL bReadOnly) BOOL bDotDll, BOOL bReadOnly)
{ {
CHAR szFileName[MAX_PATH]; CHAR szFileName[MAX_PATH];

View File

@ -36,7 +36,7 @@ static WORD CalcCheckSum(DWORD StartValue, LPVOID BaseAddress, DWORD WordCount);
* BindImage (IMAGEHLP.@) * BindImage (IMAGEHLP.@)
*/ */
BOOL WINAPI BindImage( BOOL WINAPI BindImage(
LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath) PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath)
{ {
return BindImageEx(0, ImageName, DllPath, SymbolPath, NULL); return BindImageEx(0, ImageName, DllPath, SymbolPath, NULL);
} }
@ -45,7 +45,7 @@ BOOL WINAPI BindImage(
* BindImageEx (IMAGEHLP.@) * BindImageEx (IMAGEHLP.@)
*/ */
BOOL WINAPI BindImageEx( BOOL WINAPI BindImageEx(
DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath, DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath,
PIMAGEHLP_STATUS_ROUTINE StatusRoutine) PIMAGEHLP_STATUS_ROUTINE StatusRoutine)
{ {
FIXME("(%d, %s, %s, %s, %p): stub\n", FIXME("(%d, %s, %s, %s, %p): stub\n",
@ -138,7 +138,7 @@ PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
* MapFileAndCheckSumA (IMAGEHLP.@) * MapFileAndCheckSumA (IMAGEHLP.@)
*/ */
DWORD WINAPI MapFileAndCheckSumA( DWORD WINAPI MapFileAndCheckSumA(
LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum) PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum)
{ {
HANDLE hFile; HANDLE hFile;
HANDLE hMapping; HANDLE hMapping;
@ -204,7 +204,7 @@ DWORD WINAPI MapFileAndCheckSumA(
* MapFileAndCheckSumW (IMAGEHLP.@) * MapFileAndCheckSumW (IMAGEHLP.@)
*/ */
DWORD WINAPI MapFileAndCheckSumW( DWORD WINAPI MapFileAndCheckSumW(
LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum) PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum)
{ {
HANDLE hFile; HANDLE hFile;
HANDLE hMapping; HANDLE hMapping;
@ -270,10 +270,10 @@ DWORD WINAPI MapFileAndCheckSumW(
* ReBaseImage (IMAGEHLP.@) * ReBaseImage (IMAGEHLP.@)
*/ */
BOOL WINAPI ReBaseImage( BOOL WINAPI ReBaseImage(
LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase, PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize, ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize,
ULONG *NewImageBase, ULONG TimeStamp) ULONG_PTR *NewImageBase, ULONG TimeStamp)
{ {
FIXME( FIXME(
"(%s, %s, %d, %d, %d, %d, %p, %p, %p, %p, %d): stub\n", "(%s, %s, %d, %d, %d, %d, %p, %p, %p, %p, %d): stub\n",
@ -311,8 +311,8 @@ VOID WINAPI RemoveRelocations(PCHAR ImageName)
* SplitSymbols (IMAGEHLP.@) * SplitSymbols (IMAGEHLP.@)
*/ */
BOOL WINAPI SplitSymbols( BOOL WINAPI SplitSymbols(
LPSTR ImageName, LPSTR SymbolsPath, PSTR ImageName, PCSTR SymbolsPath,
LPSTR SymbolFilePath, DWORD Flags) PSTR SymbolFilePath, ULONG Flags)
{ {
FIXME("(%s, %s, %s, %d): stub\n", FIXME("(%s, %s, %s, %d): stub\n",
debugstr_a(ImageName), debugstr_a(SymbolsPath), debugstr_a(ImageName), debugstr_a(SymbolsPath),
@ -326,8 +326,8 @@ BOOL WINAPI SplitSymbols(
* UpdateDebugInfoFile (IMAGEHLP.@) * UpdateDebugInfoFile (IMAGEHLP.@)
*/ */
BOOL WINAPI UpdateDebugInfoFile( BOOL WINAPI UpdateDebugInfoFile(
LPSTR ImageFileName, LPSTR SymbolPath, PCSTR ImageFileName, PCSTR SymbolPath,
LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders) PSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders)
{ {
FIXME("(%s, %s, %s, %p): stub\n", FIXME("(%s, %s, %s, %p): stub\n",
debugstr_a(ImageFileName), debugstr_a(SymbolPath), debugstr_a(ImageFileName), debugstr_a(SymbolPath),
@ -341,8 +341,8 @@ BOOL WINAPI UpdateDebugInfoFile(
* UpdateDebugInfoFileEx (IMAGEHLP.@) * UpdateDebugInfoFileEx (IMAGEHLP.@)
*/ */
BOOL WINAPI UpdateDebugInfoFileEx( BOOL WINAPI UpdateDebugInfoFileEx(
LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath, PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath,
PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum) PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum)
{ {
FIXME("(%s, %s, %s, %p, %d): stub\n", FIXME("(%s, %s, %s, %p, %d): stub\n",
debugstr_a(ImageFileName), debugstr_a(SymbolPath), debugstr_a(ImageFileName), debugstr_a(SymbolPath),

View File

@ -207,7 +207,7 @@ typedef struct _IMAGE_DEBUG_INFORMATION {
PIMAGE_SECTION_HEADER Sections; PIMAGE_SECTION_HEADER Sections;
DWORD ExportedNamesSize; DWORD ExportedNamesSize;
LPSTR ExportedNames; PSTR ExportedNames;
DWORD NumberOfFunctionTableEntries; DWORD NumberOfFunctionTableEntries;
PIMAGE_FUNCTION_ENTRY FunctionTableEntries; PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
@ -223,9 +223,9 @@ typedef struct _IMAGE_DEBUG_INFORMATION {
DWORD SizeOfCodeViewSymbols; DWORD SizeOfCodeViewSymbols;
PVOID CodeViewSymbols; PVOID CodeViewSymbols;
LPSTR ImageFilePath; PSTR ImageFilePath;
LPSTR ImageFileName; PSTR ImageFileName;
LPSTR DebugFilePath; PSTR DebugFilePath;
DWORD TimeDateStamp; DWORD TimeDateStamp;
@ -302,6 +302,12 @@ typedef struct _SOURCEFILE {
PCHAR FileName; PCHAR FileName;
} SOURCEFILE, *PSOURCEFILE; } SOURCEFILE, *PSOURCEFILE;
typedef struct _SOURCEFILEW
{
DWORD64 ModBase;
PWSTR FileName;
} SOURCEFILEW, *PSOURCEFILEW;
typedef struct _IMAGEHLP_STACK_FRAME typedef struct _IMAGEHLP_STACK_FRAME
{ {
DWORD InstructionOffset; DWORD InstructionOffset;
@ -327,6 +333,35 @@ typedef struct _IMAGEHLP_SYMBOL {
CHAR Name[ANYSIZE_ARRAY]; CHAR Name[ANYSIZE_ARRAY];
} IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL; } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
typedef struct _IMAGEHLP_SYMBOLW {
DWORD SizeOfStruct;
DWORD Address;
DWORD Size;
DWORD Flags;
DWORD MaxNameLength;
WCHAR Name[ANYSIZE_ARRAY];
} IMAGEHLP_SYMBOLW, *PIMAGEHLP_SYMBOLW;
typedef struct _IMAGEHLP_SYMBOL64
{
DWORD SizeOfStruct;
DWORD64 Address;
DWORD Size;
DWORD Flags;
DWORD MaxNameLength;
CHAR Name[1];
} IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64;
typedef struct _IMAGEHLP_SYMBOLW64
{
DWORD SizeOfStruct;
DWORD64 Address;
DWORD Size;
DWORD Flags;
DWORD MaxNameLength;
WCHAR Name[1];
} IMAGEHLP_SYMBOLW64, *PIMAGEHLP_SYMBOLW64;
typedef struct _IMAGEHLP_MODULE { typedef struct _IMAGEHLP_MODULE {
DWORD SizeOfStruct; DWORD SizeOfStruct;
DWORD BaseOfImage; DWORD BaseOfImage;
@ -340,14 +375,105 @@ typedef struct _IMAGEHLP_MODULE {
CHAR LoadedImageName[256]; CHAR LoadedImageName[256];
} IMAGEHLP_MODULE, *PIMAGEHLP_MODULE; } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
typedef struct _IMAGEHLP_MODULEW {
DWORD SizeOfStruct;
DWORD BaseOfImage;
DWORD ImageSize;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD NumSyms;
SYM_TYPE SymType;
WCHAR ModuleName[32];
WCHAR ImageName[256];
WCHAR LoadedImageName[256];
} IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW;
typedef struct _IMAGEHLP_MODULE64
{
DWORD SizeOfStruct;
DWORD64 BaseOfImage;
DWORD ImageSize;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD NumSyms;
SYM_TYPE SymType;
CHAR ModuleName[32];
CHAR ImageName[256];
CHAR LoadedImageName[256];
CHAR LoadedPdbName[256];
DWORD CVSig;
CHAR CVData[MAX_PATH*3];
DWORD PdbSig;
GUID PdbSig70;
DWORD PdbAge;
BOOL PdbUnmatched;
BOOL DbgUnmatched;
BOOL LineNumbers;
BOOL GlobalSymbols;
BOOL TypeInfo;
BOOL SourceIndexed;
BOOL Publics;
} IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64;
typedef struct _IMAGEHLP_MODULEW64
{
DWORD SizeOfStruct;
DWORD64 BaseOfImage;
DWORD ImageSize;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD NumSyms;
SYM_TYPE SymType;
WCHAR ModuleName[32];
WCHAR ImageName[256];
WCHAR LoadedImageName[256];
WCHAR LoadedPdbName[256];
DWORD CVSig;
WCHAR CVData[MAX_PATH*3];
DWORD PdbSig;
GUID PdbSig70;
DWORD PdbAge;
BOOL PdbUnmatched;
BOOL DbgUnmatched;
BOOL LineNumbers;
BOOL GlobalSymbols;
BOOL TypeInfo;
BOOL SourceIndexed;
BOOL Publics;
} IMAGEHLP_MODULEW64, *PIMAGEHLP_MODULEW64;
typedef struct _IMAGEHLP_LINE { typedef struct _IMAGEHLP_LINE {
DWORD SizeOfStruct; DWORD SizeOfStruct;
DWORD Key; PVOID Key;
DWORD LineNumber; DWORD LineNumber;
PCHAR FileName; PCHAR FileName;
DWORD Address; DWORD Address;
} IMAGEHLP_LINE, *PIMAGEHLP_LINE; } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
typedef struct _IMAGEHLP_LINEW {
DWORD SizeOfStruct;
PVOID Key;
DWORD LineNumber;
PWSTR FileName;
DWORD Address;
} IMAGEHLP_LINEW, *PIMAGEHLP_LINEW;
typedef struct _IMAGEHLP_LINE64 {
DWORD SizeOfStruct;
PVOID Key;
DWORD LineNumber;
PCHAR FileName;
DWORD64 Address;
} IMAGEHLP_LINE64, *PIMAGEHLP_LINE64;
typedef struct _IMAGEHLP_LINEW64 {
DWORD SizeOfStruct;
PVOID Key;
DWORD LineNumber;
PWSTR FileName;
DWORD64 Address;
} IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64;
typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD { typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
DWORD SizeOfStruct; DWORD SizeOfStruct;
DWORD BaseOfImage; DWORD BaseOfImage;
@ -364,6 +490,61 @@ typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
ULONG SelectedSymbol; ULONG SelectedSymbol;
} IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL; } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO
{
TI_GET_SYMTAG,
TI_GET_SYMNAME,
TI_GET_LENGTH,
TI_GET_TYPE,
TI_GET_TYPEID,
TI_GET_BASETYPE,
TI_GET_ARRAYINDEXTYPEID,
TI_FINDCHILDREN,
TI_GET_DATAKIND,
TI_GET_ADDRESSOFFSET,
TI_GET_OFFSET,
TI_GET_VALUE,
TI_GET_COUNT,
TI_GET_CHILDRENCOUNT,
TI_GET_BITPOSITION,
TI_GET_VIRTUALBASECLASS,
TI_GET_VIRTUALTABLESHAPEID,
TI_GET_VIRTUALBASEPOINTEROFFSET,
TI_GET_CLASSPARENTID,
TI_GET_NESTED,
TI_GET_SYMINDEX,
TI_GET_LEXICALPARENT,
TI_GET_ADDRESS,
TI_GET_THISADJUST,
TI_GET_UDTKIND,
TI_IS_EQUIV_TO,
TI_GET_CALLING_CONVENTION,
} IMAGEHLP_SYMBOL_TYPE_INFO;
#define IMAGEHLP_GET_TYPE_INFO_UNCACHED 0x00000001
#define IMAGEHLP_GET_TYPE_INFO_CHILDREN 0x00000002
typedef struct _IMAGEHLP_GET_TYPE_INFO_PARAMS
{
ULONG SizeOfStruct;
ULONG Flags;
ULONG NumIds;
PULONG TypeIds;
ULONG64 TagFilter;
ULONG NumReqs;
IMAGEHLP_SYMBOL_TYPE_INFO* ReqKinds;
PULONG_PTR ReqOffsets;
PULONG ReqSizes;
ULONG_PTR ReqStride;
ULONG_PTR BufferSize;
PVOID Buffer;
ULONG EntriesMatched;
ULONG EntriesFilled;
ULONG64 TagsFound;
ULONG64 AllReqsValid;
ULONG NumReqsValid;
PULONG64 ReqsValid;
} IMAGEHLP_GET_TYPE_INFO_PARAMS, *PIMAGEHLP_GET_TYPE_INFO_PARAMS;
#define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1 #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
#define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER #define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
#define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
@ -391,41 +572,171 @@ typedef struct _SYMBOL_INFO {
CHAR Name[1]; CHAR Name[1];
} SYMBOL_INFO, *PSYMBOL_INFO; } SYMBOL_INFO, *PSYMBOL_INFO;
typedef struct _SYMBOL_INFOW
{
ULONG SizeOfStruct;
ULONG TypeIndex;
ULONG64 Reserved[2];
ULONG Index;
ULONG Size;
ULONG64 ModBase;
ULONG Flags;
ULONG64 Value;
ULONG64 Address;
ULONG Register;
ULONG Scope;
ULONG Tag;
ULONG NameLen;
ULONG MaxNameLen;
WCHAR Name[1];
} SYMBOL_INFOW, *PSYMBOL_INFOW;
#define DBHHEADER_DEBUGDIRS 0x1
typedef struct _MODLOAD_DATA
{
DWORD ssize;
DWORD ssig;
PVOID data;
DWORD size;
DWORD flags;
} MODLOAD_DATA, *PMODLOAD_DATA;
typedef struct _SRCCODEINFO
{
DWORD SizeOfStruct;
PVOID Key;
DWORD64 ModBase;
CHAR Obj[MAX_PATH+1];
CHAR FileName[MAX_PATH+1];
DWORD LineNumber;
DWORD64 Address;
} SRCCODEINFO, *PSRCCODEINFO;
typedef struct _SRCCODEINFOW
{
DWORD SizeOfStruct;
PVOID Key;
DWORD64 ModBase;
WCHAR Obj[MAX_PATH+1];
WCHAR FileName[MAX_PATH+1];
DWORD LineNumber;
DWORD64 Address;
} SRCCODEINFOW, *PSRCCODEINFOW;
/*********************************************************************** /***********************************************************************
* Callbacks * Callbacks
*/ */
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(
PCSTR, PVOID
);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(
PCWSTR, PVOID
);
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
PCSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
PVOID UserContext
);
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(
PCSTR, DWORD64, ULONG, PVOID
);
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(
PCWSTR, DWORD64, ULONG, PVOID
);
typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(
HANDLE, PCSTR, PVOID
);
typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACKW)(
HANDLE, PCWSTR, PVOID
);
typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(
HANDLE, PCSTR, PVOID
);
typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACKW)(
HANDLE, PCWSTR, PVOID
);
typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(
PCSTR, PVOID
);
typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACKW)(
PCWSTR, PVOID
);
typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)( typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
IMAGEHLP_STATUS_REASON Reason, LPSTR ImageName, LPSTR DllName, IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
ULONG Va, ULONG Parameter ULONG_PTR Va, ULONG_PTR Parameter
);
typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE32)(
IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
ULONG Va, ULONG_PTR Parameter
);
typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE64)(
IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
ULONG64 Va, ULONG_PTR Parameter
); );
typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)( typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
PSYMBOL_INFO pSymInfo, DWORD SymbolSize, PVOID UserContext PSYMBOL_INFO pSymInfo, DWORD SymbolSize, PVOID UserContext
); );
typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(
PSYMBOL_INFOW pSymInfo, DWORD SymbolSize, PVOID UserContext
);
typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACK)(
PSRCCODEINFO, PVOID
);
typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACKW)(
PSRCCODEINFOW, PVOID
);
typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)( typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(
PSOURCEFILE pSourceFile, PVOID UserContext PSOURCEFILE pSourceFile, PVOID UserContext
); );
typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(
PSOURCEFILEW pSourceFile, PVOID UserContext
);
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)( typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
LPSTR ModuleName, ULONG BaseOfDll, PVOID UserContext PCSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
);
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(
PCSTR, DWORD64, PVOID
);
typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(
PCWSTR, DWORD64, PVOID
); );
typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)( typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
LPSTR SymbolName, ULONG SymbolAddress, ULONG SymbolSize, PCSTR, DWORD, ULONG, PVOID
PVOID UserContext );
typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(
PCWSTR, DWORD, ULONG, PVOID
);
typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(
PCSTR, DWORD64, ULONG, PVOID
);
typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(
PCWSTR, DWORD64, ULONG, PVOID
); );
typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)( typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
LPSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize, HANDLE, DWORD, PVOID
PVOID UserContext );
typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(
HANDLE, ULONG64, ULONG64
); );
typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)( typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
HANDLE hProcess, ULONG ActionCode, PVOID CallbackData, HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
PVOID UserContext PVOID UserContext
); );
typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK64)(
HANDLE, ULONG, ULONG64, ULONG64
);
typedef BOOL (CALLBACK *DIGEST_FUNCTION)( typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
@ -463,31 +774,60 @@ typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(
HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr
); );
/*********************************************************************** /***********************************************************************
* Functions * Functions
*/ */
BOOL WINAPI BindImage( BOOL WINAPI BindImage(
LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath
); );
BOOL WINAPI BindImageEx( BOOL WINAPI BindImageEx(
DWORD Flags, LPSTR ImageName, LPSTR DllPath, LPSTR SymbolPath, DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath,
PIMAGEHLP_STATUS_ROUTINE StatusRoutine PIMAGEHLP_STATUS_ROUTINE StatusRoutine
); );
PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile( PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
LPVOID BaseAddress, DWORD FileLength, LPVOID BaseAddress, DWORD FileLength,
LPDWORD HeaderSum, LPDWORD CheckSum LPDWORD HeaderSum, LPDWORD CheckSum
); );
BOOL WINAPI EnumDirTree(
HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID
);
BOOL WINAPI EnumDirTreeW(
HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID
);
BOOL WINAPI EnumerateLoadedModules( BOOL WINAPI EnumerateLoadedModules(
HANDLE hProcess, HANDLE hProcess,
PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback, PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
PVOID UserContext PVOID UserContext
); );
BOOL WINAPI EnumerateLoadedModules64(
HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID
);
BOOL WINAPI EnumerateLoadedModulesW64(
HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID
);
HANDLE WINAPI FindDebugInfoFile( HANDLE WINAPI FindDebugInfoFile(
LPSTR FileName, LPSTR SymbolPath, LPSTR DebugFilePath PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath
);
HANDLE WINAPI FindDebugInfoFileEx(
PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID
);
HANDLE WINAPI FindDebugInfoFileExW(
PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID
); );
HANDLE WINAPI FindExecutableImage( HANDLE WINAPI FindExecutableImage(
LPSTR FileName, LPSTR SymbolPath, LPSTR ImageFilePath PCSTR, PCSTR, PSTR
);
HANDLE WINAPI FindExecutableImageEx(
PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
);
HANDLE WINAPI FindExecutableImageExW(
PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
);
BOOL WINAPI FindFileInPath(
HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
PSTR, PFINDFILEINPATHCALLBACK, PVOID
); );
BOOL WINAPI GetImageConfigInformation( BOOL WINAPI GetImageConfigInformation(
PLOADED_IMAGE LoadedImage, PLOADED_IMAGE LoadedImage,
@ -523,7 +863,7 @@ BOOL WINAPI ImageGetDigestStream(
DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
); );
PLOADED_IMAGE WINAPI ImageLoad( PLOADED_IMAGE WINAPI ImageLoad(
LPSTR DllName, LPSTR DllPath PCSTR DllName, PCSTR DllPath
); );
PIMAGE_NT_HEADERS WINAPI ImageNtHeader( PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
PVOID Base PVOID Base
@ -548,44 +888,50 @@ LPAPI_VERSION WINAPI ImagehlpApiVersionEx(
LPAPI_VERSION AppVersion LPAPI_VERSION AppVersion
); );
BOOL WINAPI MakeSureDirectoryPathExists( BOOL WINAPI MakeSureDirectoryPathExists(
LPCSTR DirPath PCSTR DirPath
); );
BOOL WINAPI MapAndLoad( BOOL WINAPI MapAndLoad(
LPSTR ImageName, LPSTR DllPath, PLOADED_IMAGE LoadedImage, PCSTR ImageName, PCSTR DllPath, PLOADED_IMAGE LoadedImage,
BOOL DotDll, BOOL ReadOnly BOOL DotDll, BOOL ReadOnly
); );
PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation( PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
HANDLE FileHandle, LPSTR FileName, HANDLE FileHandle, PCSTR FileName,
LPSTR SymbolPath, DWORD ImageBase PCSTR SymbolPath, ULONG ImageBase
); );
DWORD WINAPI MapFileAndCheckSumA( DWORD WINAPI MapFileAndCheckSumA(
LPSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
); );
DWORD WINAPI MapFileAndCheckSumW( DWORD WINAPI MapFileAndCheckSumW(
LPWSTR Filename, LPDWORD HeaderSum, LPDWORD CheckSum PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
); );
BOOL WINAPI ReBaseImage( BOOL WINAPI ReBaseImage(
LPSTR CurrentImageName, LPSTR SymbolPath, BOOL fReBase, PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
ULONG *OldImageSize, ULONG *OldImageBase, ULONG *NewImageSize, ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize,
ULONG *NewImageBase, ULONG TimeStamp ULONG_PTR *NewImageBase, ULONG TimeStamp
);
BOOL WINAPI ReBaseImage64(
PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
ULONG *OldImageSize, ULONG64 *OldImageBase, ULONG *NewImageSize,
ULONG64 *NewImageBase, ULONG TimeStamp
); );
BOOL WINAPI RemovePrivateCvSymbolic( BOOL WINAPI RemovePrivateCvSymbolic(
PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
); );
VOID WINAPI RemoveRelocations(
PCHAR ImageName
);
BOOL WINAPI SearchTreeForFile( BOOL WINAPI SearchTreeForFile(
LPSTR RootPath, LPSTR InputPathName, LPSTR OutputPathBuffer PCSTR RootPath, PCSTR InputPathName, PSTR OutputPathBuffer
);
BOOL WINAPI SearchTreeForFileW(
PCWSTR RootPath, PCWSTR InputPathName, PWSTR OutputPathBuffer
); );
BOOL WINAPI SetImageConfigInformation( BOOL WINAPI SetImageConfigInformation(
PLOADED_IMAGE LoadedImage, PLOADED_IMAGE LoadedImage,
PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
); );
BOOL WINAPI SplitSymbols( BOOL WINAPI SplitSymbols(
LPSTR ImageName, LPSTR SymbolsPath, PSTR ImageName, PCSTR SymbolsPath,
LPSTR SymbolFilePath, DWORD Flags PSTR SymbolFilePath, ULONG Flags
); );
BOOL WINAPI StackWalk( BOOL WINAPI StackWalk(
DWORD MachineType, HANDLE hProcess, HANDLE hThread, DWORD MachineType, HANDLE hProcess, HANDLE hThread,
@ -603,28 +949,183 @@ BOOL WINAPI StackWalk64(
PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
); );
BOOL WINAPI SymAddSymbol(
HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD
);
BOOL WINAPI SymAddSymbolW(
HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD
);
BOOL WINAPI SymCleanup( BOOL WINAPI SymCleanup(
HANDLE hProcess HANDLE hProcess
); );
BOOL WINAPI SymDeleteSymbol(
HANDLE, ULONG64, PCSTR, DWORD64, DWORD
);
BOOL WINAPI SymDeleteSymbolW(
HANDLE, ULONG64, PCWSTR, DWORD64, DWORD
);
BOOL WINAPI SymEnumerateModules( BOOL WINAPI SymEnumerateModules(
HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback, HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
PVOID UserContext PVOID UserContext
); );
BOOL WINAPI SymEnumerateModules64(
HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID
);
BOOL WINAPI SymEnumerateModulesW64(
HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID
);
BOOL WINAPI SymEnumerateSymbols( BOOL WINAPI SymEnumerateSymbols(
HANDLE hProcess, DWORD BaseOfDll, HANDLE hProcess, DWORD BaseOfDll,
PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
); );
BOOL WINAPI SymEnumerateSymbolsW(
HANDLE hProcess, DWORD BaseOfDll,
PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
);
BOOL WINAPI SymEnumerateSymbols64(
HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID
);
BOOL WINAPI SymEnumerateSymbolsW64(
HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID
);
BOOL WINAPI SymEnumLines(
HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID
);
BOOL WINAPI SymEnumLinesW(
HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID
);
BOOL WINAPI SymEnumSourceFiles( BOOL WINAPI SymEnumSourceFiles(
HANDLE hProcess, DWORD ModBase, LPSTR Mask, HANDLE hProcess, ULONG64 ModBase, PCSTR Mask,
PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext
); );
BOOL WINAPI SymEnumSourceFilesW(
HANDLE hProcess, ULONG64 ModBase, PCWSTR Mask,
PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles, PVOID UserContext
);
BOOL WINAPI SymEnumSourceLines(
HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID
);
BOOL WINAPI SymEnumSourceLinesW(
HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID
);
BOOL WINAPI SymEnumSymbols( BOOL WINAPI SymEnumSymbols(
HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask, HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask,
PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
); );
BOOL WINAPI SymEnumSymbolsW(
HANDLE hProcess, DWORD BaseOfDll, PCWSTR Mask,
PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
);
BOOL WINAPI SymEnumSymbolsForAddr(
HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
);
BOOL WINAPI SymEnumSymbolsForAddrW(
HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
);
BOOL WINAPI SymEnumTypes(
HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
);
BOOL WINAPI SymEnumTypesW(
HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
);
HANDLE WINAPI SymFindExecutableImage(
HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
);
HANDLE WINAPI SymFindExecutableImageW(
HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
);
BOOL WINAPI SymFindFileInPath(
HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
PSTR, PFINDFILEINPATHCALLBACK, PVOID
);
BOOL WINAPI SymFindFileInPathW(
HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD,
PWSTR, PFINDFILEINPATHCALLBACKW, PVOID
);
BOOL WINAPI SymFromAddr(
HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*
);
BOOL WINAPI SymFromAddrW(
HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*
);
BOOL WINAPI SymFromIndex(
HANDLE, ULONG64, DWORD, PSYMBOL_INFO
);
BOOL WINAPI SymFromIndexW(
HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
);
BOOL WINAPI SymFromName(
HANDLE, PCSTR, PSYMBOL_INFO
);
BOOL WINAPI SymFromNameW(
HANDLE, PCWSTR, PSYMBOL_INFOW
);
BOOL WINAPI SymFromToken(
HANDLE, DWORD64, DWORD, PSYMBOL_INFO
);
BOOL WINAPI SymFromTokenW(
HANDLE, DWORD64, DWORD, PSYMBOL_INFOW
);
PVOID WINAPI SymFunctionTableAccess( PVOID WINAPI SymFunctionTableAccess(
HANDLE hProcess, DWORD AddrBase HANDLE hProcess, DWORD AddrBase
); );
PVOID WINAPI SymFunctionTableAccess64(
HANDLE hProcess, DWORD64 AddrBase
);
ULONG WINAPI SymGetFileLineOffsets64(
HANDLE, PCSTR, PCSTR, PDWORD64, ULONG
);
PCHAR WINAPI SymGetHomeDirectory(
DWORD, PSTR, size_t
);
PWSTR WINAPI SymGetHomeDirectoryW(
DWORD, PWSTR, size_t
);
BOOL WINAPI SymGetLineFromAddr(
HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE
);
BOOL WINAPI SymGetLineFromAddrW(
HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW
);
BOOL WINAPI SymGetLineFromAddr64(
HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64
);
BOOL WINAPI SymGetLineFromAddrW64(
HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64
);
BOOL WINAPI SymGetLineFromName(
HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE
);
BOOL WINAPI SymGetLineFromName64(
HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64
);
BOOL WINAPI SymGetLineFromNameW64(
HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64
);
BOOL WINAPI SymGetLineNext(
HANDLE, PIMAGEHLP_LINE
);
BOOL WINAPI SymGetLineNextW(
HANDLE, PIMAGEHLP_LINEW
);
BOOL WINAPI SymGetLineNext64(
HANDLE, PIMAGEHLP_LINE64
);
BOOL WINAPI SymGetLineNextW64(
HANDLE, PIMAGEHLP_LINEW64
);
BOOL WINAPI SymGetLinePrev(
HANDLE, PIMAGEHLP_LINE
);
BOOL WINAPI SymGetLinePrevW(
HANDLE, PIMAGEHLP_LINEW
);
BOOL WINAPI SymGetLinePrev64(
HANDLE, PIMAGEHLP_LINE64
);
BOOL WINAPI SymGetLinePrevW64(
HANDLE, PIMAGEHLP_LINEW64
);
DWORD WINAPI SymGetModuleBase( DWORD WINAPI SymGetModuleBase(
HANDLE hProcess, DWORD dwAddr HANDLE hProcess, DWORD dwAddr
); );
@ -632,48 +1133,173 @@ BOOL WINAPI SymGetModuleInfo(
HANDLE hProcess, DWORD dwAddr, HANDLE hProcess, DWORD dwAddr,
PIMAGEHLP_MODULE ModuleInfo PIMAGEHLP_MODULE ModuleInfo
); );
BOOL WINAPI SymGetModuleInfoW(
HANDLE, DWORD, PIMAGEHLP_MODULEW
);
BOOL WINAPI SymGetModuleInfo64(
HANDLE, DWORD64, PIMAGEHLP_MODULE64
);
BOOL WINAPI SymGetModuleInfoW64(
HANDLE, DWORD64, PIMAGEHLP_MODULEW64
);
DWORD WINAPI SymGetOptions( DWORD WINAPI SymGetOptions(
void void
); );
BOOL WINAPI SymGetScope(
HANDLE, ULONG64, DWORD, PSYMBOL_INFO
);
BOOL WINAPI SymGetScopeW(
HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
);
BOOL WINAPI SymGetSearchPath( BOOL WINAPI SymGetSearchPath(
HANDLE hProcess, LPSTR szSearchPath, DWORD SearchPathLength HANDLE hProcess, PSTR szSearchPath, DWORD SearchPathLength
);
BOOL WINAPI SymGetSearchPathW(
HANDLE hProcess, PWSTR szSearchPath, DWORD SearchPathLength
);
BOOL WINAPI SymGetSourceFile(
HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD
);
BOOL WINAPI SymGetSourceFileW(
HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD
);
BOOL WINAPI SymGetSourceFileFromToken(
HANDLE, PVOID, PCSTR, PSTR, DWORD
);
BOOL WINAPI SymGetSourceFileFromTokenW(
HANDLE, PVOID, PCWSTR, PWSTR, DWORD
);
BOOL WINAPI SymGetSourceFileToken(
HANDLE, ULONG64, PCSTR, PVOID*, DWORD*
);
BOOL WINAPI SymGetSourceFileTokenW(
HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*
);
BOOL WINAPI SymGetSourceVarFromToken(
HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD
);
BOOL WINAPI SymGetSourceVarFromTokenW(
HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD
); );
BOOL WINAPI SymGetSymFromAddr( BOOL WINAPI SymGetSymFromAddr(
HANDLE hProcess, DWORD dwAddr, HANDLE hProcess, DWORD dwAddr,
PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
); );
BOOL WINAPI SymGetSymFromAddr64(
HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64
);
BOOL WINAPI SymGetSymFromName( BOOL WINAPI SymGetSymFromName(
HANDLE hProcess, LPSTR Name, PIMAGEHLP_SYMBOL Symbol HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL Symbol
);
BOOL WINAPI SymGetSymFromName64(
HANDLE, PCSTR, PIMAGEHLP_SYMBOL64
); );
BOOL WINAPI SymGetSymNext( BOOL WINAPI SymGetSymNext(
HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
); );
BOOL WINAPI SymGetSymNext64(
HANDLE, PIMAGEHLP_SYMBOL64
);
BOOL WINAPI SymGetSymPrev( BOOL WINAPI SymGetSymPrev(
HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
); );
BOOL WINAPI SymGetSymPrev64(
HANDLE, PIMAGEHLP_SYMBOL64
);
BOOL WINAPI SymGetTypeFromName(
HANDLE, ULONG64, PCSTR, PSYMBOL_INFO
);
BOOL WINAPI SymGetTypeFromNameW(
HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW
);
BOOL WINAPI SymGetTypeInfo(
HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID
);
BOOL WINAPI SymGetTypeInfoEx(
HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS
);
BOOL WINAPI SymInitialize( BOOL WINAPI SymInitialize(
HANDLE hProcess, LPSTR UserSearchPath, BOOL fInvadeProcess HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess
);
BOOL WINAPI SymInitializeW(
HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess
); );
DWORD WINAPI SymLoadModule( DWORD WINAPI SymLoadModule(
HANDLE hProcess, HANDLE hFile, LPSTR ImageName, LPSTR ModuleName, HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName,
DWORD BaseOfDll, DWORD SizeOfDll DWORD BaseOfDll, DWORD SizeOfDll
); );
DWORD64 WINAPI SymLoadModule64(
HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD
);
DWORD64 WINAPI SymLoadModuleEx(
HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
);
DWORD64 WINAPI SymLoadModuleExW(
HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
);
BOOL WINAPI SymMatchFileName(
PCSTR, PCSTR, PSTR*, PSTR*
);
BOOL WINAPI SymMatchFileNameW(
PCWSTR, PCWSTR, PWSTR*, PWSTR*
);
BOOL WINAPI SymMatchString(
PCSTR, PCSTR, BOOL
);
BOOL WINAPI SymMatchStringA(
PCSTR, PCSTR, BOOL
);
BOOL WINAPI SymMatchStringW(
PCWSTR, PCWSTR, BOOL
);
BOOL WINAPI SymRegisterCallback( BOOL WINAPI SymRegisterCallback(
HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction, HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
PVOID UserContext PVOID UserContext
); );
BOOL WINAPI SymRegisterCallback64(
HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
);
BOOL WINAPI SymRegisterCallbackW64(
HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
);
BOOL WINAPI SymRegisterFunctionEntryCallback(
HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID
);
BOOL WINAPI SymRegisterFunctionEntryCallback64(
HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64
);
BOOL WINAPI SymSearch(
HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64,
PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD
);
BOOL WINAPI SymSearchW(
HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64,
PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD
);
DWORD WINAPI SymSetContext( DWORD WINAPI SymSetContext(
HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
PIMAGEHLP_CONTEXT Context PIMAGEHLP_CONTEXT Context
); );
PCHAR WINAPI SymSetHomeDirectory(
HANDLE, PCSTR
);
PWSTR WINAPI SymSetHomeDirectoryW(
HANDLE, PCWSTR
);
DWORD WINAPI SymSetOptions( DWORD WINAPI SymSetOptions(
DWORD SymOptions DWORD SymOptions
); );
BOOL WINAPI SymSetParentWindow(
HWND
);
BOOL WINAPI SymSetSearchPath( BOOL WINAPI SymSetSearchPath(
HANDLE hProcess, LPSTR szSearchPath HANDLE hProcess, PCSTR szSearchPath
); );
BOOL WINAPI SymUnDName( BOOL WINAPI SymUnDName(
PIMAGEHLP_SYMBOL sym, LPSTR UnDecName, DWORD UnDecNameLength PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength
);
BOOL WINAPI SymUnDName64(
PIMAGEHLP_SYMBOL64, PSTR, DWORD
); );
BOOL WINAPI SymUnloadModule( BOOL WINAPI SymUnloadModule(
HANDLE hProcess, DWORD BaseOfDll HANDLE hProcess, DWORD BaseOfDll
@ -682,7 +1308,11 @@ BOOL WINAPI TouchFileTimes(
HANDLE FileHandle, LPSYSTEMTIME lpSystemTime HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
); );
DWORD WINAPI UnDecorateSymbolName( DWORD WINAPI UnDecorateSymbolName(
LPCSTR DecoratedName, LPSTR UnDecoratedName, PCSTR DecoratedName, PSTR UnDecoratedName,
DWORD UndecoratedLength, DWORD Flags
);
DWORD WINAPI UnDecorateSymbolNameW(
PCWSTR DecoratedName, PWSTR UnDecoratedName,
DWORD UndecoratedLength, DWORD Flags DWORD UndecoratedLength, DWORD Flags
); );
BOOL WINAPI UnMapAndLoad( BOOL WINAPI UnMapAndLoad(
@ -692,12 +1322,12 @@ BOOL WINAPI UnmapDebugInformation(
PIMAGE_DEBUG_INFORMATION DebugInfo PIMAGE_DEBUG_INFORMATION DebugInfo
); );
BOOL WINAPI UpdateDebugInfoFile( BOOL WINAPI UpdateDebugInfoFile(
LPSTR ImageFileName, LPSTR SymbolPath, PCSTR ImageFileName, PCSTR SymbolPath,
LPSTR DebugFilePath, PIMAGE_NT_HEADERS NtHeaders PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders
); );
BOOL WINAPI UpdateDebugInfoFileEx( BOOL WINAPI UpdateDebugInfoFileEx(
LPSTR ImageFileName, LPSTR SymbolPath, LPSTR DebugFilePath, PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath,
PIMAGE_NT_HEADERS NtHeaders, DWORD OldChecksum PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum
); );
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -1627,24 +1627,27 @@ PCHAR *
PDWORD PDWORD
PIMAGE_LOAD_CONFIG_DIRECTORY PIMAGE_LOAD_CONFIG_DIRECTORY
PIMAGE_NT_HEADERS PIMAGE_NT_HEADERS
PIMAGE_NT_HEADERS32
PIMAGEHLP_STATUS_ROUTINE PIMAGEHLP_STATUS_ROUTINE
PLOADED_IMAGE PLOADED_IMAGE
PWIN_CERTIFICATE PWIN_CERTIFICATE
ULONG * ULONG *
ULONG_PTR *
%str %str
LPSTR PCSTR
PSTR
PCHAR PCHAR
%wstr
PCWSTR
%void %void
VOID VOID
%wstr
LPWSTR
%%imm32.dll %%imm32.dll
%long %long