FreeUserPhysicalPages 関数 (memoryapi.h)

AllocateUserPhysicalPages または AllocateUserPhysicalPagesNuma を使用して、以前に割り当てられた物理メモリ ページを解放します。 これらのページのいずれかが現在 アドレス ウィンドウ拡張機能 (AWE) リージョンにマップされている場合、これらのページは、この呼び出しによって自動的にマップ解除されます。 これは、指定されたアドレス ウィンドウ拡張 (AWE) リージョンによって占有されている仮想アドレス空間には影響しません。

Itanium ベースのシステム上の 64 ビット Windows: ページ サイズの違いにより、 FreeUserPhysicalPages は 32 ビット アプリケーションではサポートされていません。

構文

BOOL FreeUserPhysicalPages(
  [in]      HANDLE     hProcess,
  [in, out] PULONG_PTR NumberOfPages,
  [in]      PULONG_PTR PageArray
);

パラメーター

[in] hProcess

プロセスへのハンドル。

関数は、このプロセスの仮想アドレス空間内のメモリを解放します。

[in, out] NumberOfPages

解放する物理メモリのサイズ (ページ単位)。

戻り値の場合、関数が失敗した場合、このパラメーターは解放されるページ数を示します。

[in] PageArray

解放する割り当てられたメモリのページ フレーム番号の配列へのポインター。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 この場合、 NumberOfPages パラメーターには、実際にリリースされたページ数が反映されます。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

マルチプロセッサ環境では、この関数はハードウェア変換バッファーの一貫性を維持します。 この関数が返されると、すべてのプロセッサ上のすべてのスレッドに正しいマッピングが表示されます。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT マクロを 0x0500 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

例については、「 AWE の例」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー memoryapi.h (Windows.h、Memoryapi.h を含む)
Library onecore.lib
[DLL] Kernel32.dll

関連項目

アドレス ウィンドウ拡張機能

AllocateUserPhysicalPages

AllocateUserPhysicalPagesNuma

MapUserPhysicalPages

MapUserPhysicalPagesScatter

メモリ管理関数