<Return[UV]><Top>
VirtualQueryEx |
Declare Function Api_VirtualQueryEx& Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess&, lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength&) |
Declare Function VirtualQueryEx Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess As Long, lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long |
|
指定されたプロセスの仮想アドレス空間にある範囲のページに関する情報を取得する。 |
|
パラメータ
いたものでなければならない。このハンドルを使うとプロセスオブジェクトから情報が読み取れる。
ージサイズを調べるには、 関数を使う。 MEM_PRIVATE、MEM_MAPPED、MEM_IMAGE のうちの 1 つのフラグをセットして割り当てた、すべてのページが対象になる(最初
の 3 つのフラグは
MEMORY_BASIC_INFORMATION 構造体の State メンバ、後の 3 つのフラグは Type メンバ)。
域内のすべてのページが対象になる。 PAGE_READWRITE、PAGE_NOACCESS、PAGE_WRITECOPY、PAGE_EXECUTE、PAGE_EXECUTE_READ、 PAGE_EXECUTE_READWRITE、PAGE_EXECUTE_WRITECOPY、PAGE_GUARD、PAGE_NOCACHE のうちの 1 つのアクセ ス権フラグをセットして割り当てられた、すべてのページが対象になる(MEMORY_BASIC_INFORMATION 構造体の AllocationProtect
メンバ)。 しないページが見つかるまで、それ以降のページを検索し続ける。この関数は、最初のページ属性と、共通の属性を持つページ領域のバ イト単位のサイズを返す。たとえば、サイズが 40MB の空きメモリ領域が存在する場合、その領域の先頭から 10MB 進んだ場所にあるペ ージに対して VirtualQueryEx 関数を呼び出すと、MEM_FREE の状態と 30MB のサイズが取得できる。 |