<Return[F]><Top>

FreeUserPhysicalPages

Declare Function Api_FreeUserPhysicalPages& Lib "kernel32" Alias "FreeUserPhysicalPages" (ByVal hProcess&, ByRef NumberOfPages As OUT, ByRef PageArray As PULONG_PTR)

Declare Function FreeUserPhysicalPages Lib "kernel32" Alias "FreeUserPhysicalPages" (ByVal hProcess As Long, ByRef NumberOfPages As OUT, ByRef PageArray As PULONG_PTR) As Long

AllocateUserPhysicalPages が割り当てた物理メモリページを解放する。これらのページのうちいずれかが AWE(アドレスウィンドウ化拡張)アドレス空間内に現在マップされている場合、この呼び出しにより、そのページは自動的にマップを解除される。この動作が、指定された AWE 領域が利用している仮想アドレス空間に影響を及ぼさないことに注意する。

パラメータ
hProcess
    [入力]プロセスのハンドルを指定します。この関数は、このプロセスの仮想アドレス空間内のメモリを解放する。
NumberOfPages
    [入出力]解放したい物理メモリのサイズをページ単位で指定する。この関数が失敗した場合、制御が返されたときに、このパラメータは

    解放に成功したページ数を示す。
UserPfnArray
    [入力]解放するページのフレーム番号を取得する仮想アドレスを指定する。

戻り値
    関数が成功すると、TRUE が返る。
    関数が失敗すると、FALSE が返る。この場合、NumberOfPages パラメータは、実際に解放されたページ数を表す。拡張エラー情報を取

    得するには、関数を使う。

解説
    マルチプロセッサ環境では、この関数はハードウェア変換バッファの整合性を維持する。この関数から制御が返された時点で、すべてのプロ

    セッサのすべてのスレッドが正しいマッピングを認識することが保証されている。