Win32API: HeapReAlloc

指定されたバイト数のメモリを、ヒープ領域から確保します。


定義
Declare Function HeapReAlloc Lib "kernel32" _
   (hHeap As HANDLE, _
    dwFlags As DWord, _
    lpMem As VoidPtr, _
    dwBytes As DWord) As VoidPtr
hHeap
ヒープ ハンドルを指定します。

dwFlags
メモリの再確保に関するオプションを、以下の定数を組み合わせて指定します。
定数説明
HEAP_GENERATE_EXCEPTIONS関数が失敗したときに、例外を発生させます。
HEAP_NO_SERIALIZEこの関数がヒープにアクセスしている間、相互排他を行わないようにします。
HEAP_REALLOC_IN_PLACE_ONLYメモリブロックのサイズを拡大する場合に、メモリの移動を起こさないようにします。このフラグを指定しなかった場合、メモリブロックが新しい位置に移動することがあります。
HEAP_ZERO_MEMORY再確保したメモリ サイズが以前のメモリ サイズより大きいときに、拡張領域を 0 で初期化します。

lpMem
再確保するメモリ ブロックへのポインタを指定します。

dwBytes
再確保するメモリのバイト数を指定します。

戻り値

再確保されたメモリ ブロックの先頭ポインタが返ります。関数が失敗すると、0 が返ります。

解説

確保したメモリ ブロックが不要になったときは、HeapFree関数を使用してメモリから解放して下さい。
dwBytes パラメータで指定されたバイト数より、実際に確保されたバイト数のほうが大きい場合があります。実際に確保されたバイト数を調べるには、HeapSize関数を使用して下さい。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


GetProcessHeap関数HeapAlloc関数HeapCreate関数HeapFree関数HeapSize関数