次の方法で共有


メモリ管理機能

一般的なメモリ関数

機能 形容
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 ストア アプリから、指定したファイルの名前付きまたは名前のないファイル マッピング オブジェクトを作成または開きます。
CreateFileMappingNuma 指定したファイルの名前付きまたは名前のないファイル マッピング オブジェクトを作成または開き、物理メモリの NUMA ノードを指定します。
FlushViewOfFile ファイルのマップされたビュー内のバイト範囲をディスクに書き込みます。
GetMappedFileName 指定したアドレスが、指定したプロセスのアドレス空間内のメモリ マップト ファイル内にあるかどうかを確認します。 その場合、関数はメモリ マップト ファイルの名前を返します。
MapViewOfFile ファイル マッピングのビューを呼び出し元プロセスのアドレス空間にマップします。
MapViewOfFile2 ファイルまたはページ ファイルでバックアップされたセクションのビューを、指定されたプロセスのアドレス空間にマップします。
MapViewOfFile3 ファイルまたはページ ファイルでバックアップされたセクションのビューを、指定されたプロセスのアドレス空間にマップします。
MapViewOfFile3FromApp Windows ストア アプリから呼び出し元プロセスのアドレス空間にファイル マッピングのビューをマップします。
MapViewOfFileEx ファイル マッピングのビューを呼び出し元プロセスのアドレス空間にマップします。 呼び出し元は、必要に応じて、ビューに推奨されるメモリ アドレスを指定できます。
MapViewOfFileExNuma ファイル マッピングのビューを呼び出し元プロセスのアドレス空間にマップし、物理メモリの NUMA ノードを指定します。
MapViewOfFileFromApp Windows ストア アプリから呼び出し元プロセスのアドレス空間にファイル マッピングのビューをマップします。
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 RegisterBadMemoryNotification 関数に登録されたアプリケーション定義関数。これは、1 つ以上の不適切なメモリ ページが検出されたときに呼び出されます。
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 との互換性のためにのみ提供されます。

  • IsBadCodePtr
  • IsBadReadPtr
  • IsBadStringPtr
  • IsBadWritePtr

次の関数は正しくない情報を返す可能性があり、使用しないでください。 代わりに、GlobalMemoryStatusEx 関数を使用します。