SymGetModuleBase 函数 (dbghelp.h)

检索包含指定地址的模块的基址。

语法

DWORD IMAGEAPI SymGetModuleBase(
  [in] HANDLE hProcess,
  [in] DWORD  dwAddr
);

参数

[in] hProcess

最初传递给 SymInitialize 函数的进程句柄。

[in] dwAddr

SymLoadModule64 函数加载的模块之一中包含的虚拟地址。

返回值

如果函数成功,则返回值为非零虚拟地址。 值是模块的基址,其中包含 由 dwAddr 参数指定的地址。

如果函数失败,则返回值为零。 若要检索扩展的错误信息,请调用 GetLastError

备注

在模块表中搜索包含 dwAddr 的模块。 模块基于每个模块的加载地址和大小进行定位。

所有 DbgHelp 函数(例如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将多个线程中的所有并发调用同步到此函数。

此函数取代 SymGetModuleBase 函数。 有关详细信息,请参阅 更新的平台支持SymGetModuleBase 在 DbgHelp.h 中定义如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetModuleBase SymGetModuleBase64
#else
DWORD
IMAGEAPI
SymGetModuleBase(
    __in HANDLE hProcess,
    __in DWORD dwAddr
    );
#endif

要求

   
目标平台 Windows
标头 dbghelp.h
Library Dbghelp.lib
DLL Dbghelp.dll
可再发行组件 DbgHelp.dll 5.1 或更高版本

请参阅

DbgHelp 函数

SymInitialize

SymLoadModule64