Partager via


Fonction SymGetModuleInfo (dbghelp.h)

Récupère les informations de module du module spécifié.

Syntaxe

BOOL IMAGEAPI SymGetModuleInfo(
  [in]  HANDLE           hProcess,
  [in]  DWORD            dwAddr,
  [out] PIMAGEHLP_MODULE ModuleInfo
);

Paramètres

[in] hProcess

Handle du processus qui a été passé à l’origine à la fonction SymInitialize .

[in] dwAddr

Adresse virtuelle contenue dans l’un des modules chargés par la fonction SymLoadModule64

[out] ModuleInfo

Pointeur vers une structure IMAGEHLP_MODULE64 . Le membre SizeOfStruct doit être défini sur la taille de la structure IMAGEHLP_MODULE64 . Une valeur non valide génère une erreur.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour récupérer des informations d’erreur étendues, appelez GetLastError.

Notes

La table de module est recherchée pour un module qui contient le dwAddr. Le module est situé en fonction de l’adresse de charge et de la taille de chaque module. Si un module valide est trouvé, le paramètre ModuleInfo est rempli avec les informations sur le module.

La taille de la structure IMAGEHLP_MODULE64 utilisée par cette fonction a changé au fil des ans. Si une version de DbgHelp.dll est appelée et qu’elle est antérieure à dbgHelp.h utilisée pour compiler le code appelant, cette fonction peut échouer avec un code d’erreur de ERROR_INVALID_PARAMETER. Cela se produit le plus souvent lorsque la version système (%WinDir%\System32\DbgHelp.dll) est appelée. Le code qui appelle la version système de DbgHelp.dll doit être compilé à l’aide du Kit de développement logiciel (SDK) approprié pour cette version de Windows ou du KIT de développement logiciel (SDK) d’une version précédente.

Le modèle recommandé consiste à redistribuer la version requise de DbgHelp.dll avec le logiciel appelant. Cela permet à l’appelant d’utiliser les versions les plus robustes de DbgHelp.dll ainsi que de simplifier les mises à niveau. La version la plus récente de DbgHelp.dll se trouve toujours dans le package Outils de débogage pour Windows . En règle générale, le code compilé pour fonctionner avec des versions antérieures fonctionne toujours avec les versions plus récentes.

Toutes les fonctions DbgHelp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.

Pour appeler la version Unicode de cette fonction, définissez DBGHELP_TRANSLATE_TCHAR. SymGetModuleInfoW64 est défini comme suit dans DbgHelp.h.


BOOL
IMAGEAPI
SymGetModuleInfoW64(
    __in HANDLE hProcess,
    __in DWORD64 qwAddr,
    __out PIMAGEHLP_MODULEW64 ModuleInfo
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64   SymGetModuleInfoW64
#endif

Cette fonction remplace la fonction SymGetModuleInfo . Pour plus d’informations, consultez Mise à jour de la prise en charge de la plateforme. SymGetModuleInfo est défini comme suit dans 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

Spécifications

   
Plateforme cible Windows
En-tête dbghelp.h
Bibliothèque Dbghelp.lib
DLL Dbghelp.dll
Composant redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

Fonctions DbgHelp

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64