Información del módulo
Un módulo es un archivo ejecutable o DLL. Cada proceso consta de uno o varios módulos. Puede recuperar la lista de identificadores de módulo para un proceso llamando a la funciónenumProcessModules. Esta función rellena una matriz de valores de HMODULE con los identificadores de 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 del módulo de otro proceso.
Para obtener información del módulo de otro proceso
- Llame a la funciónGetModuleBaseName. 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).
- Llame a la funciónGetModuleInformation. 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 lineal 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 cargar psapi.dll si no usa ninguna función PSAPI.
Las funciones de GetModuleBaseName y GetModuleFileNameEx están diseñadas principalmente para su uso por los 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 inicializa, o si la lista de módulos cambia durante la llamada de función como resultado de que se cargan o se descargan archivos DLL, estas funciones pueden producir errores o devolver información incorrecta.