VirtualAlloc

呼び出し元プロセスの仮想アドレス空間内のページ領域を予約、コミット、または状態変更する。(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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs