Compartir a través de


Información de módulos

Un módulo es un archivo ejecutable o DLL. Cada proceso está compuesto por uno o más módulos. Puede recuperar la lista de identificadores de módulo de un proceso mediante una llamada a la función EnumProcessModules . Esta función rellena una matriz de valores HMODULE con los identificadores del módulo para el proceso especificado. El primer módulo es el archivo ejecutable. Recuerde que estos identificadores de módulo son más probables de algún otro proceso, por lo que no puede usarlos con funciones como GetModuleFileName. Sin embargo, puede usar funciones PSAPI para obtener información sobre un módulo de otro proceso.

En el procedimiento siguiente se describe cómo obtener información de módulo de otro proceso.

Para obtener información del módulo de otro proceso

  1. Llame a la función GetModuleBaseName . Esta función toma un identificador de proceso y un identificador de módulo como entrada y rellena un búfer con el nombre base de un módulo (por ejemplo, Kernel32.dll). Una función relacionada, GetModuleFileNameEx, toma los mismos parámetros que la entrada, pero devuelve la ruta de acceso completa al módulo (por ejemplo, C:\Windows\System32\Kernel32.dll).
  2. Llame a la función GetModuleInformation . Esta función toma un identificador de proceso y un identificador de módulo y rellena una estructura MODULEINFO con la dirección de carga del módulo, el tamaño del espacio de direcciones lineales que ocupa y un puntero a su punto de entrada.

Si una aplicación requiere información de módulo para el proceso actual, debe usar la función GetModuleFileName en lugar de las funciones del módulo PSAPI. Esto ayuda al rendimiento de la aplicación de dos maneras: la función GetModuleFileName es más eficaz que las funciones del módulo PSAPI, y una aplicación puede evitar la carga psapi.dll si no usa ninguna función PSAPI.

Las funciones GetModuleBaseName y GetModuleFileNameEx están diseñadas principalmente para su uso por depuradores y aplicaciones similares que deben extraer información del módulo de otro proceso. Si la lista de módulos del proceso de destino está dañada o aún no se ha inicializado, o si la lista de módulos cambia durante la llamada de función como resultado de que se cargan o descargan archivos DLL, estas funciones pueden producir un error o devolver información incorrecta.