Headers diff for dbghelp.dll between 6.0.6001.18000-Windows 6.0 and 6.1.7601.17514-Windows 7.0 versions



 dbghelp.h (6.0.6001.18000-Windows 6.0)   dbghelp.h (6.1.7601.17514-Windows 7.0) 
skipping to change at line 38 skipping to change at line 38
// of every API, if a choice exists. The 64 bit version // of every API, if a choice exists. The 64 bit version
// works great on 32 bit platforms, and is forward // works great on 32 bit platforms, and is forward
// compatible to 64 bit platforms. // compatible to 64 bit platforms.
#ifdef _WIN64 #ifdef _WIN64
#ifndef _IMAGEHLP64 #ifndef _IMAGEHLP64
#define _IMAGEHLP64 #define _IMAGEHLP64
#endif #endif
#endif #endif
// for those without specstrings.h #include <pshpack8.h>
#ifndef __specstrings // For those without specstrings.h
// Since there are different versions of this header, I need to
// individually test each item and define it if it is not around.
#ifndef __in
#define __in #define __in
#endif
#ifndef __out
#define __out #define __out
#endif
#ifndef __inout
#define __inout #define __inout
#endif
#ifndef __in_opt
#define __in_opt #define __in_opt
#endif
#ifndef __out_opt
#define __out_opt #define __out_opt
#endif
#ifndef __inout_opt
#define __inout_opt #define __inout_opt
#endif
#ifndef __in_ecount
#define __in_ecount(x) #define __in_ecount(x)
#endif
#ifndef __out_ecount
#define __out_ecount(x) #define __out_ecount(x)
#endif
#ifndef __inout_ecount
#define __inout_ecount(x) #define __inout_ecount(x)
#endif
#ifndef __in_bcount
#define __in_bcount(x) #define __in_bcount(x)
#endif
#ifndef __out_bcount
#define __out_bcount(x) #define __out_bcount(x)
#endif
#ifndef __inout_bcount
#define __inout_bcount(x) #define __inout_bcount(x)
#endif
#ifndef __out_xcount
#define __out_xcount(x) #define __out_xcount(x)
#endif
#ifndef __deref_opt_out
#define __deref_opt_out #define __deref_opt_out
#endif
#ifndef __deref_out
#define __deref_out #define __deref_out
#endif #endif
#ifndef __out_ecount_opt
#define __out_ecount_opt(x)
#endif
#ifndef __in_bcount_opt
#define __in_bcount_opt(x)
#endif
#ifndef __out_bcount_opt
#define __out_bcount_opt(x)
#endif
#ifndef __deref_out_opt
#define __deref_out_opt
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef _IMAGEHLP_SOURCE_ #ifdef _IMAGEHLP_SOURCE_
#define IMAGEAPI __stdcall #define IMAGEAPI __stdcall
#define DBHLP_DEPRECIATED #define DBHLP_DEPRECIATED
#else #else
#define IMAGEAPI DECLSPEC_IMPORT __stdcall #define IMAGEAPI DECLSPEC_IMPORT __stdcall
skipping to change at line 182 skipping to change at line 226
FindDebugInfoFileExW ( FindDebugInfoFileExW (
__in PCWSTR FileName, __in PCWSTR FileName,
__in PCWSTR SymbolPath, __in PCWSTR SymbolPath,
__out_ecount(MAX_PATH + 1) PWSTR DebugFilePath, __out_ecount(MAX_PATH + 1) PWSTR DebugFilePath,
__in_opt PFIND_DEBUG_FILE_CALLBACKW Callback, __in_opt PFIND_DEBUG_FILE_CALLBACKW Callback,
__in_opt PVOID CallerData __in_opt PVOID CallerData
); );
typedef BOOL typedef BOOL
(CALLBACK *PFINDFILEINPATHCALLBACK)( (CALLBACK *PFINDFILEINPATHCALLBACK)(
PCSTR filename, __in PCSTR filename,
PVOID context __in PVOID context
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymFindFileInPath( SymFindFileInPath(
__in HANDLE hprocess, __in HANDLE hprocess,
__in_opt PCSTR SearchPath, __in_opt PCSTR SearchPath,
__in PCSTR FileName, __in PCSTR FileName,
__in_opt PVOID id, __in_opt PVOID id,
__in DWORD two, __in DWORD two,
skipping to change at line 417 skipping to change at line 461
typedef BOOL typedef BOOL
(CALLBACK *PENUMDIRTREE_CALLBACK)( (CALLBACK *PENUMDIRTREE_CALLBACK)(
__in PCSTR FilePath, __in PCSTR FilePath,
__in_opt PVOID CallerData __in_opt PVOID CallerData
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
EnumDirTree( EnumDirTree(
__in HANDLE hProcess, __in_opt HANDLE hProcess,
__in PCSTR RootPath, __in PCSTR RootPath,
__in PCSTR InputPathName, __in PCSTR InputPathName,
__out_ecount_opt(MAX_PATH + 1) PSTR OutputPathBuffer, __out_ecount_opt(MAX_PATH + 1) PSTR OutputPathBuffer,
__in_opt PENUMDIRTREE_CALLBACK cb, __in_opt PENUMDIRTREE_CALLBACK cb,
__in_opt PVOID data __in_opt PVOID data
); );
typedef BOOL typedef BOOL
(CALLBACK *PENUMDIRTREE_CALLBACKW)( (CALLBACK *PENUMDIRTREE_CALLBACKW)(
__in PCWSTR FilePath, __in PCWSTR FilePath,
__in_opt PVOID CallerData __in_opt PVOID CallerData
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
EnumDirTreeW( EnumDirTreeW(
__in HANDLE hProcess, __in_opt HANDLE hProcess,
__in PCWSTR RootPath, __in PCWSTR RootPath,
__in PCWSTR InputPathName, __in PCWSTR InputPathName,
__out_ecount_opt(MAX_PATH + 1) PWSTR OutputPathBuffer, __out_ecount_opt(MAX_PATH + 1) PWSTR OutputPathBuffer,
__in_opt PENUMDIRTREE_CALLBACKW cb, __in_opt PENUMDIRTREE_CALLBACKW cb,
__in_opt PVOID data __in_opt PVOID data
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
MakeSureDirectoryPathExists( MakeSureDirectoryPathExists(
skipping to change at line 498 skipping to change at line 542
__in DWORD flags __in DWORD flags
); );
// //
// these values are used for synthesized file types // these values are used for synthesized file types
// that can be passed in as image headers instead of // that can be passed in as image headers instead of
// the standard ones from ntimage.h // the standard ones from ntimage.h
// //
#define DBHHEADER_DEBUGDIRS 0x1 #define DBHHEADER_DEBUGDIRS 0x1
#define DBHHEADER_CVMISC 0x2
#define DBHHEADER_PDBGUID 0x3
typedef struct _MODLOAD_DATA { typedef struct _MODLOAD_DATA {
DWORD ssize; // size of this struct DWORD ssize; // size of this struct
DWORD ssig; // signature identifying the passed data DWORD ssig; // signature identifying the passed data
PVOID data; // pointer to passed data PVOID data; // pointer to passed data
DWORD size; // size of passed data DWORD size; // size of passed data
DWORD flags; // options DWORD flags; // options
} MODLOAD_DATA, *PMODLOAD_DATA; } MODLOAD_DATA, *PMODLOAD_DATA;
typedef struct _MODLOAD_CVMISC {
DWORD oCV; // ofset to the codeview record
size_t cCV; // size of the codeview record
DWORD oMisc; // offset to the misc record
size_t cMisc; // size of the misc record
DWORD dtImage; // datetime stamp of the image
DWORD cImage; // size of the image
} MODLOAD_CVMISC, *PMODLOAD_CVMISC;
typedef struct _MODLOAD_PDBGUID_PDBAGE {
GUID PdbGuid; // Pdb Guid
DWORD PdbAge; // Pdb Age
} MODLOAD_PDBGUID_PDBAGE, *PMODLOAD_PDBGUID_PDBAGE;
// //
// StackWalking API // StackWalking API
// //
typedef enum { typedef enum {
AddrMode1616, AddrMode1616,
AddrMode1632, AddrMode1632,
AddrModeReal, AddrModeReal,
AddrModeFlat AddrModeFlat
} ADDRESS_MODE; } ADDRESS_MODE;
skipping to change at line 1335 skipping to change at line 1394
#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
#define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
#define CBA_SYMBOLS_UNLOADED 0x00000004 #define CBA_SYMBOLS_UNLOADED 0x00000004
#define CBA_DUPLICATE_SYMBOL 0x00000005 #define CBA_DUPLICATE_SYMBOL 0x00000005
#define CBA_READ_MEMORY 0x00000006 #define CBA_READ_MEMORY 0x00000006
#define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007 #define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007
#define CBA_SET_OPTIONS 0x00000008 #define CBA_SET_OPTIONS 0x00000008
#define CBA_EVENT 0x00000010 #define CBA_EVENT 0x00000010
#define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL 0x00000020 #define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL 0x00000020
#define CBA_DEBUG_INFO 0x10000000 #define CBA_DEBUG_INFO 0x10000000
#define CBA_SRCSRV_INFO 0x20000000
#define CBA_SRCSRV_EVENT 0x40000000
typedef struct _IMAGEHLP_CBA_READ_MEMORY { typedef struct _IMAGEHLP_CBA_READ_MEMORY {
DWORD64 addr; // address to read from DWORD64 addr; // address to read from
PVOID buf; // buffer to read to PVOID buf; // buffer to read to
DWORD bytes; // amount of bytes to re ad DWORD bytes; // amount of bytes to re ad
DWORD *bytesread; // pointer to store amou nt of bytes read DWORD *bytesread; // pointer to store amou nt of bytes read
} IMAGEHLP_CBA_READ_MEMORY, *PIMAGEHLP_CBA_READ_MEMORY; } IMAGEHLP_CBA_READ_MEMORY, *PIMAGEHLP_CBA_READ_MEMORY;
enum { enum {
sevInfo = 0, sevInfo = 0,
skipping to change at line 1473 skipping to change at line 1534
__in size_t size __in size_t size
); );
typedef enum { typedef enum {
hdBase = 0, // root directory for dbghelp hdBase = 0, // root directory for dbghelp
hdSym, // where symbols are stored hdSym, // where symbols are stored
hdSrc, // where source is stored hdSrc, // where source is stored
hdMax // end marker hdMax // end marker
}; };
typedef struct _OMAP {
ULONG rva;
ULONG rvaTo;
} OMAP, *POMAP;
BOOL
IMAGEAPI
SymGetOmaps(
__in HANDLE hProcess,
__in DWORD64 BaseOfDll,
__out POMAP *OmapTo,
__out PDWORD64 cOmapTo,
__out POMAP *OmapFrom,
__out PDWORD64 cOmapFrom
);
// //
// options that are set/returned by SymSetOptions() & SymGetOptions() // options that are set/returned by SymSetOptions() & SymGetOptions()
// these are used as a mask // these are used as a mask
// //
#define SYMOPT_CASE_INSENSITIVE 0x00000001 #define SYMOPT_CASE_INSENSITIVE 0x00000001
#define SYMOPT_UNDNAME 0x00000002 #define SYMOPT_UNDNAME 0x00000002
#define SYMOPT_DEFERRED_LOADS 0x00000004 #define SYMOPT_DEFERRED_LOADS 0x00000004
#define SYMOPT_NO_CPP 0x00000008 #define SYMOPT_NO_CPP 0x00000008
#define SYMOPT_LOAD_LINES 0x00000010 #define SYMOPT_LOAD_LINES 0x00000010
#define SYMOPT_OMAP_FIND_NEAREST 0x00000020 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
#define SYMOPT_LOAD_ANYTHING 0x00000040 #define SYMOPT_LOAD_ANYTHING 0x00000040
#define SYMOPT_IGNORE_CVREC 0x00000080 #define SYMOPT_IGNORE_CVREC 0x00000080
#define SYMOPT_NO_UNQUALIFIED_LOADS 0x00000100 #define SYMOPT_NO_UNQUALIFIED_LOADS 0x00000100
#define SYMOPT_FAIL_CRITICAL_ERRORS 0x00000200 #define SYMOPT_FAIL_CRITICAL_ERRORS 0x00000200
#define SYMOPT_EXACT_SYMBOLS 0x00000400 #define SYMOPT_EXACT_SYMBOLS 0x00000400
#define SYMOPT_ALLOW_ABSOLUTE_SYMBOLS 0x00000800 #define SYMOPT_ALLOW_ABSOLUTE_SYMBOLS 0x00000800
#define SYMOPT_IGNORE_NT_SYMPATH 0x00001000 #define SYMOPT_IGNORE_NT_SYMPATH 0x00001000
#define SYMOPT_INCLUDE_32BIT_MODULES 0x00002000 #define SYMOPT_INCLUDE_32BIT_MODULES 0x00002000
#define SYMOPT_PUBLICS_ONLY 0x00004000 #define SYMOPT_PUBLICS_ONLY 0x00004000
#define SYMOPT_NO_PUBLICS 0x00008000 #define SYMOPT_NO_PUBLICS 0x00008000
#define SYMOPT_AUTO_PUBLICS 0x00010000 #define SYMOPT_AUTO_PUBLICS 0x00010000
#define SYMOPT_NO_IMAGE_SEARCH 0x00020000 #define SYMOPT_NO_IMAGE_SEARCH 0x00020000
#define SYMOPT_SECURE 0x00040000 #define SYMOPT_SECURE 0x00040000
#define SYMOPT_NO_PROMPTS 0x00080000 #define SYMOPT_NO_PROMPTS 0x00080000
#define SYMOPT_OVERWRITE 0x00100000 #define SYMOPT_OVERWRITE 0x00100000
#define SYMOPT_IGNORE_IMAGEDIR 0x00200000 #define SYMOPT_IGNORE_IMAGEDIR 0x00200000
#define SYMOPT_FLAT_DIRECTORY 0x00400000 #define SYMOPT_FLAT_DIRECTORY 0x00400000
#define SYMOPT_FAVOR_COMPRESSED 0x00800000 #define SYMOPT_FAVOR_COMPRESSED 0x00800000
#define SYMOPT_ALLOW_ZERO_ADDRESS 0x01000000 #define SYMOPT_ALLOW_ZERO_ADDRESS 0x01000000
#define SYMOPT_DISABLE_SYMSRV_AUTODETECT 0x02000000
#define SYMOPT_DEBUG 0x80000000 #define SYMOPT_DEBUG 0x80000000
DWORD DWORD
IMAGEAPI IMAGEAPI
SymSetOptions( SymSetOptions(
__in DWORD SymOptions __in DWORD SymOptions
); );
DWORD DWORD
IMAGEAPI IMAGEAPI
SymGetOptions( SymGetOptions(
skipping to change at line 1612 skipping to change at line 1690
IMAGEAPI IMAGEAPI
SymEnumerateModules( SymEnumerateModules(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PSYM_ENUMMODULES_CALLBACK EnumModulesCallback, __in PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
#endif #endif
BOOL BOOL
IMAGEAPI IMAGEAPI
EnumerateLoadedModulesEx(
__in HANDLE hProcess,
__in PENUMLOADED_MODULES_CALLBACK64 EnumLoadedModulesCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
EnumerateLoadedModulesExW(
__in HANDLE hProcess,
__in PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
EnumerateLoadedModules64( EnumerateLoadedModules64(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PENUMLOADED_MODULES_CALLBACK64 EnumLoadedModulesCallback, __in PENUMLOADED_MODULES_CALLBACK64 EnumLoadedModulesCallback,
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
EnumerateLoadedModulesW64( EnumerateLoadedModulesW64(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback, __in PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback,
__in PVOID UserContext __in_opt PVOID UserContext
); );
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64) #if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define EnumerateLoadedModules EnumerateLoadedModules64 #define EnumerateLoadedModules EnumerateLoadedModules64
#else #else
BOOL BOOL
IMAGEAPI IMAGEAPI
EnumerateLoadedModules( EnumerateLoadedModules(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback, __in PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
skipping to change at line 1658 skipping to change at line 1752
PVOID PVOID
IMAGEAPI IMAGEAPI
SymFunctionTableAccess( SymFunctionTableAccess(
__in HANDLE hProcess, __in HANDLE hProcess,
__in DWORD AddrBase __in DWORD AddrBase
); );
#endif #endif
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetUnwindInfo(
__in HANDLE hProcess,
__in DWORD64 Address,
__out_bcount_opt(*Size) PVOID Buffer,
__inout PULONG Size
);
BOOL
IMAGEAPI
SymGetModuleInfo64( SymGetModuleInfo64(
__in HANDLE hProcess, __in HANDLE hProcess,
__in DWORD64 qwAddr, __in DWORD64 qwAddr,
__out PIMAGEHLP_MODULE64 ModuleInfo __out PIMAGEHLP_MODULE64 ModuleInfo
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetModuleInfoW64( SymGetModuleInfoW64(
__in HANDLE hProcess, __in HANDLE hProcess,
skipping to change at line 1776 skipping to change at line 1879
IMAGEAPI IMAGEAPI
SymGetLineFromAddr64( SymGetLineFromAddr64(
__in HANDLE hProcess, __in HANDLE hProcess,
__in DWORD64 qwAddr, __in DWORD64 qwAddr,
__out PDWORD pdwDisplacement, __out PDWORD pdwDisplacement,
__out PIMAGEHLP_LINE64 Line64 __out PIMAGEHLP_LINE64 Line64
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetLineFromAddrW64(
__in HANDLE hProcess,
__in DWORD64 dwAddr,
__out PDWORD pdwDisplacement,
__out PIMAGEHLP_LINEW64 Line
);
BOOL
IMAGEAPI
SymEnumSourceLines( SymEnumSourceLines(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 Base, __in ULONG64 Base,
__in_opt PCSTR Obj, __in_opt PCSTR Obj,
__in_opt PCSTR File, __in_opt PCSTR File,
__in_opt DWORD Line, __in_opt DWORD Line,
__in DWORD Flags, __in DWORD Flags,
__in PSYM_ENUMLINES_CALLBACK EnumLinesCallback, __in PSYM_ENUMLINES_CALLBACK EnumLinesCallback,
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
skipping to change at line 1807 skipping to change at line 1919
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
// flags for SymEnumSourceLines // flags for SymEnumSourceLines
#define ESLFLAG_FULLPATH 0x1 #define ESLFLAG_FULLPATH 0x1
#define ESLFLAG_NEAREST 0x2 #define ESLFLAG_NEAREST 0x2
#define ESLFLAG_PREV 0x4 #define ESLFLAG_PREV 0x4
#define ESLFLAG_NEXT 0x8 #define ESLFLAG_NEXT 0x8
BOOL
IMAGEAPI
SymGetLineFromAddrW64(
IN HANDLE hProcess,
IN DWORD64 qwAddr,
OUT PDWORD pdwDisplacement,
OUT PIMAGEHLP_LINEW64 Line64
);
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64) #if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetLineFromAddr SymGetLineFromAddr64 #define SymGetLineFromAddr SymGetLineFromAddr64
#define SymGetLineFromAddrW SymGetLineFromAddrW64 #define SymGetLineFromAddrW SymGetLineFromAddrW64
#else #else
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetLineFromAddr( SymGetLineFromAddr(
__in HANDLE hProcess, __in HANDLE hProcess,
__in DWORD dwAddr, __in DWORD dwAddr,
__out PDWORD pdwDisplacement, __out PDWORD pdwDisplacement,
skipping to change at line 1973 skipping to change at line 2076
__in PCWSTR Match, __in PCWSTR Match,
__deref_opt_out PWSTR *FileNameStop, __deref_opt_out PWSTR *FileNameStop,
__deref_opt_out PWSTR *MatchStop __deref_opt_out PWSTR *MatchStop
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceFile( SymGetSourceFile(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 Base, __in ULONG64 Base,
__in PCSTR Params, __in_opt PCSTR Params,
__in PCSTR FileSpec, __in PCSTR FileSpec,
__out_ecount(Size) PSTR FilePath, __out_ecount(Size) PSTR FilePath,
__in DWORD Size __in DWORD Size
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceFileW( SymGetSourceFileW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 Base, __in ULONG64 Base,
__in PCWSTR Params, __in_opt PCWSTR Params,
__in PCWSTR FileSpec, __in PCWSTR FileSpec,
__out_ecount(Size) PWSTR FilePath, __out_ecount(Size) PWSTR FilePath,
__in DWORD Size __in DWORD Size
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceFileToken( SymGetSourceFileToken(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 Base, __in ULONG64 Base,
skipping to change at line 2015 skipping to change at line 2118
__in PCWSTR FileSpec, __in PCWSTR FileSpec,
__deref_out PVOID *Token, __deref_out PVOID *Token,
__out DWORD *Size __out DWORD *Size
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceFileFromToken( SymGetSourceFileFromToken(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PVOID Token, __in PVOID Token,
__in PCSTR Params, __in_opt PCSTR Params,
__out_ecount(Size) PSTR FilePath, __out_ecount(Size) PSTR FilePath,
__in DWORD Size __in DWORD Size
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceFileFromTokenW( SymGetSourceFileFromTokenW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PVOID Token, __in PVOID Token,
__in PCWSTR Params, __in_opt PCWSTR Params,
__out_ecount(Size) PWSTR FilePath, __out_ecount(Size) PWSTR FilePath,
__in DWORD Size __in DWORD Size
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSourceVarFromToken( SymGetSourceVarFromToken(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PVOID Token, __in PVOID Token,
__in_opt PCSTR Params, __in_opt PCSTR Params,
skipping to change at line 2052 skipping to change at line 2155
IMAGEAPI IMAGEAPI
SymGetSourceVarFromTokenW( SymGetSourceVarFromTokenW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PVOID Token, __in PVOID Token,
__in_opt PCWSTR Params, __in_opt PCWSTR Params,
__in PCWSTR VarName, __in PCWSTR VarName,
__out_ecount(Size) PWSTR Value, __out_ecount(Size) PWSTR Value,
__in DWORD Size __in DWORD Size
); );
typedef BOOL (CALLBACK *PENUMSOURCEFILETOKENSCALLBACK)(__in PVOID token, __in s
ize_t size);
BOOL
IMAGEAPI
SymEnumSourceFileTokens(
__in HANDLE hProcess,
__in ULONG64 Base,
__in PENUMSOURCEFILETOKENSCALLBACK Callback
);
BOOL BOOL
IMAGEAPI IMAGEAPI
SymInitialize( SymInitialize(
__in HANDLE hProcess, __in HANDLE hProcess,
__in_opt PCSTR UserSearchPath, __in_opt PCSTR UserSearchPath,
__in BOOL fInvadeProcess __in BOOL fInvadeProcess
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
skipping to change at line 2293 skipping to change at line 2406
typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT; typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
BOOL BOOL
IMAGEAPI IMAGEAPI
SymSetContext( SymSetContext(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PIMAGEHLP_STACK_FRAME StackFrame, __in PIMAGEHLP_STACK_FRAME StackFrame,
__in_opt PIMAGEHLP_CONTEXT Context __in_opt PIMAGEHLP_CONTEXT Context
); );
BOOL
IMAGEAPI
SymSetScopeFromAddr(
__in HANDLE hProcess,
__in ULONG64 Address
);
BOOL
IMAGEAPI
SymSetScopeFromIndex(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in DWORD Index
);
typedef BOOL typedef BOOL
(CALLBACK *PSYM_ENUMPROCESSES_CALLBACK)( (CALLBACK *PSYM_ENUMPROCESSES_CALLBACK)(
__in HANDLE hProcess, __in HANDLE hProcess,
__in PVOID UserContext __in PVOID UserContext
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymEnumProcesses( SymEnumProcesses(
__in PSYM_ENUMPROCESSES_CALLBACK EnumProcessesCallback, __in PSYM_ENUMPROCESSES_CALLBACK EnumProcessesCallback,
skipping to change at line 2447 skipping to change at line 2575
SymEnumSymbolsForAddrW( SymEnumSymbolsForAddrW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in DWORD64 Address, __in DWORD64 Address,
__in PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, __in PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
#define SYMSEARCH_MASKOBJS 0x01 // used internally to implement other AP Is #define SYMSEARCH_MASKOBJS 0x01 // used internally to implement other AP Is
#define SYMSEARCH_RECURSE 0X02 // recurse scopes #define SYMSEARCH_RECURSE 0X02 // recurse scopes
#define SYMSEARCH_GLOBALSONLY 0X04 // search only for global symbols #define SYMSEARCH_GLOBALSONLY 0X04 // search only for global symbols
#define SYMSEARCH_ALLITEMS 0X08 // search for everything in the pdb, not just normal scoped symbols
BOOL BOOL
IMAGEAPI IMAGEAPI
SymSearch( SymSearch(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 BaseOfDll, __in ULONG64 BaseOfDll,
__in_opt DWORD Index, __in_opt DWORD Index,
__in_opt DWORD SymTag, __in_opt DWORD SymTag,
__in_opt PCSTR Mask, __in_opt PCSTR Mask,
__in_opt DWORD64 Address, __in_opt DWORD64 Address,
skipping to change at line 2545 skipping to change at line 2674
TI_GET_ADDRESS, TI_GET_ADDRESS,
TI_GET_THISADJUST, TI_GET_THISADJUST,
TI_GET_UDTKIND, TI_GET_UDTKIND,
TI_IS_EQUIV_TO, TI_IS_EQUIV_TO,
TI_GET_CALLING_CONVENTION, TI_GET_CALLING_CONVENTION,
TI_IS_CLOSE_EQUIV_TO, TI_IS_CLOSE_EQUIV_TO,
TI_GTIEX_REQS_VALID, TI_GTIEX_REQS_VALID,
TI_GET_VIRTUALBASEOFFSET, TI_GET_VIRTUALBASEOFFSET,
TI_GET_VIRTUALBASEDISPINDEX, TI_GET_VIRTUALBASEDISPINDEX,
TI_GET_IS_REFERENCE, TI_GET_IS_REFERENCE,
TI_GET_INDIRECTVIRTUALBASECLASS,
IMAGEHLP_SYMBOL_TYPE_INFO_MAX, IMAGEHLP_SYMBOL_TYPE_INFO_MAX,
} IMAGEHLP_SYMBOL_TYPE_INFO; } IMAGEHLP_SYMBOL_TYPE_INFO;
typedef struct _TI_FINDCHILDREN_PARAMS { typedef struct _TI_FINDCHILDREN_PARAMS {
ULONG Count; ULONG Count;
ULONG Start; ULONG Start;
ULONG ChildId[1]; ULONG ChildId[1];
} TI_FINDCHILDREN_PARAMS; } TI_FINDCHILDREN_PARAMS;
BOOL BOOL
skipping to change at line 2616 skipping to change at line 2746
IMAGEAPI IMAGEAPI
SymEnumTypesW( SymEnumTypesW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 BaseOfDll, __in ULONG64 BaseOfDll,
__in PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, __in PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext __in_opt PVOID UserContext
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymEnumTypesByName(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in_opt PCSTR mask,
__in PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
SymEnumTypesByNameW(
__in HANDLE hProcess,
__in ULONG64 BaseOfDll,
__in_opt PCWSTR mask,
__in PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
__in_opt PVOID UserContext
);
BOOL
IMAGEAPI
SymGetTypeFromName( SymGetTypeFromName(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 BaseOfDll, __in ULONG64 BaseOfDll,
__in PCSTR Name, __in PCSTR Name,
__inout PSYMBOL_INFO Symbol __inout PSYMBOL_INFO Symbol
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetTypeFromNameW( SymGetTypeFromNameW(
skipping to change at line 2682 skipping to change at line 2832
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymRefreshModuleList( SymRefreshModuleList(
__in HANDLE hProcess __in HANDLE hProcess
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymSrvIsStoreW( SymAddSourceStream(
__in HANDLE hProcess,
__in ULONG64 Base,
__in_opt PCSTR StreamFile,
__in_bcount_opt(Size) PBYTE Buffer,
__in size_t Size
);
typedef BOOL (WINAPI *SYMADDSOURCESTREAM)(HANDLE, ULONG64, PCSTR, PBYTE, size_t)
;
BOOL
IMAGEAPI
SymAddSourceStreamA(
__in HANDLE hProcess,
__in ULONG64 Base,
__in_opt PCSTR StreamFile,
__in_bcount_opt(Size) PBYTE Buffer,
__in size_t Size
);
typedef BOOL (WINAPI *SYMADDSOURCESTREAMA)(HANDLE, ULONG64, PCSTR, PBYTE, size_t
);
BOOL
IMAGEAPI
SymAddSourceStreamW(
__in HANDLE hProcess, __in HANDLE hProcess,
__in ULONG64 Base,
__in_opt PCWSTR FileSpec,
__in_bcount_opt(Size) PBYTE Buffer,
__in size_t Size
);
BOOL
IMAGEAPI
SymSrvIsStoreW(
__in_opt HANDLE hProcess,
__in PCWSTR path __in PCWSTR path
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymSrvIsStore( SymSrvIsStore(
__in HANDLE hProcess, __in_opt HANDLE hProcess,
__in PCSTR path __in PCSTR path
); );
PCSTR PCSTR
IMAGEAPI IMAGEAPI
SymSrvDeltaName( SymSrvDeltaName(
__in HANDLE hProcess, __in HANDLE hProcess,
__in_opt PCSTR SymPath, __in_opt PCSTR SymPath,
__in PCSTR Type, __in PCSTR Type,
__in PCSTR File1, __in PCSTR File1,
skipping to change at line 2867 skipping to change at line 3051
sfImage = 0, sfImage = 0,
sfDbg, sfDbg,
sfPdb, sfPdb,
sfMpd, sfMpd,
sfMax sfMax
}; };
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSymbolFile( SymGetSymbolFile(
__in HANDLE hProcess, __in_opt HANDLE hProcess,
__in_opt PCSTR SymPath, __in_opt PCSTR SymPath,
__in PCSTR ImageFile, __in PCSTR ImageFile,
__in DWORD Type, __in DWORD Type,
__out_ecount(cSymbolFile) PSTR SymbolFile, __out_ecount(cSymbolFile) PSTR SymbolFile,
__in size_t cSymbolFile, __in size_t cSymbolFile,
__out_ecount(cDbgFile) PSTR DbgFile, __out_ecount(cDbgFile) PSTR DbgFile,
__in size_t cDbgFile __in size_t cDbgFile
); );
BOOL BOOL
IMAGEAPI IMAGEAPI
SymGetSymbolFileW( SymGetSymbolFileW(
__in HANDLE hProcess, __in_opt HANDLE hProcess,
__in_opt PCWSTR SymPath, __in_opt PCWSTR SymPath,
__in PCWSTR ImageFile, __in PCWSTR ImageFile,
__in DWORD Type, __in DWORD Type,
__out_ecount(cSymbolFile) PWSTR SymbolFile, __out_ecount(cSymbolFile) PWSTR SymbolFile,
__in size_t cSymbolFile, __in size_t cSymbolFile,
__out_ecount(cDbgFile) PWSTR DbgFile, __out_ecount(cDbgFile) PWSTR DbgFile,
__in size_t cDbgFile __in size_t cDbgFile
); );
// //
skipping to change at line 3005 skipping to change at line 3189
typedef BOOL (WINAPI *PSYMBOLSERVERGETINDEXSTRINGW)(PVOID, DWORD, DWORD, PWSTR, size_t); typedef BOOL (WINAPI *PSYMBOLSERVERGETINDEXSTRINGW)(PVOID, DWORD, DWORD, PWSTR, size_t);
typedef BOOL (WINAPI *PSYMBOLSERVERSTOREFILE)(PCSTR, PCSTR, PVOID, DWORD, DWORD, PSTR, size_t, DWORD); typedef BOOL (WINAPI *PSYMBOLSERVERSTOREFILE)(PCSTR, PCSTR, PVOID, DWORD, DWORD, PSTR, size_t, DWORD);
typedef BOOL (WINAPI *PSYMBOLSERVERSTOREFILEW)(PCWSTR, PCWSTR, PVOID, DWORD, DWO RD, PWSTR, size_t, DWORD); typedef BOOL (WINAPI *PSYMBOLSERVERSTOREFILEW)(PCWSTR, PCWSTR, PVOID, DWORD, DWO RD, PWSTR, size_t, DWORD);
typedef BOOL (WINAPI *PSYMBOLSERVERISSTORE)(PCSTR); typedef BOOL (WINAPI *PSYMBOLSERVERISSTORE)(PCSTR);
typedef BOOL (WINAPI *PSYMBOLSERVERISSTOREW)(PCWSTR); typedef BOOL (WINAPI *PSYMBOLSERVERISSTOREW)(PCWSTR);
typedef DWORD (WINAPI *PSYMBOLSERVERVERSION)(); typedef DWORD (WINAPI *PSYMBOLSERVERVERSION)();
typedef BOOL (CALLBACK WINAPI *PSYMBOLSERVERMESSAGEPROC)(UINT_PTR action, ULONG6 4 data, ULONG64 context); typedef BOOL (CALLBACK WINAPI *PSYMBOLSERVERMESSAGEPROC)(UINT_PTR action, ULONG6 4 data, ULONG64 context);
#define SYMSRV_VERSION 2 #define SYMSRV_VERSION 2
#define SSRVOPT_CALLBACK 0x000001 #define SSRVOPT_CALLBACK 0x00000001
#define SSRVOPT_DWORD 0x000002 #define SSRVOPT_DWORD 0x00000002
#define SSRVOPT_DWORDPTR 0x000004 #define SSRVOPT_DWORDPTR 0x00000004
#define SSRVOPT_GUIDPTR 0x000008 #define SSRVOPT_GUIDPTR 0x00000008
#define SSRVOPT_OLDGUIDPTR 0x000010 #define SSRVOPT_OLDGUIDPTR 0x00000010
#define SSRVOPT_UNATTENDED 0x000020 #define SSRVOPT_UNATTENDED 0x00000020
#define SSRVOPT_NOCOPY 0x000040 #define SSRVOPT_NOCOPY 0x00000040
#define SSRVOPT_GETPATH 0x000040 #define SSRVOPT_GETPATH 0x00000040
#define SSRVOPT_PARENTWIN 0x000080 #define SSRVOPT_PARENTWIN 0x00000080
#define SSRVOPT_PARAMTYPE 0x000100 #define SSRVOPT_PARAMTYPE 0x00000100
#define SSRVOPT_SECURE 0x000200 #define SSRVOPT_SECURE 0x00000200
#define SSRVOPT_TRACE 0x000400 #define SSRVOPT_TRACE 0x00000400
#define SSRVOPT_SETCONTEXT 0x000800 #define SSRVOPT_SETCONTEXT 0x00000800
#define SSRVOPT_PROXY 0x001000 #define SSRVOPT_PROXY 0x00001000
#define SSRVOPT_DOWNSTREAM_STORE 0x002000 #define SSRVOPT_DOWNSTREAM_STORE 0x00002000
#define SSRVOPT_OVERWRITE 0x004000 #define SSRVOPT_OVERWRITE 0x00004000
#define SSRVOPT_RESETTOU 0x008000 #define SSRVOPT_RESETTOU 0x00008000
#define SSRVOPT_CALLBACKW 0x010000 #define SSRVOPT_CALLBACKW 0x00010000
#define SSRVOPT_FLAT_DEFAULT_STORE 0x020000 #define SSRVOPT_FLAT_DEFAULT_STORE 0x00020000
#define SSRVOPT_PROXYW 0x040000 #define SSRVOPT_PROXYW 0x00040000
#define SSRVOPT_MESSAGE 0x080000 #define SSRVOPT_MESSAGE 0x00080000
#define SSRVOPT_SERVICE 0x100000 // deprecated #define SSRVOPT_SERVICE 0x00100000 // deprecated
#define SSRVOPT_FAVOR_COMPRESSED 0x200000 #define SSRVOPT_FAVOR_COMPRESSED 0x00200000
#define SSRVOPT_STRING 0x00400000
#define SSRVOPT_WINHTTP 0x00800000
#define SSRVOPT_WININET 0x01000000
#define SSRVOPT_MAX 0x40000 #define SSRVOPT_MAX 0x0100000
#define SSRVOPT_RESET ((ULONG_PTR)-1) #define SSRVOPT_RESET ((ULONG_PTR)-1)
#define NUM_SSRVOPTS 30 #define NUM_SSRVOPTS 30
#define SSRVACTION_TRACE 1 #define SSRVACTION_TRACE 1
#define SSRVACTION_QUERYCANCEL 2 #define SSRVACTION_QUERYCANCEL 2
#define SSRVACTION_EVENT 3 #define SSRVACTION_EVENT 3
#define SSRVACTION_EVENTW 4 #define SSRVACTION_EVENTW 4
#define SSRVACTION_SIZE 5
#define SYMSTOREOPT_COMPRESS 0x01 #define SYMSTOREOPT_COMPRESS 0x01
#define SYMSTOREOPT_OVERWRITE 0x02 #define SYMSTOREOPT_OVERWRITE 0x02
#define SYMSTOREOPT_RETURNINDEX 0x04 #define SYMSTOREOPT_RETURNINDEX 0x04
#define SYMSTOREOPT_POINTER 0x08 #define SYMSTOREOPT_POINTER 0x08
#define SYMSTOREOPT_ALT_INDEX 0x10 #define SYMSTOREOPT_ALT_INDEX 0x10
#define SYMSTOREOPT_UNICODE 0x20 #define SYMSTOREOPT_UNICODE 0x20
#define SYMSTOREOPT_PASS_IF_EXISTS 0x40 #define SYMSTOREOPT_PASS_IF_EXISTS 0x40
#ifdef DBGHELP_TRANSLATE_TCHAR #ifdef DBGHELP_TRANSLATE_TCHAR
skipping to change at line 3080 skipping to change at line 3268
#define SymLoadModuleEx SymLoadModuleExW #define SymLoadModuleEx SymLoadModuleExW
#define SymSetSearchPath SymSetSearchPathW #define SymSetSearchPath SymSetSearchPathW
#define SymGetSearchPath SymGetSearchPathW #define SymGetSearchPath SymGetSearchPathW
#define EnumDirTree EnumDirTreeW #define EnumDirTree EnumDirTreeW
#define SymFromToken SymFromTokenW #define SymFromToken SymFromTokenW
#define SymFromIndex SymFromIndexW #define SymFromIndex SymFromIndexW
#define SymGetScope SymGetScopeW #define SymGetScope SymGetScopeW
#define SymNext SymNextW #define SymNext SymNextW
#define SymPrev SymPrevW #define SymPrev SymPrevW
#define SymEnumTypes SymEnumTypesW #define SymEnumTypes SymEnumTypesW
#define SymEnumTypesByName SymEnumTypesByNameW
#define SymRegisterCallback64 SymRegisterCallbackW64 #define SymRegisterCallback64 SymRegisterCallbackW64
#define SymFindDebugInfoFile SymFindDebugInfoFileW #define SymFindDebugInfoFile SymFindDebugInfoFileW
#define FindDebugInfoFileEx FindDebugInfoFileExW #define FindDebugInfoFileEx FindDebugInfoFileExW
#define SymFindFileInPath SymFindFileInPathW #define SymFindFileInPath SymFindFileInPathW
#define SymEnumerateModules64 SymEnumerateModulesW64 #define SymEnumerateModules64 SymEnumerateModulesW64
#define SymSetHomeDirectory SymSetHomeDirectoryW #define SymSetHomeDirectory SymSetHomeDirectoryW
#define SymGetHomeDirectory SymGetHomeDirectoryW #define SymGetHomeDirectory SymGetHomeDirectoryW
#define SymGetSourceFile SymGetSourceFileW #define SymGetSourceFile SymGetSourceFileW
#define SymGetSourceFileToken SymGetSourceFileTokenW #define SymGetSourceFileToken SymGetSourceFileTokenW
#define SymGetSourceFileFromToken SymGetSourceFileFromTokenW #define SymGetSourceFileFromToken SymGetSourceFileFromTokenW
skipping to change at line 3106 skipping to change at line 3295
#define SymGetSourceVarFromToken SymGetSourceVarFromTokenW #define SymGetSourceVarFromToken SymGetSourceVarFromTokenW
#define SymGetModuleInfo64 SymGetModuleInfoW64 #define SymGetModuleInfo64 SymGetModuleInfoW64
#define SymSrvIsStore SymSrvIsStoreW #define SymSrvIsStore SymSrvIsStoreW
#define SymSrvDeltaName SymSrvDeltaNameW #define SymSrvDeltaName SymSrvDeltaNameW
#define SymSrvGetSupplement SymSrvGetSupplementW #define SymSrvGetSupplement SymSrvGetSupplementW
#define SymSrvStoreSupplement SymSrvStoreSupplementW #define SymSrvStoreSupplement SymSrvStoreSupplementW
#define SymSrvGetFileIndexes SymSrvGetFileIndexes #define SymSrvGetFileIndexes SymSrvGetFileIndexes
#define SymSrvGetFileIndexString SymSrvGetFileIndexStringW #define SymSrvGetFileIndexString SymSrvGetFileIndexStringW
#define SymSrvStoreFile SymSrvStoreFileW #define SymSrvStoreFile SymSrvStoreFileW
#define SymGetSymbolFile SymGetSymbolFileW #define SymGetSymbolFile SymGetSymbolFileW
#define EnumerateLoadedModules64 EnumerateLoadedModulesW64 #define EnumerateLoadedModules64 EnumerateLoadedModulesW64
#define EnumerateLoadedModulesEx EnumerateLoadedModulesExW
#define SymSrvGetFileIndexInfo SymSrvGetFileIndexInfoW #define SymSrvGetFileIndexInfo SymSrvGetFileIndexInfoW
#define IMAGEHLP_LINE64 IMAGEHLP_LINEW64 #define IMAGEHLP_LINE64 IMAGEHLP_LINEW64
#define PIMAGEHLP_LINE64 PIMAGEHLP_LINEW64 #define PIMAGEHLP_LINE64 PIMAGEHLP_LINEW64
#define SYMBOL_INFO SYMBOL_INFOW #define SYMBOL_INFO SYMBOL_INFOW
#define PSYMBOL_INFO PSYMBOL_INFOW #define PSYMBOL_INFO PSYMBOL_INFOW
#define SYMBOL_INFO_PACKAGE SYMBOL_INFO_PACKAGEW #define SYMBOL_INFO_PACKAGE SYMBOL_INFO_PACKAGEW
#define PSYMBOL_INFO_PACKAGE PSYMBOL_INFO_PACKAGEW #define PSYMBOL_INFO_PACKAGE PSYMBOL_INFO_PACKAGEW
#define FIND_EXE_FILE_CALLBACK FIND_EXE_FILE_CALLBACKW #define FIND_EXE_FILE_CALLBACK FIND_EXE_FILE_CALLBACKW
#define PFIND_EXE_FILE_CALLBACK PFIND_EXE_FILE_CALLBACKW #define PFIND_EXE_FILE_CALLBACK PFIND_EXE_FILE_CALLBACKW
skipping to change at line 3134 skipping to change at line 3324
#define PSYM_ENUMSOURCEFILES_CALLBACK PSYM_ENUMSOURECFILES_CALLBACKW #define PSYM_ENUMSOURCEFILES_CALLBACK PSYM_ENUMSOURECFILES_CALLBACKW
#define IMAGEHLP_CBA_EVENT IMAGEHLP_CBA_EVENTW #define IMAGEHLP_CBA_EVENT IMAGEHLP_CBA_EVENTW
#define PIMAGEHLP_CBA_EVENT PIMAGEHLP_CBA_EVENTW #define PIMAGEHLP_CBA_EVENT PIMAGEHLP_CBA_EVENTW
#define PENUMDIRTREE_CALLBACK PENUMDIRTREE_CALLBACKW #define PENUMDIRTREE_CALLBACK PENUMDIRTREE_CALLBACKW
#define IMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DEFERRED_SYMBOL_LOADW64 #define IMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DEFERRED_SYMBOL_LOADW64
#define PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 PIMAGEHLP_DEFERRED_SYMBOL_LOADW64 #define PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 PIMAGEHLP_DEFERRED_SYMBOL_LOADW64
#define PFIND_DEBUG_FILE_CALLBACK PFIND_DEBUG_FILE_CALLBACKW #define PFIND_DEBUG_FILE_CALLBACK PFIND_DEBUG_FILE_CALLBACKW
#define PFINDFILEINPATHCALLBACK PFINDFILEINPATHCALLBACKW #define PFINDFILEINPATHCALLBACK PFINDFILEINPATHCALLBACKW
#define IMAGEHLP_MODULE64 IMAGEHLP_MODULEW64 #define IMAGEHLP_MODULE64 IMAGEHLP_MODULEW64
#define PIMAGEHLP_MODULE64 PIMAGEHLP_MODULEW64 #define PIMAGEHLP_MODULE64 PIMAGEHLP_MODULEW64
#define SYMSRV_INDEX_INFO SYMSRV_INDEX_INFOw #define SYMSRV_INDEX_INFO SYMSRV_INDEX_INFOW
#define PSYMSRV_INDEX_INFO PSYMSRV_INDEX_INFOW #define PSYMSRV_INDEX_INFO PSYMSRV_INDEX_INFOW
#define PSYMBOLSERVERPROC PSYMBOLSERVERPROCW #define PSYMBOLSERVERPROC PSYMBOLSERVERPROCW
#define PSYMBOLSERVERPINGPROC PSYMBOLSERVERPINGPROCW #define PSYMBOLSERVERPINGPROC PSYMBOLSERVERPINGPROCW
#endif #endif
// ----------------------------------------------------------------- // -----------------------------------------------------------------
// The following APIs exist only for backwards compatibility // The following APIs exist only for backwards compatibility
// with a pre-release version documented in an MSDN release. // with a pre-release version documented in an MSDN release.
skipping to change at line 3360 skipping to change at line 3550
#define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL // 0x001 0 #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL // 0x001 0
#define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL // 0x002 0 #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL // 0x002 0
#define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER // 0x004 0 #define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER // 0x004 0
#define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL // 0x008 0 #define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL // 0x008 0
#define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT // 0x010 0 #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT // 0x010 0
#define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION // 0x080 0 #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION // 0x080 0
#define IMAGEHLP_SYMBOL_VIRTUAL SYMF_VIRTUAL // 0x100 0 #define IMAGEHLP_SYMBOL_VIRTUAL SYMF_VIRTUAL // 0x100 0
#define IMAGEHLP_SYMBOL_THUNK SYMF_THUNK // 0x200 0 #define IMAGEHLP_SYMBOL_THUNK SYMF_THUNK // 0x200 0
#define IMAGEHLP_SYMBOL_INFO_TLSRELATIVE SYMF_TLSREL // 0x400 0 #define IMAGEHLP_SYMBOL_INFO_TLSRELATIVE SYMF_TLSREL // 0x400 0
#include <poppack.h>
#include <pshpack4.h> #include <pshpack4.h>
#if defined(_MSC_VER) #if defined(_MSC_VER)
#if _MSC_VER >= 800 #if _MSC_VER >= 800
#if _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(push) #pragma warning(push)
#endif #endif
#pragma warning(disable:4200) /* Zero length array */ #pragma warning(disable:4200) /* Zero length array */
#pragma warning(disable:4201) /* Nameless struct/union */ #pragma warning(disable:4201) /* Nameless struct/union */
#endif #endif
skipping to change at line 3459 skipping to change at line 3651
Memory64ListStream = 9, Memory64ListStream = 9,
CommentStreamA = 10, CommentStreamA = 10,
CommentStreamW = 11, CommentStreamW = 11,
HandleDataStream = 12, HandleDataStream = 12,
FunctionTableStream = 13, FunctionTableStream = 13,
UnloadedModuleListStream = 14, UnloadedModuleListStream = 14,
MiscInfoStream = 15, MiscInfoStream = 15,
MemoryInfoListStream = 16, MemoryInfoListStream = 16,
ThreadInfoListStream = 17, ThreadInfoListStream = 17,
HandleOperationListStream = 18, HandleOperationListStream = 18,
TokenStream = 19,
ceStreamNull = 0x8000, ceStreamNull = 0x8000,
ceStreamSystemInfo = 0x8001, ceStreamSystemInfo = 0x8001,
ceStreamException = 0x8002, ceStreamException = 0x8002,
ceStreamModuleList = 0x8003, ceStreamModuleList = 0x8003,
ceStreamProcessList = 0x8004, ceStreamProcessList = 0x8004,
ceStreamThreadList = 0x8005, ceStreamThreadList = 0x8005,
ceStreamThreadContextList = 0x8006, ceStreamThreadContextList = 0x8006,
ceStreamThreadCallStackList = 0x8007, ceStreamThreadCallStackList = 0x8007,
ceStreamMemoryVirtualList = 0x8008, ceStreamMemoryVirtualList = 0x8008,
ceStreamMemoryPhysicalList = 0x8009, ceStreamMemoryPhysicalList = 0x8009,
ceStreamBucketParameters = 0x800A, ceStreamBucketParameters = 0x800A,
ceStreamProcessModuleMap = 0x800B,
ceStreamDiagnosisList = 0x800C,
LastReservedStream = 0xffff LastReservedStream = 0xffff
} MINIDUMP_STREAM_TYPE; } MINIDUMP_STREAM_TYPE;
// //
// The minidump system information contains processor and // The minidump system information contains processor and
// Operating System specific information. // Operating System specific information.
// //
skipping to change at line 3854 skipping to change at line 4049
ULONG32 NumberOfEntries; ULONG32 NumberOfEntries;
} MINIDUMP_UNLOADED_MODULE_LIST, *PMINIDUMP_UNLOADED_MODULE_LIST; } MINIDUMP_UNLOADED_MODULE_LIST, *PMINIDUMP_UNLOADED_MODULE_LIST;
// //
// The miscellaneous information stream contains a variety // The miscellaneous information stream contains a variety
// of small pieces of information. A member is valid if // of small pieces of information. A member is valid if
// it's within the available size and its corresponding // it's within the available size and its corresponding
// bit is set. // bit is set.
// //
#define MINIDUMP_MISC1_PROCESS_ID 0x00000001 #define MINIDUMP_MISC1_PROCESS_ID 0x00000001
#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002 #define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
#define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004 #define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004
#define MINIDUMP_MISC3_PROCESS_INTEGRITY 0x00000010
#define MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS 0x00000020
#define MINIDUMP_MISC3_TIMEZONE 0x00000040
#define MINIDUMP_MISC3_PROTECTED_PROCESS 0x00000080
typedef struct _MINIDUMP_MISC_INFO { typedef struct _MINIDUMP_MISC_INFO {
ULONG32 SizeOfInfo; ULONG32 SizeOfInfo;
ULONG32 Flags1; ULONG32 Flags1;
ULONG32 ProcessId; ULONG32 ProcessId;
ULONG32 ProcessCreateTime; ULONG32 ProcessCreateTime;
ULONG32 ProcessUserTime; ULONG32 ProcessUserTime;
ULONG32 ProcessKernelTime; ULONG32 ProcessKernelTime;
} MINIDUMP_MISC_INFO, *PMINIDUMP_MISC_INFO; } MINIDUMP_MISC_INFO, *PMINIDUMP_MISC_INFO;
skipping to change at line 3881 skipping to change at line 4080
ULONG32 ProcessCreateTime; ULONG32 ProcessCreateTime;
ULONG32 ProcessUserTime; ULONG32 ProcessUserTime;
ULONG32 ProcessKernelTime; ULONG32 ProcessKernelTime;
ULONG32 ProcessorMaxMhz; ULONG32 ProcessorMaxMhz;
ULONG32 ProcessorCurrentMhz; ULONG32 ProcessorCurrentMhz;
ULONG32 ProcessorMhzLimit; ULONG32 ProcessorMhzLimit;
ULONG32 ProcessorMaxIdleState; ULONG32 ProcessorMaxIdleState;
ULONG32 ProcessorCurrentIdleState; ULONG32 ProcessorCurrentIdleState;
} MINIDUMP_MISC_INFO_2, *PMINIDUMP_MISC_INFO_2; } MINIDUMP_MISC_INFO_2, *PMINIDUMP_MISC_INFO_2;
typedef struct _MINIDUMP_MISC_INFO_3 {
ULONG32 SizeOfInfo;
ULONG32 Flags1;
ULONG32 ProcessId;
ULONG32 ProcessCreateTime;
ULONG32 ProcessUserTime;
ULONG32 ProcessKernelTime;
ULONG32 ProcessorMaxMhz;
ULONG32 ProcessorCurrentMhz;
ULONG32 ProcessorMhzLimit;
ULONG32 ProcessorMaxIdleState;
ULONG32 ProcessorCurrentIdleState;
ULONG32 ProcessIntegrityLevel;
ULONG32 ProcessExecuteFlags;
ULONG32 ProtectedProcess;
ULONG32 TimeZoneId;
TIME_ZONE_INFORMATION TimeZone;
} MINIDUMP_MISC_INFO_3, *PMINIDUMP_MISC_INFO_3;
// The latest MINIDUMP_MISC_INFO definition. // The latest MINIDUMP_MISC_INFO definition.
typedef MINIDUMP_MISC_INFO_2 MINIDUMP_MISC_INFO_N; typedef MINIDUMP_MISC_INFO_3 MINIDUMP_MISC_INFO_N;
typedef MINIDUMP_MISC_INFO_N* PMINIDUMP_MISC_INFO_N; typedef MINIDUMP_MISC_INFO_N* PMINIDUMP_MISC_INFO_N;
// //
// The memory information stream contains memory region // The memory information stream contains memory region
// description information. This stream corresponds to // description information. This stream corresponds to
// what VirtualQuery would return for the process the // what VirtualQuery would return for the process the
// dump was created for. // dump was created for.
// //
typedef struct _MINIDUMP_MEMORY_INFO { typedef struct _MINIDUMP_MEMORY_INFO {
skipping to change at line 3945 skipping to change at line 4163
ULONG64 Affinity; ULONG64 Affinity;
} MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO; } MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO;
typedef struct _MINIDUMP_THREAD_INFO_LIST { typedef struct _MINIDUMP_THREAD_INFO_LIST {
ULONG SizeOfHeader; ULONG SizeOfHeader;
ULONG SizeOfEntry; ULONG SizeOfEntry;
ULONG NumberOfEntries; ULONG NumberOfEntries;
} MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST; } MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST;
// //
// Support for token information.
//
typedef struct _MINIDUMP_TOKEN_INFO_HEADER {
ULONG TokenSize; // The size of the token structure.
ULONG TokenId; // The PID in NtOpenProcessToken() call or TID in NtOpe
nThreadToken() call.
ULONG64 TokenHandle; // The handle value returned.
} MINIDUMP_TOKEN_INFO_HEADER, *PMINIDUMP_TOKEN_INFO_HEADER;
typedef struct _MINIDUMP_TOKEN_INFO_LIST {
ULONG TokenListSize;
ULONG TokenListEntries;
ULONG ListHeaderSize;
ULONG ElementHeaderSize;
} MINIDUMP_TOKEN_INFO_LIST, *PMINIDUMP_TOKEN_INFO_LIST;
//
// Support for arbitrary user-defined information. // Support for arbitrary user-defined information.
// //
typedef struct _MINIDUMP_USER_RECORD { typedef struct _MINIDUMP_USER_RECORD {
ULONG32 Type; ULONG32 Type;
MINIDUMP_LOCATION_DESCRIPTOR Memory; MINIDUMP_LOCATION_DESCRIPTOR Memory;
} MINIDUMP_USER_RECORD, *PMINIDUMP_USER_RECORD; } MINIDUMP_USER_RECORD, *PMINIDUMP_USER_RECORD;
typedef struct _MINIDUMP_USER_STREAM { typedef struct _MINIDUMP_USER_STREAM {
ULONG32 Type; ULONG32 Type;
skipping to change at line 4196 skipping to change at line 4430
MiniDumpWithIndirectlyReferencedMemory = 0x00000040, MiniDumpWithIndirectlyReferencedMemory = 0x00000040,
MiniDumpFilterModulePaths = 0x00000080, MiniDumpFilterModulePaths = 0x00000080,
MiniDumpWithProcessThreadData = 0x00000100, MiniDumpWithProcessThreadData = 0x00000100,
MiniDumpWithPrivateReadWriteMemory = 0x00000200, MiniDumpWithPrivateReadWriteMemory = 0x00000200,
MiniDumpWithoutOptionalData = 0x00000400, MiniDumpWithoutOptionalData = 0x00000400,
MiniDumpWithFullMemoryInfo = 0x00000800, MiniDumpWithFullMemoryInfo = 0x00000800,
MiniDumpWithThreadInfo = 0x00001000, MiniDumpWithThreadInfo = 0x00001000,
MiniDumpWithCodeSegs = 0x00002000, MiniDumpWithCodeSegs = 0x00002000,
MiniDumpWithoutAuxiliaryState = 0x00004000, MiniDumpWithoutAuxiliaryState = 0x00004000,
MiniDumpWithFullAuxiliaryState = 0x00008000, MiniDumpWithFullAuxiliaryState = 0x00008000,
MiniDumpWithPrivateWriteCopyMemory = 0x00010000,
MiniDumpValidTypeFlags = 0x0000ffff, MiniDumpIgnoreInaccessibleMemory = 0x00020000,
MiniDumpWithTokenInformation = 0x00040000,
MiniDumpValidTypeFlags = 0x0007ffff,
} MINIDUMP_TYPE; } MINIDUMP_TYPE;
// //
// In addition to the primary flags provided to // In addition to the primary flags provided to
// MiniDumpWriteDump there are additional, less // MiniDumpWriteDump there are additional, less
// frequently used options queried via the secondary // frequently used options queried via the secondary
// flags callback. // flags callback.
// //
// MiniSecondaryWithoutPowerInfo suppresses the minidump // MiniSecondaryWithoutPowerInfo suppresses the minidump
// query that retrieves processor power information for // query that retrieves processor power information for
skipping to change at line 4226 skipping to change at line 4462
// //
// The minidump callback should modify the FieldsToWrite parameter to reflect // The minidump callback should modify the FieldsToWrite parameter to reflect
// what portions of the specified thread or module should be written to the // what portions of the specified thread or module should be written to the
// file. // file.
// //
typedef typedef
BOOL BOOL
(WINAPI * MINIDUMP_CALLBACK_ROUTINE) ( (WINAPI * MINIDUMP_CALLBACK_ROUTINE) (
IN PVOID CallbackParam, __inout PVOID CallbackParam,
IN CONST PMINIDUMP_CALLBACK_INPUT CallbackInput, __in PMINIDUMP_CALLBACK_INPUT CallbackInput,
IN OUT PMINIDUMP_CALLBACK_OUTPUT CallbackOutput __inout PMINIDUMP_CALLBACK_OUTPUT CallbackOutput
); );
typedef struct _MINIDUMP_CALLBACK_INFORMATION { typedef struct _MINIDUMP_CALLBACK_INFORMATION {
MINIDUMP_CALLBACK_ROUTINE CallbackRoutine; MINIDUMP_CALLBACK_ROUTINE CallbackRoutine;
PVOID CallbackParam; PVOID CallbackParam;
} MINIDUMP_CALLBACK_INFORMATION, *PMINIDUMP_CALLBACK_INFORMATION; } MINIDUMP_CALLBACK_INFORMATION, *PMINIDUMP_CALLBACK_INFORMATION;
//++ //++
// //
// PVOID // PVOID
skipping to change at line 4266 skipping to change at line 4502
// //
// A pointer to the desired data. // A pointer to the desired data.
// //
//-- //--
#define RVA_TO_ADDR(Mapping,Rva) ((PVOID)(((ULONG_PTR) (Mapping)) + (Rva))) #define RVA_TO_ADDR(Mapping,Rva) ((PVOID)(((ULONG_PTR) (Mapping)) + (Rva)))
BOOL BOOL
WINAPI WINAPI
MiniDumpWriteDump( MiniDumpWriteDump(
IN HANDLE hProcess, __in HANDLE hProcess,
IN DWORD ProcessId, __in DWORD ProcessId,
IN HANDLE hFile, __in HANDLE hFile,
IN MINIDUMP_TYPE DumpType, __in MINIDUMP_TYPE DumpType,
IN CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, OPTIONAL __in_opt PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
IN CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, OPTIONAL __in_opt PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
IN CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam OPTIONAL __in_opt PMINIDUMP_CALLBACK_INFORMATION CallbackParam
); );
BOOL BOOL
WINAPI WINAPI
MiniDumpReadDumpStream( MiniDumpReadDumpStream(
IN PVOID BaseOfDump, __in PVOID BaseOfDump,
IN ULONG StreamNumber, __in ULONG StreamNumber,
OUT PMINIDUMP_DIRECTORY * Dir, OPTIONAL __deref_out_opt PMINIDUMP_DIRECTORY * Dir,
OUT PVOID * StreamPointer, OPTIONAL __deref_out_opt PVOID * StreamPointer,
OUT ULONG * StreamSize OPTIONAL __out_opt ULONG * StreamSize
); );
#if defined(_MSC_VER) #if defined(_MSC_VER)
#if _MSC_VER >= 800 #if _MSC_VER >= 800
#if _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(pop) #pragma warning(pop)
#else #else
#pragma warning(default:4200) /* Zero length array */ #pragma warning(default:4200) /* Zero length array */
#pragma warning(default:4201) /* Nameless struct/union */ #pragma warning(default:4201) /* Nameless struct/union */
#endif #endif
 End of changes. 62 change blocks. 
98 lines changed or deleted 338 lines changed or added

This html diff was produced by rfcdiff 1.41.