アクティブなヒープの数を返し、呼び出し側プロセスのすべてのアクティブなヒープへのハンドルを取得する。
GetProcessHeaps NumberOfHeaps, ProcessHeaps
NumberOfHeaps : [int] ProcessHeaps が指すバッファに格納できるヒープハンドルの最大数。 ProcessHeaps : [intptr] ヒープハンドルの配列を受け取るバッファへのポインタ。
(プラグイン / モジュール : kernel32.dll)
アクティブなヒープの数を返し、呼び出し側プロセスのすべてのアクティブなヒープへのハンドルを取得する。 [戻り値] 戻り値は、呼び出し側プロセスでアクティブなヒープへのハンドル数。戻り値が NumberOfHeaps 以下の場合、関数はその数のヒープハンドルを ProcessHeaps が指すバッファに格納している。戻り値が NumberOfHeaps より大きい場合、ProcessHeaps が指すバッファは呼び出し側プロセスのすべてのヒープハンドルを保持するには小さすぎるため、関数は NumberOfHeaps 個のハンドルをバッファに格納する。すべてのハンドルを受け取るのに十分な大きさのバッファを確保するために戻り値を使用し、関数を再度呼び出す。戻り値が 0 の場合、すべてのプロセスは少なくとも 1 つのアクティブなヒープ(プロセスの既定ヒープ)を持つため、関数は失敗している。拡張エラー情報を取得するには GetLastError を呼ぶ。 [備考] GetProcessHeaps 関数は、呼び出し側プロセスの既定ヒープへのハンドルと、プロセス内の任意のスレッドで HeapCreate 関数を呼び出して作成された追加のプライベートヒープへのハンドルを取得する。GetProcessHeaps 関数は、関数で取得されるプライベートヒープの一部はプロセス内で動作する他のコードによって作成されている可能性があり、GetProcessHeaps が戻った後に破棄される可能性があるため、主にデバッグに有用である。ヒープを破棄するとそのヒープのハンドルは無効になり、そのようなハンドルを継続して使用するとアプリケーションで未定義の動作が発生する可能性がある。ヒープ関数は呼び出し側プロセスの既定ヒープと、プロセスが作成・管理するプライベートヒープに対してのみ呼び出すべきである。呼び出し側プロセスのプロセスヒープへのハンドルを取得するには、GetProcessHeap 関数を使用する。
| プラグイン / モジュール | 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 |