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 .

Hati Jangan coba mengubah buffer ini. Ini berisi data sistem operasi, dan kerusakan bisa menjadi bencana. Informasi dalam buffer tidak berguna untuk aplikasi.
 

[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

Ekstensi Windowing Alamat

AllocateUserPhysicalPages

FreeUserPhysicalPages

Fungsi Manajemen Memori

Dukungan NUMA