Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
modułu jest plikiem wykonywalnym lub biblioteką DLL. Każdy proces składa się z co najmniej jednego modułu. Listę dojść modułów dla procesu można pobrać, wywołując funkcję EnumProcessModules. Ta funkcja wypełnia tablicę wartości HMODULE z uchwytami modułu dla określonego procesu. Pierwszy moduł to plik wykonywalny. Należy pamiętać, że te uchwyty modułu najprawdopodobniej pochodzą z innego procesu, więc nie można ich używać z funkcjami takimi jak GetModuleFileName. Można jednak użyć funkcji PSAPI, aby uzyskać informacje o module z innego procesu.
Poniższa procedura opisuje sposób uzyskiwania informacji o module z innego procesu.
Aby uzyskać informacje o module z innego procesu
- Wywołaj funkcjęgetModuleBaseName. Ta funkcja przyjmuje uchwyt procesu i uchwyt modułu jako dane wejściowe i wypełnia bufor nazwą podstawową modułu (na przykład Kernel32.dll). Powiązana funkcja, GetModuleFileNameEx, przyjmuje te same parametry co dane wejściowe, ale zwraca pełną ścieżkę do modułu (na przykład C:\Windows\System32\Kernel32.dll).
- Wywołaj funkcję GetModuleInformation. Ta funkcja przyjmuje uchwyt procesu i uchwyt modułu i wypełnia MODULEINFO strukturę z adresem obciążenia modułu, rozmiarem liniowej przestrzeni adresowej zajmowanej i wskaźnikiem do punktu wejścia.
Jeśli aplikacja wymaga informacji o module dla bieżącego procesu, należy użyć funkcji GetModuleFileName zamiast funkcji modułu PSAPI. Ułatwia to działanie aplikacji na dwa sposoby: funkcja GetModuleFileName jest wydajniejsza niż funkcje modułu PSAPI, a aplikacja może uniknąć ładowania psapi.dll, jeśli nie używa żadnych funkcji PSAPI.
Funkcje GetModuleBaseName i GetModuleFileNameEx są przeznaczone głównie do użytku przez debugery i podobne aplikacje, które muszą wyodrębniać informacje o module z innego procesu. Jeśli lista modułów w procesie docelowym jest uszkodzona lub nie została jeszcze zainicjowana lub lista modułów zmieni się podczas wywołania funkcji w wyniku załadowania lub zwolnienia bibliotek DLL, te funkcje mogą zakończyć się niepowodzeniem lub zwrócić nieprawidłowe informacje.