Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En modul är en körbar fil eller DLL. Varje process består av en eller flera moduler. Du kan hämta listan över modulreferenser för en process genom att anropa funktionen EnumProcessModules. Den här funktionen fyller en matris med HMODULE- värden med modulhandtagen för den angivna processen. Den första modulen är den körbara filen. Kom ihåg att dessa modulreferenser troligen kommer från någon annan process, så du kan inte använda dem med funktioner som GetModuleFileName. Du kan dock använda PSAPI-funktioner för att hämta information om en modul från en annan process.
Följande procedur beskriver hur du hämtar modulinformation från en annan process.
Hämta modulinformation från en annan process
- Anropa funktionen GetModuleBaseName. Den här funktionen tar ett processhandtag och en modulreferens som indata och fyller i en buffert med basnamnet för en modul (till exempel Kernel32.dll). En relaterad funktion, GetModuleFileNameEx, tar samma parametrar som indata men returnerar den fullständiga sökvägen till modulen (till exempel C:\Windows\System32\Kernel32.dll).
- Anropa funktionen GetModuleInformation. Den här funktionen tar ett processhandtag och ett modulhandtag och fyller en MODULEINFO struktur med modulens belastningsadress, storleken på det linjära adressutrymme som den upptar och en pekare till startpunkten.
Om ett program kräver modulinformation för den aktuella processen bör det använda funktionen GetModuleFileName i stället för PSAPI-modulfunktionerna. Detta hjälper programmets prestanda på två sätt: funktionen GetModuleFileName är effektivare än PSAPI-modulfunktionerna, och ett program kan undvika att läsa in psapi.dll om det inte använder några PSAPI-funktioner.
Funktionerna GetModuleBaseName och GetModuleFileNameEx är främst utformade för användning av felsökningsprogram och liknande program som måste extrahera modulinformation från en annan process. Om modullistan i målprocessen är skadad eller inte har initierats ännu, eller om modullistan ändras under funktionsanropet till följd av att DLL:er läses in eller tas bort, kan dessa funktioner misslyckas eller returnera felaktig information.