次の方法で共有


AllocateUserPhysicalPages2 関数 (memoryapi.h)

拡張パラメーターを使用して、指定されたプロセスの アドレス ウィンドウ拡張機能 (AWE) 領域内でマップおよびマップ解除される物理メモリ ページを割り当てます。

構文

BOOL AllocateUserPhysicalPages2(
  [in]     HANDLE                  ObjectHandle,
  [in,out] PULONG_PTR              NumberOfPages,
  [out]    PULONG_PTR              PageArray,
  [in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
  [in]     ULONG                   ExtendedParameterCount
);

パラメーター

[in] ObjectHandle

プロセスへのハンドル。

関数は、このプロセスの仮想アドレス空間内で後でマップできるメモリを割り当てます。 ハンドルには 、PROCESS_VM_OPERATION アクセス権が必要です。 詳細については、「 プロセス のセキュリティとアクセス権」を参照してください。

[in,out] NumberOfPages

割り当てる物理メモリのサイズ (ページ単位)。

コンピューターのページ サイズを確認するには、 GetSystemInfo 関数を使用します。 出力時に、このパラメーターは、実際に割り当てられたページの数を受け取ります。これは、要求された数より小さい可能性があります。

[out] PageArray

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

割り当てられる配列のサイズは、少なくとも NumberOfPagesULONG_PTR データ型のサイズの倍である必要があります。

このバッファーの変更を試みないでください。 これにはオペレーティング システム データが含まれており、破損が致命的になる可能性があります。 バッファー内の情報は、アプリケーションには役に立ちません。

[in,out] ExtendedParameters

MEM_EXTENDED_PARAMETER構造体の配列へのポインター。

[in] ExtendedParameterCount

ExtendedParameters 配列内のMEM_EXTENDED_PARAMETERの数。

戻り値

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

割り当て可能なページ数は、要求されたページ数よりも少なくなります。 呼び出し元は、割り当てられているページ数を確認するために、戻り値の NumberOfPages パラメーターの値をチェックする必要があります。 割り当てられたページ フレーム番号はすべて、 UserPfnArray パラメーターによって指されるメモリに順番に配置されます。

関数が失敗した場合、戻り値は FALSE で、フレームは割り当てされません。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

AllocateUserPhysicalPages2AllocateUserPhysicalPages と同じですが、 ExtendedParameters パラメーターと ExtendedParameterCount パラメーターを 追加します。

AllocateUserPhysicalPages2 関数は、プロセスの仮想アドレス空間内で後でマップできる物理メモリを割り当てるために使用されます。 呼び出し元のトークンで SeLockMemoryPrivilege 特権を有効にする必要があります。または、関数は ERROR_PRIVILEGE_NOT_HELD で失敗します。 詳細については、「特権定数」を参照してください。

この関数によって割り当てられるメモリは、システムに物理的に存在している必要があります。 メモリが割り当てられると、そのメモリはロックダウンされ、仮想メモリ管理システムの残りの部分では使用できなくなります。

物理ページを複数の仮想アドレスに同時にマップすることはできません。

物理ページは、任意の物理アドレスに存在できます。 物理ページの連続性については、何も想定しないでください。

要件

   
サポートされている最小のクライアント Windows 11、ビルド 20348
サポートされている最小のサーバー Windows Server ビルド 20348
Header memoryapi.h
Library onecore.lib
[DLL] kernelbase.dll

こちらもご覧ください

AllocateUserPhysicalPages

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

AllocateUserPhysicalPagesNuma

FreeUserPhysicalPages

MapUserPhysicalPages

MapUserPhysicalPagesScatter

メモリ管理関数