指定したフィルタ条件に一致する、指定プロセス内の各モジュールのハンドルを取得する。
EnumProcessModulesEx hProcess, lphModule, cb, lpcbNeeded, dwFilterFlag
hProcess : [intptr] プロセスのハンドル。 lphModule : [intptr] モジュールハンドルのリストを受け取る配列。 cb : [int] lphModule 配列のサイズ(バイト単位)。 lpcbNeeded : [var] lphModule 配列にすべてのモジュールハンドルを格納するために必要なバイト数。 dwFilterFlag : [int]
(プラグイン / モジュール : psapi.dll)
指定したフィルタ条件に一致する、指定プロセス内の各モジュールのハンドルを取得する。 [戻り値] 関数が成功した場合、戻り値は 0 以外となる。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには GetLastError を呼び出す。 [備考] EnumProcessModulesEx 関数は主に、別プロセスからモジュール情報を取り出す必要があるデバッガなどのアプリケーション向けに設計されている。対象プロセスのモジュールリストが破損していたり、まだ初期化されていなかったり、関数呼び出し中に DLL のロードやアンロードによってモジュールリストが変化したりすると、EnumProcessModulesEx は失敗するか不正確な情報を返す可能性がある。この関数は主に 64 ビットアプリケーション向けである。WOW64 上で動作する 32 ビットアプリケーションから呼び出された場合、dwFilterFlag オプションは無視され、EnumProcessModules 関数と同じ結果を返す。EnumProcessModulesEx を呼び出した時点でプロセス内にいくつのモジュールが存在するかは予測しにくいため、HMODULE 値の大きな配列を指定するのが望ましい。lphModule 配列がプロセスのすべてのモジュールハンドルを保持するには小さすぎるかどうかを判断するには、lpcbNeeded に返された値と cb に指定した値を比較する。lpcbNeeded が cb より大きい場合、配列のサイズを大きくして EnumProcessModulesEx を再度呼び出す。EnumProcessModulesEx 呼び出しによって列挙されたモジュール数を求めるには、lpcbNeeded パラメータの値を sizeof(HMODULE) で除算する。EnumProcessModulesEx 関数は LOAD_LIBRARY_AS_DATAFILE フラグでロードされたモジュールのハンドルを取得しない。詳細は LoadLibraryEx を参照。この関数で返されたハンドルに対して CloseHandle を呼び出してはならない。情報はスナップショットから得られるため、解放すべきリソースは存在しない。指定プロセスとそれらが使用するヒープ、モジュール、スレッドのスナップショットを取得するには、CreateToolhelp32Snapshot 関数を使用する。Windows 7 および Windows Server 2008 R2 以降、Psapi.h は PSAPI 関数群にバージョン番号を設定している。PSAPI バージョン番号は、関数を呼び出す際に使用する名前と、プログラムがロードする必要のあるライブラリに影響を与える。PSAPI_VERSION が 2 以上の場合、この関数は Psapi.h で K32EnumProcessModulesEx として定義され、Kernel32.lib および Kernel32.dll からエクスポートされる。PSAPI_VERSION が 1 の場合、この関数は Psapi.h で EnumProcessModulesEx として定義され、K32EnumProcessModulesEx を呼び出すラッパーとして Psapi.lib および Psapi.dll からエクスポートされる。Windows の旧バージョンと Windows 7 以降の両方で動作する必要があるプログラムは、常に EnumProcessModulesEx として呼び出すべきである。シンボル解決を正しく行うには、TARGETLIBS マクロに Psapi.lib を追加し、-DPSAPI_VERSION=1 を指定してプログラムをコンパイルする。実行時動的リンクを利用するには、Psapi.dll をロードする。
| プラグイン / モジュール | psapi.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の psapi.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_psapi_gen2.hs |