指定したプロセス、およびそれらのプロセスが使用するヒープ、モジュール、スレッドのスナップショットを取得する。
CreateToolhelp32Snapshot dwFlags, th32ProcessID
dwFlags : [int] th32ProcessID : [int] スナップショットに含めるプロセスのプロセス識別子。このパラメータを 0 にすると現在のプロセスを示す。このパラメータは TH32CS_SNAPHEAPLIST、TH32CS_SNAPMODULE、TH32CS_SNAPMODULE32、または TH32CS_SNAPALL 値が指定された場合に使用される。それ以外の場合は無視され、すべてのプロセスがスナップショットに含まれる。指定されたプロセスが Idle プロセスまたは CSRSS プロセスの 1 つである場合、それらのアクセス制限によりユーザーレベルのコードでは開けないため、関数は失敗し最後のエラーコードは ERROR_ACCESS_DENIED となる。指定されたプロセスが 64bit プロセスで呼び出し側が 32bit プロセスの場合、関数は失敗し最後のエラーコードは ERROR_PARTIAL_COPY (299) となる。
(プラグイン / モジュール : kernel32.dll)
指定したプロセス、およびそれらのプロセスが使用するヒープ、モジュール、スレッドのスナップショットを取得する。 [戻り値] 関数が成功した場合、戻り値は指定したスナップショットへのオープンハンドルである。関数が失敗した場合、戻り値は INVALID_HANDLE_VALUE となる。拡張エラー情報を取得するには GetLastError を呼ぶ。発生し得るエラーコードには ERROR_BAD_LENGTH などが含まれる。 [備考] この関数で取得したスナップショットは他の tool help 関数によって参照され結果が提供される。スナップショットへのアクセスは読み取り専用である。スナップショットハンドルはオブジェクトハンドルとして機能し、有効なプロセスやスレッドに関する同じ規則に従う。すべてのプロセスのヒープやモジュール状態を列挙するには、TH32CS_SNAPALL を指定し th32ProcessID を 0 に設定する。次にスナップショット内の追加プロセスごとに、プロセス識別子と TH32CS_SNAPHEAPLIST または TH32_SNAPMODULE 値を指定して再度 CreateToolhelp32Snapshot を呼ぶ。現在のプロセス以外のヒープやモジュールを含むスナップショットを取得する際、CreateToolhelp32Snapshot はさまざまな理由で失敗したり誤った情報を返したりすることがある。たとえば対象プロセスのローダーデータテーブルが破損していたり初期化されていなかったり、関数呼び出し中に DLL のロード/アンロードによりモジュールリストが変化した場合、関数は ERROR_BAD_LENGTH などのエラーコードで失敗することがある。対象プロセスがサスペンド状態で起動されていないことを確認し、関数を再度呼び出してみる。TH32CS_SNAPMODULE または TH32CS_SNAPMODULE32 で呼び出した際 ERROR_BAD_LENGTH で失敗する場合は、成功するまで関数を繰り返し呼ぶ。TH32CS_SNAPMODULE と TH32CS_SNAPMODULE32 フラグは LOAD_LIBRARY_AS_DATAFILE などのフラグでロードされたモジュールのハンドルは取得しない。詳細は LoadLibraryEx を参照。スナップショットを破棄するには CloseHandle 関数を使用する。なお QueryFullProcessImageName 関数を使うと、32bit プロセスからでも 32bit/64bit いずれのプロセスについても実行可能イメージのフルネームを取得できる。
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |