windows-nt/Source/XPSP1/NT/sdktools/dload/imagehlp.c
2020-09-26 16:20:57 +08:00

373 lines
6.7 KiB
C

#include "sdktoolspch.h"
#pragma hdrstop
#define _IMAGEHLP_SOURCE_
#include <imagehlp.h>
static
BOOL
IMAGEAPI
ImageEnumerateCertificates(
IN HANDLE FileHandle,
IN WORD TypeFilter,
OUT PDWORD CertificateCount,
IN OUT PDWORD Indices OPTIONAL,
IN DWORD IndexCount OPTIONAL
)
{
return FALSE;
}
static
BOOL
IMAGEAPI
ImageGetCertificateData(
IN HANDLE FileHandle,
IN DWORD CertificateIndex,
OUT LPWIN_CERTIFICATE Certificate,
IN OUT PDWORD RequiredLength
)
{
return FALSE;
}
static
BOOL
IMAGEAPI
ImageGetCertificateHeader(
IN HANDLE FileHandle,
IN DWORD CertificateIndex,
IN OUT LPWIN_CERTIFICATE CertificateHeader
)
{
return FALSE;
}
static
BOOL
IMAGEAPI
ImageGetDigestStream(
IN HANDLE FileHandle,
IN DWORD DigestLevel,
IN DIGEST_FUNCTION DigestFunction,
IN DIGEST_HANDLE DigestHandle
)
{
return FALSE;
}
static
BOOL
IMAGEAPI
MapAndLoad(
LPSTR ImageName,
LPSTR DllPath,
PLOADED_IMAGE LoadedImage,
BOOL DotDll,
BOOL ReadOnly
)
{
return FALSE;
}
static
BOOL
StackWalk(
DWORD MachineType,
HANDLE hProcess,
HANDLE hThread,
LPSTACKFRAME StackFrame32,
LPVOID ContextRecord,
PREAD_PROCESS_MEMORY_ROUTINE ReadMemory32,
PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccess32,
PGET_MODULE_BASE_ROUTINE GetModuleBase32,
PTRANSLATE_ADDRESS_ROUTINE TranslateAddress32
)
{
return FALSE;
}
static
BOOL
StackWalk64(
DWORD MachineType,
HANDLE hProcess,
HANDLE hThread,
LPSTACKFRAME64 StackFrame,
LPVOID ContextRecord,
PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemory,
PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccess,
PGET_MODULE_BASE_ROUTINE64 GetModuleBase,
PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
)
{
return FALSE;
}
static
LPVOID
IMAGEAPI
SymFunctionTableAccess(
HANDLE hProcess,
DWORD AddrBase
)
{
return NULL;
}
static
LPVOID
IMAGEAPI
SymFunctionTableAccess64(
HANDLE hProcess,
DWORD64 AddrBase
)
{
return NULL;
}
static
BOOL
IMAGEAPI
SymGetModuleInfo(
IN HANDLE hProcess,
IN DWORD dwAddr,
OUT PIMAGEHLP_MODULE ModuleInfo
)
{
if (ModuleInfo != NULL) {
DWORD dwSize = ModuleInfo->SizeOfStruct;
ZeroMemory(ModuleInfo, dwSize);
ModuleInfo->SizeOfStruct = dwSize;
}
return FALSE;
}
static
BOOL
IMAGEAPI
SymGetModuleInfo64(
IN HANDLE hProcess,
IN DWORD64 dwAddr,
OUT PIMAGEHLP_MODULE64 ModuleInfo
)
{
return FALSE;
}
static
DWORD
IMAGEAPI
SymGetOptions(
VOID
)
{
return 0;
}
static
BOOL
IMAGEAPI
SymGetSymFromAddr(
IN HANDLE hProcess,
IN DWORD Address,
OUT PDWORD Displacement,
OUT PIMAGEHLP_SYMBOL Symbol
)
{
if (Displacement != NULL) {
*Displacement = 0;
}
if (Symbol != NULL) {
DWORD dwSize = Symbol->SizeOfStruct;
ZeroMemory(Symbol, dwSize);
Symbol->SizeOfStruct = dwSize;
}
return FALSE;
}
static
BOOL
IMAGEAPI
SymGetSymFromAddr64(
IN HANDLE hProcess,
IN DWORD64 Address,
OUT PDWORD64 Displacement,
OUT PIMAGEHLP_SYMBOL64 Symbol
)
{
if (Displacement != NULL) {
*Displacement = 0;
}
if (Symbol != NULL) {
DWORD dwSize = Symbol->SizeOfStruct;
ZeroMemory(Symbol, dwSize);
Symbol->SizeOfStruct = dwSize;
}
return FALSE;
}
static
BOOL
IMAGEAPI
SymInitialize(
IN HANDLE hProcess,
IN LPSTR UserSearchPath,
IN BOOL InvadeProcess
)
{
return FALSE;
}
static
DWORD
IMAGEAPI
SymLoadModule(
IN HANDLE hProcess,
IN HANDLE hFile,
IN PSTR ImageName,
IN PSTR ModuleName,
IN DWORD BaseOfDll,
IN DWORD DllSize
)
{
return FALSE;
}
static
DWORD64
IMAGEAPI
SymLoadModule64(
IN HANDLE hProcess,
IN HANDLE hFile,
IN PSTR ImageName,
IN PSTR ModuleName,
IN DWORD64 BaseOfDll,
IN DWORD DllSize
)
{
return FALSE;
}
static
DWORD64
IMAGEAPI
SymLoadModuleEx(
IN HANDLE hProcess,
IN HANDLE hFile,
IN PSTR ImageName,
IN PSTR ModuleName,
IN DWORD64 BaseOfDll,
IN DWORD DllSize,
IN PMODLOAD_DATA Data,
IN DWORD Flags
)
{
return FALSE;
}
static
DWORD
IMAGEAPI
SymSetOptions(
DWORD UserOptions
)
{
return FALSE;
}
static
BOOL
IMAGEAPI
SymUnDName(
IN PIMAGEHLP_SYMBOL sym,
OUT LPSTR UnDecName,
OUT DWORD UnDecNameLength
)
{
if (UnDecName != NULL && UnDecNameLength > 0) {
UnDecName[0] = '\0';
}
return FALSE;
}
static
BOOL
IMAGEAPI
SymUnDName64(
IN PIMAGEHLP_SYMBOL64 sym,
OUT LPSTR UnDecName,
OUT DWORD UnDecNameLength
)
{
if (UnDecName != NULL && UnDecNameLength > 0) {
UnDecName[0] = '\0';
}
return FALSE;
}
static
DWORD
IMAGEAPI
WINAPI
UnDecorateSymbolName(
LPCSTR name,
LPSTR outputString,
DWORD maxStringLength,
DWORD flags
)
{
if (outputString != NULL && maxStringLength > 0) {
outputString[0] = '\0';
}
return FALSE;
}
static
BOOL
UnMapAndLoad(
PLOADED_IMAGE pLi
)
{
return FALSE;
}
//
// !! WARNING !! The entries below must be in alphabetical order, and are CASE SENSITIVE (eg lower case comes last!)
//
DEFINE_PROCNAME_ENTRIES(imagehlp)
{
DLPENTRY(ImageEnumerateCertificates)
DLPENTRY(ImageGetCertificateData)
DLPENTRY(ImageGetCertificateHeader)
DLPENTRY(ImageGetDigestStream)
DLPENTRY(MapAndLoad)
DLPENTRY(StackWalk)
DLPENTRY(StackWalk64)
DLPENTRY(SymFunctionTableAccess)
DLPENTRY(SymFunctionTableAccess64)
DLPENTRY(SymGetModuleInfo)
DLPENTRY(SymGetModuleInfo64)
DLPENTRY(SymGetOptions)
DLPENTRY(SymGetSymFromAddr)
DLPENTRY(SymGetSymFromAddr64)
DLPENTRY(SymInitialize)
DLPENTRY(SymLoadModule)
DLPENTRY(SymLoadModule64)
DLPENTRY(SymLoadModuleEx)
DLPENTRY(SymSetOptions)
DLPENTRY(SymUnDName)
DLPENTRY(SymUnDName64)
DLPENTRY(UnDecorateSymbolName)
DLPENTRY(UnMapAndLoad)
};
DEFINE_PROCNAME_MAP(imagehlp)