Fungsi AllocateUserPhysicalPagesNuma (memoryapi.h)
Mengalokasikan halaman memori fisik untuk dipetakan dan tidak dipetakan dalam wilayah Address Windowing Extensions (AWE) dari proses tertentu dan menentukan simpul NUMA untuk memori fisik.
Sintaks
BOOL AllocateUserPhysicalPagesNuma(
[in] HANDLE hProcess,
[in, out] PULONG_PTR NumberOfPages,
[out] PULONG_PTR PageArray,
[in] DWORD nndPreferred
);
Parameter
[in] hProcess
Handel ke proses.
Fungsi ini mengalokasikan memori yang nantinya dapat dipetakan dalam ruang alamat virtual proses ini. Handel harus memiliki hak akses PROCESS_VM_OPERATION . Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses.
[in, out] NumberOfPages
Ukuran memori fisik yang akan dialokasikan, di halaman.
Untuk menentukan ukuran halaman komputer, gunakan fungsi GetSystemInfo . Pada output, parameter ini menerima jumlah halaman yang benar-benar dialokasikan, yang mungkin kurang dari jumlah yang diminta.
[out] PageArray
Penunjuk ke array untuk menyimpan nomor bingkai halaman memori yang dialokasikan.
Ukuran array yang dialokasikan harus setidaknya NumberOfPages kali ukuran jenis data ULONG_PTR .
[in] nndPreferred
Simpul NUMA tempat memori fisik harus berada.
Menampilkan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Lebih sedikit halaman dari yang diminta dapat dialokasikan. Pemanggil harus memeriksa nilai parameter NumberOfPages saat kembali untuk melihat berapa banyak halaman yang dialokasikan. Semua nomor bingkai halaman yang dialokasikan ditempatkan secara berurutan dalam memori yang diarahkan oleh parameter PageArray .
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE dan tidak ada bingkai yang dialokasikan. Untuk mendapatkan informasi kesalahan yang diperluas, panggil fungsi GetLastError .
Keterangan
Fungsi AllocateUserPhysicalPagesNuma digunakan untuk mengalokasikan memori fisik dalam simpul NUMA yang nantinya dapat dipetakan dalam ruang alamat virtual proses. Hak istimewa SeLockMemoryPrivilege harus diaktifkan dalam token pemanggil atau fungsi akan gagal dengan ERROR_PRIVILEGE_NOT_HELD. Untuk informasi selengkapnya, lihat Privilege Constants.
Memori yang dialokasikan oleh fungsi ini harus ada secara fisik dalam sistem. Setelah memori dialokasikan, memori dikunci dan tidak tersedia untuk sistem manajemen memori virtual lainnya.
Halaman fisik tidak dapat dipetakan secara bersamaan di lebih dari satu alamat virtual.
Halaman fisik dapat berada di alamat fisik apa pun. Anda tidak boleh membuat asumsi tentang kedekatan halaman fisik.
Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0600 atau yang lebih baru.
Persyaratan
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | memoryapi.h (termasuk Windows.h, Memoryapi.h) |
Pustaka | onecore.lib |
DLL | Kernel32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk