メモリ管理関数
- 一般的なメモリ関数
- データ実行防止関数
- ファイル マッピング関数
- AWE 関数
- ヒープ関数
- 仮想メモリ関数
- グローバル関数とローカル関数
- 不良メモリ関数
- エンクレーブ関数
- ATL サンク関数
- 廃止された関数
一般的なメモリ関数
関数 | 説明 |
---|---|
AddSecureMemoryCacheCallback | セキュリティで保護されたメモリ範囲が解放されたとき、またはその保護が変更されたときに呼び出されるコールバック関数を登録します。 |
CopyDeviceMemory | 開発者がデバイス メモリへのアクセス時にアライメント エラーが生成されないようにする必要がある場合、コンパイラの最適化の干渉を受けることなく、ある場所から別の場所にメモリをコピーします。 |
CopyMemory | ある場所から別の場所にメモリ ブロックをコピーします。 |
CopyVolatileMemory | コピー元メモリ ブロックの内容をコピー先メモリ ブロックにコピーします。 |
CreateMemoryResourceNotification | メモリ リソース通知オブジェクトを作成します。 |
FillDeviceMemory | 開発者がデバイス メモリへのアクセス時にアライメント エラーが生成されないようにする必要がある場合、コンパイラの最適化の干渉を受けることなく、バッファーの内容を設定します。 |
FillMemory | メモリ ブロックを指定した値で埋めます。 |
FillVolatileMemory | メモリ ブロックを指定したフィル値で埋めます。 |
GetLargePageMinimum | 大きなページの最小サイズを取得します。 |
GetPhysicallyInstalledSystemMemory | コンピューターに物理的にインストールされている RAM の量を取得します。 |
GetSystemFileCacheSize | システム キャッシュのワーキング セットの現在のサイズ制限を取得します。 |
GetWriteWatch | 仮想メモリの領域に書き込まれたページのアドレスを取得します。 |
GlobalMemoryStatusEx | 物理と仮想の両方のメモリのシステムの現在の使用状況に関する情報を取得します。 |
MoveMemory | ある場所から別の場所にメモリ ブロックを移動します。 |
MoveVolatileMemory | コピー元メモリ ブロックの内容をコピー先メモリ ブロックにコピーします。また、コピー元メモリ ブロックとコピー先メモリ ブロックの重複をサポートします。 |
QueryMemoryResourceNotification | 指定したメモリ リソース オブジェクトの状態を取得します。 |
RemoveSecureMemoryCacheCallback | 以前に AddSecureMemoryCacheCallback 関数に登録されていたコールバック関数の登録を解除します。 |
ResetWriteWatch | 仮想メモリの領域の書き込み追跡状態をリセットします。 |
SecureMemoryCacheCallback | セキュリティで保護されたメモリ範囲が解放されたとき、またはその保護が変更されたときに呼び出されるアプリケーション定義関数。 |
SecureZeroMemory | メモリ ブロックをゼロで埋めます。 |
SecureZeroMemory2 | 確実にセキュリティで保護された方法で、メモリ ブロックにゼロが入力されます。 |
SetSystemFileCacheSize | ファイル システム キャッシュのワーキング セットのサイズを制限します。 |
ZeroDeviceMemory | 開発者がデバイス メモリへのアクセス時にアライメント エラーが生成されないようにする必要がある場合、コンパイラの最適化の干渉を受けることなく、バッファーの内容をゼロで埋めます。 |
ZeroMemory | メモリ ブロックをゼロで埋めます。 |
ZeroVolatileMemory | メモリ ブロックをゼロで埋めます。 |
データ実行防止関数
これらの関数は、データ実行防止 (DEP) で使用されます。
関数 | 説明 |
---|---|
GetProcessDEPPolicy | プロセスの DEP 設定を取得します。 |
GetSystemDEPPolicy | システムの DEP 設定を取得します。 |
SetProcessDEPPolicy | プロセスの DEP 設定を変更します。 |
ファイル マッピング関数
これらの関数は、ファイル マッピングで使用されます。
関数 | 説明 |
---|---|
CreateFileMappingA | 指定したファイルの名前付きまたは名前なしのファイル マッピング オブジェクトを作成するか開きます。 |
CreateFileMappingW | 指定したファイルの名前付きまたは名前なしのファイル マッピング オブジェクトを作成するか開きます。 |
CreateFileMapping2 | 指定したファイルの名前付きまたは名前なしのファイル マッピング オブジェクトを作成するか開きます。 物理メモリの優先 NUMA ノードを拡張パラメータとして指定できます。ExtendedParameters パラメータを参照してください。 |
CreateFileMappingFromApp | Windows Store アプリから指定したファイルの名前付きまたは名前なしのファイル マッピング オブジェクトを作成するか開きます。 |
CreateFileMappingNuma | 指定したファイルの名前付きまたは名前なしのファイル マッピング オブジェクトを作成するか開き、物理メモリの NUMA ノードを指定します。 |
FlushViewOfFile | ファイルのマップされたビュー内のバイト範囲をディスクに書き込みます。 |
GetMappedFileName | 指定したアドレスが、指定したプロセスのアドレス空間内のメモリ マップ ファイル内にあるかどうかを確認します。 ある場合、関数はメモリ マップ ファイルの名前を返します。 |
MapViewOfFile | 呼び出し元プロセスのアドレス空間へのファイル マッピングのビューをマップします。 |
MapViewOfFile2 | 指定したプロセスのアドレス空間に、ファイルまたはページ ファイルでサポートされるセクションのビューをマップします。 |
MapViewOfFile3 | 指定したプロセスのアドレス空間に、ファイルまたはページ ファイルでサポートされるセクションのビューをマップします。 |
MapViewOfFile3FromApp | ファイル マッピングのビューを、Microsoft Store アプリからの呼び出し元プロセスのアドレス空間にマッピングします。 |
MapViewOfFileEx | 呼び出し元プロセスのアドレス空間へのファイル マッピングのビューをマップします。 呼び出し元は、必要に応じて、ビューに推奨されるメモリ アドレスを指定できます。 |
MapViewOfFileExNuma | ファイル マッピングのビューを呼び出し元プロセスのアドレス空間にマッピングし、物理メモリの NUMA ノードを指定します。 |
MapViewOfFileFromApp | ファイル マッピングのビューを、Microsoft Store アプリからの呼び出し元プロセスのアドレス空間にマッピングします。 |
MapViewOfFileNuma2 | 指定したプロセスのアドレス空間に、ファイルまたはページ ファイルでサポートされるセクションのビューをマップします。 |
OpenFileMapping | 名前付きファイル マッピング オブジェクトを開きます。 |
OpenFileMappingFromApp | 名前付きファイル マッピング オブジェクトを開きます。 |
UnmapViewOfFile | ファイルのマップされたビューを呼び出し元プロセスのアドレス空間からマップ解除します。 |
UnmapViewOfFile2 | 以前にマップされたファイルのビューまたはページ ファイルでサポートされるセクションをマップ解除します。 |
UnmapViewOfFileEx | 以前にマップされたファイルのビューまたはページ ファイルでサポートされるセクションをマップ解除します。 |
AWE 関数
これらは AWE 関数です。
関数 | 説明 |
---|---|
AllocateUserPhysicalPages | プロセスの任意の AWE 領域内でマップおよびマップ解除される物理メモリ ページを割り当てます。 |
AllocateUserPhysicalPagesNuma | プロセスの AWE 領域内でマップおよびマップ解除される物理メモリ ページを割り当て、物理メモリの NUMA ノードを指定します。 |
FreeUserPhysicalPages | AllocateUserPhysicalPages で以前に割り当てられた物理メモリ ページを解放します。 |
MapUserPhysicalPages | 以前に割り当てられた物理メモリ ページを AWE 領域内の指定したアドレスにマップします。 |
MapUserPhysicalPagesScatter | 以前に割り当てられた物理メモリ ページを AWE 領域内の指定したアドレスにマップします。 |
ヒープ関数
これらはヒープ関数です。
関数 | 説明 |
---|---|
GetProcessHeap | 呼び出し元プロセスのヒープへのハンドルを取得します。 |
GetProcessHeaps | 呼び出し元プロセスに対して有効なすべてのヒープへのハンドルを取得します。 |
HeapAlloc | ヒープからメモリ ブロックを割り当てます。 |
HeapCompact | 隣接する空きメモリ ブロックをヒープ上に結合します。 |
HeapCreate | ヒープ オブジェクトを作成します。 |
HeapDestroy | 指定したヒープ オブジェクトを破棄します。 |
HeapFree | ヒープから割り当てられたメモリ ブロックを解放します。 |
HeapLock | 指定したヒープに関連付けられているロックの取得を試みます。 |
HeapQueryInformation | 指定したヒープに関する情報を取得します。 |
HeapReAlloc | メモリ ブロックをヒープから再割り当てします。 |
HeapSetInformation | 指定したヒープのヒープ情報を設定します。 |
HeapSize | ヒープから割り当てられたメモリ ブロックのサイズを取得します。 |
HeapUnlock | 指定したヒープに関連付けられているロックの所有権を解放します。 |
HeapValidate | 指定したヒープの検証を試みます。 |
HeapWalk | 指定したヒープ内のメモリ ブロックを列挙します。 |
仮想メモリ関数
これらは仮想メモリ関数です。
関数 | 説明 |
---|---|
DiscardVirtualMemory | メモリをデコミットせずに、メモリ ページの範囲のメモリ内容を破棄します。 破棄されたメモリの内容は未定義であり、アプリケーションによって書き換える必要があります。 |
OfferVirtualMemory | メモリ ページの範囲に含まれるデータがアプリケーションで不要になり、必要に応じてシステムで破棄できることを示します。 |
PrefetchVirtualMemory | 仮想アドレス範囲を物理メモリにプリフェッチします。 |
QueryVirtualMemoryInformation | 指定したプロセスの仮想アドレス空間内のページまたはページのセットに関する情報を返します。 |
ReclaimVirtualMemory | OfferVirtualMemory を使用してシステムに提供されたメモリ ページの範囲を再利用します。 |
SetProcessValidCallTargets | 有効な間接的な呼び出しターゲットのリストを CFG に提供し、それらを有効とマークするかどうかを指定します。 |
VirtualAlloc | 呼び出し元プロセスの仮想アドレス空間内のページの領域を予約またはコミットします。 |
VirtualAlloc2 | 指定したプロセスの仮想アドレス空間内のメモリ領域の状態を予約、コミット、または変更します。 この関数は、割り当てるメモリを 0 に初期化します。 |
VirtualAlloc2FromApp | 呼び出し元プロセスの仮想アドレス空間内のページ領域を予約、コミット、または状態変更します。 この関数によって割り当てられたメモリは、自動的に 0 に初期化されます。 |
VirtualAllocEx | 指定したプロセスの仮想アドレス空間内のページの領域を予約またはコミットします。 |
VirtualAllocExNuma | 指定したプロセスの仮想アドレス空間内のメモリ領域を予約またはコミットし、物理メモリの NUMA ノードを指定します。 |
VirtualAllocFromApp | 呼び出し元プロセスの仮想アドレス空間内のページ領域を予約、コミット、または状態変更します。 この関数によって割り当てられたメモリは、自動的に 0 に初期化されます。 |
VirtualFree | 呼び出し元プロセスの仮想アドレス空間内のページの領域を解放またはデコミットします。 |
VirtualFreeEx | 指定したプロセスの仮想アドレス空間内のメモリの領域を解放またはデコミットします。 |
VirtualLock | プロセスの仮想アドレス空間の指定した領域を物理メモリにロックします。 |
VirtualProtect | 呼び出し元プロセスの仮想アドレス空間内のコミット済みページの領域のアクセス保護を変更します。 |
VirtualProtectEx | 呼び出し元プロセスの仮想アドレス空間内のコミット済みページの領域のアクセス保護を変更します。 |
VirtualProtectFromApp | 呼び出し元プロセスの仮想アドレス空間内のコミット済みページの領域の保護を変更します。 |
VirtualQuery | 呼び出し元プロセスの仮想アドレス空間内のページの範囲に関する情報を提供します。 |
VirtualQueryEx | 呼び出し元プロセスの仮想アドレス空間内のページの範囲に関する情報を提供します。 |
VirtualUnlock | プロセスの仮想アドレス空間内の指定したページ範囲のロックを解除します。 |
グローバル関数とローカル関数
「グローバル関数とローカル関数」も参照してください。 これらの関数は 16 ビット Windows との互換性のために提供されており、動的データ交換 (DDE)、クリップボード関数、および OLE データ オブジェクトで使用されます。 グローバル関数またはローカル関数を使用する必要があるとドキュメントに具体的に記載されていない限り、新しいアプリケーションでは、GetProcessHeap によって返されたハンドルと共に対応するヒープ関数を使用する必要があります。 グローバル関数またはローカル関数と同等の機能の場合は、ヒープ関数の dwFlags パラメータを 0 に設定します。
関数 | 説明 | 対応するヒープ関数 |
---|---|---|
GlobalAlloc、LocalAlloc | ヒープから指定したバイト数を割り当てます。 | HeapAlloc |
GlobalDiscard、LocalDiscard | 指定したグローバル メモリ ブロックを破棄します。 | 該当なし。 |
GlobalFlags、LocalFlags | 指定したグローバル メモリ オブジェクトに関する情報を返します。 | 該当なし。 HeapValidate を使用してヒープを検証します。 |
GlobalFree、LocalFree | 指定したグローバル メモリ オブジェクトを解放します。 | HeapFree |
GlobalHandle、LocalHandle | グローバル メモリ ブロックへの指定したポインターに関連付けられているハンドルを取得します。 この関数は、必要な OLE 関数とクリップボード関数でのみ使用する必要があります。 | 該当なし。 |
GlobalLock、LocalLock | グローバル メモリ オブジェクトをロックし、オブジェクトのメモリ ブロックの最初のバイトへのポインターを返します。 | 該当なし。 |
GlobalReAlloc、LocalReAlloc | 指定したグローバル メモリ オブジェクトのサイズまたは属性を変更します。 | HeapReAlloc |
GlobalSize、LocalSize | 指定したグローバル メモリ オブジェクトの現在のサイズを取得します。 | HeapSize |
GlobalUnlock、LocalUnlock | メモリ オブジェクトに関連付けられているロック数をデクリメントします。 この関数は、必要な OLE 関数とクリップボード関数でのみ使用する必要があります。 | 該当なし。 |
不良メモリ関数
関数 | 説明 |
---|---|
BadMemoryCallbackRoutine | 1 つ以上の不良メモリ ページが検出されたときに呼び出される RegisterBadMemoryNotification 関数に登録されたアプリケーション定義関数。 |
GetMemoryErrorHandlingCapabilities | システムのメモリ エラー処理機能を取得します。 |
RegisterBadMemoryNotification | 1 つ以上の不良メモリ ページが検出されたときに呼び出される不良メモリ通知を登録します。 |
UnregisterBadMemoryNotification | 指定した不良メモリ通知ハンドルを閉じます。 |
エンクレーブ関数
関数 | 説明 |
---|---|
CreateEnclave | 初期化されていない新しいエンクレーブを作成します。 エンクレーブは、アプリケーションのアドレス空間内のコードとデータの分離された領域です。 エンクレーブ内で実行されるコードのみが、同じエンクレーブ内のデータにアクセスできます。 |
InitializeEnclave | 作成し、データを読み込んだエンクレーブを初期化します。 |
IsEnclaveTypeSupported | 指定したエンクレーブの種類がサポートされているかどうかを取得します。 |
LoadEnclaveData | CreateEnclave を呼び出して作成した初期化されていないエンクレーブにデータを読み込みます。 |
ATL サンク関数
関数 | 説明 |
---|---|
AtlThunk_AllocateData | ATL サンク用にメモリ内にスペースを割り当てます。 |
AtlThunk_DataToCode | AtlThunkData_t パラメータに対応する実行可能関数を返します。 |
AtlThunk_FreeData | ATL サンクに関連付けられているメモリを解放します。 |
AtlThunk_InitData | ATL サンクを初期化します。 |
廃止された関数
これらの関数は、16 ビット バージョンの Windows との互換性のためにのみ提供されています。
次の関数は誤った情報を返す可能性があるため、使用しないでください。 代わりに、GlobalMemoryStatusEx 関数を使用してください。