Share via


mapUserPhysicalPagesScatter 函式 (winbase.h)

對應先前在位址 視窗延伸 模組 (AWE) 區域中指定位址的實體記憶體分頁。

Itanium 型系統上的 64 位 Windows: 由於頁面大小的差異,32 位應用程式不支援 MapUserPhysicalPagesScatter

語法

BOOL MapUserPhysicalPagesScatter(
  [in] PVOID      *VirtualAddresses,
  [in] ULONG_PTR  NumberOfPages,
  [in] PULONG_PTR PageArray
);

參數

[in] VirtualAddresses

要重新對應之內存區域起始位址陣列的指標。

VirtualAddresses 中的每個項目都必須在 VirtualAlloc 函式在配置 AWE (AWE) 區域的地址範圍內傳回。 NumberOfPages 中的值表示陣列的大小。 專案可以是多個位址視窗化延伸模組, (AWE) 區域。

[in] NumberOfPages

在頁面中建立翻譯的實體記憶體和虛擬位址空間大小。

VirtualAddresses 的陣列會指定虛擬位址範圍。

[in] PageArray

值的陣列指標,指出應該如何處理 VirtualAddresses 中的每個對應頁面。

0 (零) 表示 VirtualAddresses 中的對應項目應該未對應,而且任何應該對應的非零值。

如果此參數為 NULL,則會取消對應 VirtualAddresses 陣列中的每個位址。

NumberOfPages 中的值表示陣列的大小。

傳回值

如果函式成功,則傳回值為 TRUE

如果函式失敗,傳回值為 FALSE,而且函式不會對應或取消對應,否則為部分或取消對應。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

實體頁面可能未對應,但不會釋放它們。 您必須呼叫 FreeUserPhysicalPages 以釋放實體頁面。

您可以指定任意數目的實體記憶體分頁,但記憶體不能延伸到 VirtualAlloc 所配置的虛擬位址空間之外。 任何現有的位址對應都會以新的翻譯自動覆寫,而且舊的翻譯會取消對應。

您無法對應 AllocateUserPhysicalPages 中指定的範圍以外的物理記憶體頁面。 您可以同時對應多個區域,但無法重疊。

實體頁面可以位於任何實體位址,但不會假設實體頁面的連續性。

在多處理器環境中,此函式會維護硬體轉譯緩衝區的一致性。 從此函式傳回時,保證所有處理器上的所有線程都會看到正確的對應。

若要編譯使用此函式的應用程式,請將_WIN32_WINNT宏定義為0x0500或更新版本。 如需詳細資訊,請參閱 使用 Windows 標頭

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

位址視窗延伸模組

AllocateUserPhysicalPages

FreeUserPhysicalPages

MapUserPhysicalPages

記憶體管理功能