Función SymGetModuleInfo (dbghelp.h)
Recupera la información del módulo del módulo especificado.
Sintaxis
BOOL IMAGEAPI SymGetModuleInfo(
[in] HANDLE hProcess,
[in] DWORD dwAddr,
[out] PIMAGEHLP_MODULE ModuleInfo
);
Parámetros
[in] hProcess
Identificador del proceso que se pasó originalmente a la función SymInitialize .
[in] dwAddr
La dirección virtual contenida en uno de los módulos cargados por la función SymLoadModule64
[out] ModuleInfo
Puntero a una estructura de IMAGEHLP_MODULE64 . El miembro SizeOfStruct debe establecerse en el tamaño de la estructura IMAGEHLP_MODULE64 . Un valor no válido producirá un error.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE. Para recuperar información de error extendida, llame a GetLastError.
Comentarios
Se busca en la tabla de módulos un módulo que contiene dwAddr. El módulo se encuentra en función de la dirección de carga y el tamaño de cada módulo. Si se encuentra un módulo válido, el parámetro ModuleInfo se rellena con la información sobre el módulo.
El tamaño de la estructura de IMAGEHLP_MODULE64 utilizada por esta función ha cambiado a lo largo de los años. Si se llama a una versión de DbgHelp.dll anterior a DbgHelp.h que se usa para compilar el código de llamada, esta función puede producir un error con un código de error de ERROR_INVALID_PARAMETER. Esto suele ocurrir cuando se llama a la versión del sistema (%WinDir%\System32\DbgHelp.dll). El código que llama a la versión del sistema de DbgHelp.dll debe compilarse con el SDK adecuado para esa versión de Windows o el SDK para una versión anterior.
El modelo recomendado es redistribuir la versión necesaria de DbgHelp.dll junto con el software que realiza la llamada. Esto permite al autor de la llamada usar las versiones más sólidas de DbgHelp.dll, así como una simplificación de las actualizaciones. La versión más reciente de DbgHelp.dll siempre se puede encontrar en el paquete Herramientas de depuración para Windows . Como regla general, el código compilado para trabajar con versiones anteriores siempre funcionará con versiones más recientes.
Todas las funciones DbgHelp, como esta, son un único subproceso. Por lo tanto, es probable que las llamadas desde más de un subproceso a esta función producirán un comportamiento inesperado o daños en la memoria. Para evitarlo, debe sincronizar todas las llamadas simultáneas de más de un subproceso a esta función.
Para llamar a la versión Unicode de esta función, defina DBGHELP_TRANSLATE_TCHAR. SymGetModuleInfoW64 se define como se indica a continuación en DbgHelp.h.
BOOL
IMAGEAPI
SymGetModuleInfoW64(
__in HANDLE hProcess,
__in DWORD64 qwAddr,
__out PIMAGEHLP_MODULEW64 ModuleInfo
);
#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64 SymGetModuleInfoW64
#endif
Esta función sustituye a la función SymGetModuleInfo . Para obtener más información, consulte Compatibilidad con la plataforma actualizada. SymGetModuleInfo se define como se indica a continuación en DbgHelp.h.
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetModuleInfo SymGetModuleInfo64
#define SymGetModuleInfoW SymGetModuleInfoW64
#else
BOOL
IMAGEAPI
SymGetModuleInfo(
__in HANDLE hProcess,
__in DWORD dwAddr,
__out PIMAGEHLP_MODULE ModuleInfo
);
BOOL
IMAGEAPI
SymGetModuleInfoW(
__in HANDLE hProcess,
__in DWORD dwAddr,
__out PIMAGEHLP_MODULEW ModuleInfo
);
#endif
Requisitos
Plataforma de destino | Windows |
Encabezado | dbghelp.h |
Library | Dbghelp.lib |
Archivo DLL | Dbghelp.dll |
Redistribuible | DbgHelp.dll 5.1 o posterior |