記憶體管理函式
一般記憶體函式
函式 | 描述 |
---|---|
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。
函式 | 描述 | 對應的堆積函式 |
---|---|---|
GlobalAlloc、 LocalAlloc | 從堆積配置指定的位元組數目。 | HeapAlloc |
GlobalDiscard、LocalDiscard | 捨棄指定的全域記憶體區塊。 | 不適用。 |
GlobalFlags、 LocalFlags | 傳回指定之全域記憶體對象的相關信息。 | 不適用。 使用 HeapValidate 來驗證堆積。 |
GlobalFree、LocalFree | 釋放指定的全域記憶體物件。 | HeapFree |
GlobalHandle、 LocalHandle | 擷取與全域記憶體區塊指定指標相關聯的句柄。 此函式只能與需要它的 OLE 和剪貼簿函式搭配使用。 | 不適用。 |
GlobalLock、 LocalLock | 鎖定全域記憶體物件,並傳回物件記憶體區塊第一個字節的指標。 | 不適用。 |
GlobalReAlloc、 LocalReAlloc | 變更指定之全域記憶體物件的大小或屬性。 | HeapReAlloc |
GlobalSize、 LocalSize | 擷取指定之全域記憶體物件的目前大小。 | 堆積大小 |
GlobalUnlock、 LocalUnlock | 遞減與記憶體對象相關聯的鎖定計數。 此函式只能與需要它的 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 函式。