記憶體管理函式

一般記憶體函式

函式 描述
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 設定指定堆積的堆積資訊。
堆積大小 擷取從堆積配置的記憶體區塊大小。
HeapUnlock 釋放與指定堆積相關聯的鎖定擁有權。
HeapValidate 嘗試驗證指定的堆積。
HeapWalk 列舉指定堆積中的記憶體區塊。

虛擬記憶體函式

這些是 虛擬記憶體函式

函式 描述
DiscardVirtualMemory 捨棄記憶體分頁範圍的記憶體內容,而不認可記憶體。 捨棄記憶體的內容未定義,而且必須由應用程式重寫。
OfferVirtualMemory 表示應用程式不再需要包含在記憶體分頁範圍內的數據,並視需要由系統捨棄。
PrefetchVirtualMemory 將虛擬位址範圍預先擷取到物理記憶體中。
QueryVirtualMemoryInformation 傳回指定進程虛擬位址空間內頁面或一組頁面的相關信息。
ReclaimVirtualMemory 使用 OfferVirtualMemory 回收提供給系統的記憶體頁面範圍。
SetProcessValidCallTargets 提供 CFG 的有效間接呼叫目標清單,並指定是否應該標示為有效。
VirtualAlloc 在呼叫程式的虛擬位址空間中保留或認可頁面區域。
VirtualAlloc2 保留、認可或變更指定進程虛擬位址空間記憶體區域的狀態。 函式會初始化它配置給零的記憶體。
VirtualAlloc2FromApp 在呼叫程式的虛擬位址空間中保留、認可或變更頁面區域的狀態。 此函式配置的記憶體會自動初始化為零。
VirtualAllocEx 保留或認可指定進程虛擬位址空間中的頁面區域。
VirtualAllocExNuma 保留或認可指定進程虛擬位址空間內的記憶體區域,並指定實體記憶體的NUMA節點。
VirtualAllocFromApp 在呼叫程式的虛擬位址空間中保留、認可或變更頁面區域的狀態。 此函式配置的記憶體會自動初始化為零。
VirtualFree 釋放或取消認可呼叫進程虛擬位址空間內的頁面區域。
VirtualFreeEx 釋放或取消認可指定進程虛擬位址空間內的記憶體區域。
VirtualLock 將進程的虛擬位址空間指定區域鎖定為物理記憶體。
VirtualProtect 變更呼叫程式虛擬位址空間中已認可頁面區域中的存取保護。
VirtualProtectEx 變更呼叫程式虛擬位址空間中已認可頁面區域中的存取保護。
VirtualProtectFromApp 變更呼叫程式虛擬位址空間中已認可頁面區域中的保護。
VirtualQuery 提供呼叫進程虛擬位址空間中某個頁面範圍的相關信息。
VirtualQueryEx 提供呼叫進程虛擬位址空間中某個頁面範圍的相關信息。
VirtualUnlock 解除鎖定進程虛擬位址空間中的指定頁面範圍。

全域和區域函式

另請參閱 全域和本機函式。 這些函式是針對與16位 Windows 的相容性而提供,且會與動態數據交換(DDE)、剪貼簿函式和 OLE 資料物件搭配使用。 除非文件特別指出應該使用全域或本機函式,否則新的應用程式應該使用對應的堆積函式搭配 GetProcessHeap 所傳回的句柄。 對於全域或本機函式的對等功能,請將堆積函式的 dwFlags 參數設定為 0。

函式 描述 對應的堆積函式
GlobalAllocLocalAlloc 從堆積配置指定的位元組數目。 HeapAlloc
GlobalDiscard、LocalDiscard 捨棄指定的全域記憶體區塊。 不適用。
GlobalFlagsLocalFlags 傳回指定之全域記憶體對象的相關信息。 不適用。 使用 HeapValidate 來驗證堆積。
GlobalFree、LocalFree 釋放指定的全域記憶體物件。 HeapFree
GlobalHandleLocalHandle 擷取與全域記憶體區塊指定指標相關聯的句柄。 此函式只能與需要它的 OLE 和剪貼簿函式搭配使用。 不適用。
GlobalLockLocalLock 鎖定全域記憶體物件,並傳回物件記憶體區塊第一個字節的指標。 不適用。
GlobalReAllocLocalReAlloc 變更指定之全域記憶體物件的大小或屬性。 HeapReAlloc
GlobalSizeLocalSize 擷取指定之全域記憶體物件的目前大小。 堆積大小
GlobalUnlockLocalUnlock 遞減與記憶體對象相關聯的鎖定計數。 此函式只能與需要它的 OLE 和剪貼簿函式搭配使用。 不適用。

記憶體函式不正確

函式 描述
BadMemoryCallbackRoutine 使用 RegisterBadMemoryNotification 函式註冊的應用程式定義函式,會在偵測到一或多個不正確的記憶體頁面時呼叫。
GetMemoryErrorHandlingCapabilities 取得系統的記憶體錯誤處理功能。
RegisterBadMemoryNotification 註冊偵測到一或多個不良記憶體頁面時所呼叫的記憶體錯誤通知。
UnregisterBadMemoryNotification 關閉指定的記憶體不正確的通知句柄。

記憶體保護區函式

函式 描述
CreateEnclave 建立新的未初始化記憶體保護區。 記憶體保護區是應用程式位址空間內的程式代碼和數據隔離區域。 只有記憶體保護區內執行的程式代碼可以存取相同記憶體保護區內的數據。
InitializeEnclave 初始化您使用資料建立和載入的記憶體保護區。
IsEnclaveTypeSupported 擷取是否支援指定的記憶體保護區類型。
LoadEnclaveData 將數據載入您藉由呼叫 CreateEnclave 所建立的未初始化記憶體保護區。

ATL thunk 函式

函式 描述
AtlThunk_AllocateData 為 ATL thunk 配置記憶體中的空間。
AtlThunk_DataToCode 傳回對應至 AtlThunkData_t 參數的可執行函式。
AtlThunk_FreeData 釋放與 ATL thunk 相關聯的記憶體。
AtlThunk_InitData 初始化 ATL thunk。

過時的函式

這些函式僅供與16位版本的Windows相容:

下列函式可以傳回不正確的資訊,而且不應該使用。 請改用 GlobalMemoryStatusEx 函式。