Bagikan melalui


Metode IHostMemoryManager::VirtualAlloc

Berfungsi sebagai pembungkus logis untuk fungsi Win32 yang sesuai. Implementasi Win32 dari cadangan VirtualAlloc atau menerapkan wilayah halaman di ruang alamat virtual dari proses panggilan.

Sintaks

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

Parameter

pAddress
[in] Penunjuk ke alamat awal wilayah untuk dialokasikan.

dwSize
[in] Ukuran wilayah tersebut dalam byte.

flAllocationType
[in] Jenis alokasi memori.

flProtect
[in] Perlindungan memori untuk wilayah halaman yang akan dialokasikan.

dwCriticalLevel
[in] Nilai EMemoryCriticalLevel yang menunjukkan dampak kegagalan alokasi.

ppMem
[out] Penunjuk ke alamat awal memori yang dialokasikan atau null jika permintaan tidak dapat dipenuhi.

Tampilkan Nilai

HRESULT Deskripsi
S_OK VirtualAlloc berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE Runtime bahasa umum (CLR) belum dimuat ke dalam proses, atau CLR berada dalam status yang tidak dapat menjalankan kode terkelola atau tidak berhasil memproses panggilan.
HOST_E_TIMEOUT Waktu panggilan habis.
HOST_E_NOT_OWNER Pemanggil tidak memiliki kunci.
HOST_E_ABANDONED Peristiwa dibatalkan saat rangkaian atau fiber yang diblokir sedang menunggunya.
E_FAIL Kegagalan katastrofe yang tidak diketahui terjadi. Saat metode menampilkan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting menampilkan HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Memori yang tersedia tidak cukup untuk menyelesaikan permintaan alokasi

Keterangan

Anda memesan wilayah di ruang alamat proses Anda dengan memanggil VirtualAlloc. Parameter pAddress berisi alamat awal blok memori yang Anda inginkan. Parameter ini biasanya diatur ke null. Sistem operasi menyimpan rekaman rentang alamat gratis yang tersedia untuk proses Anda. Nilai null pAddress menginstruksikan sistem untuk memesan wilayah di mana pun yang cocok. Atau, Anda dapat memberikan alamat awal tertentu untuk blok memori. Dalam kedua kasus, parameter output ppMem dikembalikan sebagai penunjuk ke memori yang dialokasikan. Fungsi itu sendiri mengembalikan nilai HRESULT.

Fungsi Win32 VirtualAlloc tidak memiliki parameter ppMem dan mengembalikan penunjuk ke memori yang dialokasikan sebagai gantinya. Untuk informasi selengkapnya, lihat dokumentasi Windows Platform.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga