Leyendo un poco la api Module32next se encarga de llamar módulos evidentemente dando información como el PID de quien le corresponde el módulo,la dirección base entre otras pero mi duda surge en que son los módulos es decir son solo las dll de una aplicación?, otra cosa que diferencia tiene esta api con EnumProcessModule?
Muchas gracias, Saludos
EnumProcessModules tienes que pasarle como paramentro un puntero a un array de HMODULEs donde irá devolviendo todos los hMODULE cargados en el programa. Es decir, solo devuelve el HMODULE. Que con eso puedes obtener el filename del modulo.
En cambio Module32Next/Module32First se utiliza con CreateToolhelp32Snapshot y devuelve todo una estructura detallada de cada modulo:
Citar
typedef struct tagMODULEENTRY32 {
DWORD dwSize;
DWORD th32ModuleID;
DWORD th32ProcessID;
DWORD GlblcntUsage;
DWORD ProccntUsage;
BYTE *modBaseAddr;
DWORD modBaseSize;
HMODULE hModule;
TCHAR szModule[MAX_MODULE_NAME32 + 1];
TCHAR szExePath[MAX_PATH];
} MODULEENTRY32, *PMODULEENTRY32;
Es decir, esta última no solo devuelve el hModule sino unas cuantas cosas mas.
Si, con module se refiere a las dll.
Perfecto todo claro, ahora una sola duda ya que me mensionaste que se refería a dll pero anteriormente en module32first toma al proceso en si y luego las dll ejemplo
explorer.exe
ntd.dll
..
..
..
..
No sé si me explico bien, Saludos
ModuleFirst se usa con CreateToolhelp32Snapshot que tambien puede ser usada para conseguir la lista de procesos.
Toma una lista de modulos que usa un proceso, por eso, si depuras algun programa, va aparecer el nombre de una ejecutable.