Fungsi AllocateUserPhysicalPages2 (memoryapi.h)

Mengalokasikan halaman memori fisik untuk dipetakan dan tidak dipetakan dalam wilayah Address Windowing Extensions (AWE) dari proses tertentu, dengan parameter yang diperluas.

Sintaks

BOOL AllocateUserPhysicalPages2(
  [in]     HANDLE                  ObjectHandle,
  [in,out] PULONG_PTR              NumberOfPages,
  [out]    PULONG_PTR              PageArray,
  [in,out] PMEM_EXTENDED_PARAMETER ExtendedParameters,
  [in]     ULONG                   ExtendedParameterCount
);

Parameter

[in] ObjectHandle

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 .

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

[in,out] ExtendedParameters

Penunjuk ke array struktur MEM_EXTENDED_PARAMETER .

[in] ExtendedParameterCount

Jumlah MEM_EXTENDED_PARAMETER dalam array ExtendedParameters .

Nilai kembali

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 UserPfnArray .

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE, dan tidak ada bingkai yang dialokasikan. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

AllocateUserPhysicalPages2 sama dengan AllocateUserPhysicalPages tetapi menambahkan parameter ExtendedParameters dan ExtendedParameterCount .

Fungsi AllocateUserPhysicalPages2 digunakan untuk mengalokasikan memori fisik 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.

Persyaratan

   
Klien minimum yang didukung Windows 11, Build 20348
Server minimum yang didukung Windows Server, Build 20348
Header memoryapi.h
Pustaka onecore.lib
DLL kernelbase.dll

Lihat juga

AllocateUserPhysicalPages

Ekstensi Windowing Alamat

AllocateUserPhysicalPagesNuma

FreeUserPhysicalPages

MapUserPhysicalPages

MapUserPhysicalPagesScatter

Fungsi Manajemen Memori