Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод FindModuleByName будет просматривать заданный контекст узла и находить модуль с указанным именем и возвращать в него интерфейс. Это законно для поиска модуля по имени или без расширения файла.
Синтаксис
HRESULT FindModuleByName(
IDebugHostContext *context,
PCWSTR moduleName,
IDebugHostModule **module
);
Параметры
context
Этот контекст узла будет искать загруженный модуль, соответствующий заданному имени.
moduleName
Имя модуля для поиска. Имя может быть указано с расширением файла или без нее.
module
Если модуль найден, сюда будет возвращен интерфейс модуля.
Возвращаемое значение
Этот метод возвращает HRESULT, указывающий на успех или сбой.
Замечания
пример кода
ComPtr<IDebugHost> spHost; /* get the host */
ComPtr<IDebugHostSymbols> spSym;
if (SUCCEEDED(spHost.As(&spSym)))
{
// Find the "notepad.exe" module in the current UI context (process)
// of the debug host:
ComPtr<IDebugHostModule> spModule;
if (SUCCEEDED(spSym->FindModuleByName(USE_CURRENT_HOST_CONTEXT,
L"notepad.exe",
&spModule)))
{
// spModule is the module "notepad.exe"
}
}
Различия в сопоставлении модуля символов в FindModuleByName, CreateTypeSignature и CreateTypeSignatureForModuleRange
FindModuleByName позволит передать имя модуля в качестве имени реального образа модуля, например My Module.dll, или того, который можно ссылаться на него в обработчике отладчика (например, MyModule или MyModule_<hex_base>).
Вызов CreateTypeSignatureForModuleRange и передача имени/nullptr/nullptr создаст подпись, которая будет соответствовать любому модулю, соответствующему имени любой версии.
Имя модуля, переданное функциям CreateTypeSignature, будет принимать только имя реального образа модуля (например, MyModule.dll).
Вызов FindModuleByName, а затем CreateTypeSignature с этим модулем создаст подпись, которая будет соответствовать только конкретному экземпляру модуля, переданному в него. Если есть две копии модуля, загруженного (например, ntdll в 32-разрядном процессе, работающем в 64-разрядной версии Windows), он будет соответствовать только конкретному экземпляру, переданном. Он также больше не будет соответствовать, если эта библиотека DLL была выгружена и перезагружалась. Подпись связана с определенным экземпляром модуля, известного отладчиком.
Требования
| Требование | Ценность |
|---|---|
| заголовка | dbgmodel.h |