Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A modul végrehajtható fájl vagy DLL. Minden folyamat egy vagy több modulból áll. A EnumProcessModules függvény meghívásával lekérheti a folyamat modulfogópontjainak listáját. Ez a függvény kitölti a HMODULE értékek tömbét a megadott folyamat modulfogópontjaival. Az első modul a végrehajtható fájl. Ne feledje, hogy ezek a modulfogópontok valószínűleg valamilyen más folyamatból származnak, ezért nem használhatja őket olyan függvényekkel, mint a GetModuleFileName. A PSAPI-függvények azonban egy modulra vonatkozó információk egy másik folyamatból való lekéréséhez használhatók.
Az alábbi eljárás azt ismerteti, hogyan szerezhet be modulinformációkat egy másik folyamatból.
Moduladatok lekérése egy másik folyamatból
- Hívja meg a GetModuleBaseName függvényt. Ez a függvény egy folyamatleírót és egy modulfogópontot vesz fel bemenetként, és egy puffert tölt ki egy modul alapnevével (például Kernel32.dll). Egy kapcsolódó függvény, GetModuleFileNameEx, ugyanazokat a paramétereket veszi fel, mint a bemenet, de visszaadja a modul teljes elérési útját (például C:\Windows\System32\Kernel32.dll).
- Hívja meg a GetModuleInformation függvényt. Ez a függvény egy folyamatleírót és egy modulfogópontot használ, és kitölt egy MODULEINFO struktúrát a modul terhelési címével, az általa foglalt lineáris címtér méretével és a belépési pontjára mutató mutatóval.
Ha egy alkalmazásnak modulinformációra van szüksége az aktuális folyamathoz, a PSAPI-modulfüggvények helyett a GetModuleFileName függvényt kell használnia. Ez kétféleképpen segíti az alkalmazások teljesítményét: a GetModuleFileName függvény hatékonyabb, mint a PSAPI-modulfüggvények, és az alkalmazás elkerülheti a psapi.dll betöltését, ha nem használ PSAPI-függvényeket.
A GetModuleBaseName és GetModuleFileNameEx függvényeket elsősorban hibakeresők és hasonló alkalmazások számára tervezték, amelyeknek modulinformációkat kell kinyerniük egy másik folyamatból. Ha a célfolyamatban lévő modullista sérült vagy még nincs inicializálva, vagy ha a modullista a függvényhívás során módosul a DLL-ek betöltése vagy törlése miatt, ezek a függvények sikertelenek lehetnek, vagy helytelen információkat adhatnak vissza.