メモリ管理関数

一般的なメモリ関数

関数 説明
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 に設定します。

関数 説明 対応するヒープ関数
GlobalAllocLocalAlloc ヒープから指定したバイト数を割り当てます。 HeapAlloc
GlobalDiscardLocalDiscard 指定したグローバル メモリ ブロックを破棄します。 該当なし。
GlobalFlagsLocalFlags 指定したグローバル メモリ オブジェクトに関する情報を返します。 該当なし。 HeapValidate を使用してヒープを検証します。
GlobalFreeLocalFree 指定したグローバル メモリ オブジェクトを解放します。 HeapFree
GlobalHandleLocalHandle グローバル メモリ ブロックへの指定したポインターに関連付けられているハンドルを取得します。 この関数は、必要な OLE 関数とクリップボード関数でのみ使用する必要があります。 該当なし。
GlobalLockLocalLock グローバル メモリ オブジェクトをロックし、オブジェクトのメモリ ブロックの最初のバイトへのポインターを返します。 該当なし。
GlobalReAllocLocalReAlloc 指定したグローバル メモリ オブジェクトのサイズまたは属性を変更します。 HeapReAlloc
GlobalSizeLocalSize 指定したグローバル メモリ オブジェクトの現在のサイズを取得します。 HeapSize
GlobalUnlockLocalUnlock メモリ オブジェクトに関連付けられているロック数をデクリメントします。 この関数は、必要な 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 関数を使用してください。