Поделиться через


Функция 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
Header dbghelp.h
Библиотека Dbghelp.lib
DLL Dbghelp.dll
Распространяемые компоненты DbgHelp.dll 5.1 или более поздней версии

См. также раздел

Функции DbgHelp

SymInitialize

SymLoadModule64