呼び出し元プロセスの仮想アドレス空間内のページ領域を予約、コミット、または状態変更する。(VirtualAlloc)
VirtualAlloc lpAddress, dwSize, flAllocationType, flProtect
lpAddress : [intptr] 割り当てる領域の開始アドレス。メモリが予約される場合、指定アドレスは割り当て粒度の最も近い倍数に切り下げられる。既に予約済みでコミットする場合は、次のページ境界に切り下げられる。NULL の場合、システムが割り当て場所を決定する。 dwSize : [int] 領域のサイズ(バイト単位)。lpAddress が NULL なら次のページ境界に切り上げられる。そうでなければ、lpAddress から lpAddress+dwSize の範囲にある 1 バイト以上を含むすべてのページが割り当て領域に含まれる。 flAllocationType : [int] flProtect : [int] 割り当てるページ領域のメモリ保護。ページをコミットする場合、Memory Protection Constants のいずれかを指定可能。
(プラグイン / モジュール : kernel32.dll)
呼び出し元プロセスの仮想アドレス空間内のページ領域を予約、コミット、または状態変更する。(VirtualAlloc) [戻り値] 関数が成功した場合、戻り値は割り当てられたページ領域のベースアドレス。失敗した場合は NULL。拡張エラー情報は GetLastError で取得する。 [備考] 各ページには関連するページ状態がある。VirtualAlloc は、予約ページ領域のコミット、空きページ領域の予約、空きページ領域の同時予約とコミットを実行できる。予約済みページを再予約することはできないが、既にコミット済みのページをコミットすることはできる。予約したアドレス空間を必要になるまで物理ストレージを消費せずに保持することが可能。動的生成コードを実行するには VirtualAlloc でメモリを割り当て、VirtualProtect で PAGE_EXECUTE アクセスを付与する。AWE メモリ領域の予約にも使える。
| プラグイン / モジュール | 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 |