Fungsi MapUserPhysicalPagesScatter (winbase.h)

Peta halaman memori fisik yang dialokasikan sebelumnya pada alamat tertentu di wilayah Address Windowing Extensions (AWE).

Windows 64-bit pada sistem berbasis Itanium: Karena perbedaan ukuran halaman, MapUserPhysicalPagesScatter tidak didukung untuk aplikasi 32-bit.

Sintaks

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

Parameter

[in] VirtualAddresses

Penunjuk ke array alamat awal wilayah memori yang akan di-remap.

Setiap entri di VirtualAddresses harus berada dalam rentang alamat yang dikembalikan fungsi VirtualAlloc saat wilayah Address Windowing Extensions (AWE) dialokasikan. Nilai dalam NumberOfPages menunjukkan ukuran array. Entri dapat berasal dari beberapa wilayah Address Windowing Extensions (AWE).

[in] NumberOfPages

Ukuran memori fisik dan ruang alamat virtual untuk membuat terjemahan, di halaman.

Array di VirtualAddresses menentukan rentang alamat virtual.

[in] PageArray

Penunjuk ke array nilai yang menunjukkan bagaimana setiap halaman terkait di VirtualAddresses harus diperlakukan.

0 (nol) menunjukkan bahwa entri yang sesuai di VirtualAddresses harus tidak dipetakan, dan nilai bukan nol apa pun yang harus dipetakan.

Jika parameter ini NULL, maka setiap alamat dalam array VirtualAddresses tidak dipetakan.

Nilai dalam NumberOfPages menunjukkan ukuran array.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE, dan fungsi tidak memetakan atau membatalkan peta—parsial atau sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Halaman fisik mungkin tidak dipetakan, tetapi tidak dibebaskan. Anda harus memanggil FreeUserPhysicalPages untuk membebaskan halaman fisik.

Anda dapat menentukan sejumlah halaman memori fisik, tetapi memori tidak dapat meluas di luar ruang alamat virtual yang dialokasikan oleh VirtualAlloc. Setiap peta alamat yang ada secara otomatis ditimpa dengan terjemahan baru, dan terjemahan lama tidak dipetakan.

Anda tidak dapat memetakan halaman memori fisik di luar rentang yang ditentukan dalam AllocateUserPhysicalPages. Anda dapat memetakan beberapa wilayah secara bersamaan, tetapi tidak dapat tumpang tindih.

Halaman fisik dapat ditemukan di alamat fisik apa pun, tetapi jangan membuat asumsi tentang kesamaan halaman fisik.

Dalam lingkungan multiprosem, fungsi ini mempertahankan koherensi buffer terjemahan perangkat keras. Saat kembali dari fungsi ini, semua utas pada semua prosesor dijamin untuk melihat pemetaan yang benar.

Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan makro _WIN32_WINNT sebagai 0x0500 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Ekstensi Windowing Alamat

AllocateUserPhysicalPages

FreeUserPhysicalPages

MapUserPhysicalPages

Fungsi Manajemen Memori