Methode IHostMemoryManager::VirtualAlloc
Fungeert als een logische wrapper voor de bijbehorende Win32-functie. De Win32-implementatie van VirtualAlloc
reserves of doorvoert een regio van pagina's in de virtuele adresruimte van het aanroepproces.
Syntaxis
HRESULT VirtualAlloc (
[in] void* pAddress,
[in] SIZE_T dwSize,
[in] DWORD flAllocationType,
[in] DWORD flProtect,
[in] EMemoryCriticalLevel dwCriticalLevel,
[out] void** ppMem
);
Parameters
pAddress
[in] Een verwijzing naar het beginadres van de regio die u wilt toewijzen.
dwSize
[in] De grootte, in bytes, van de regio.
flAllocationType
[in] Het type geheugentoewijzing.
flProtect
[in] Geheugenbeveiliging voor de regio van pagina's die moeten worden toegewezen.
dwCriticalLevel
[in] Een waarde van EMemoryCriticalLevel die de impact van een toewijzingsfout aangeeft.
ppMem
[uit] Aanwijzer naar het beginadres van het toegewezen geheugen of null als niet aan de aanvraag kan worden voldaan.
Retourwaarde
HRESULT | Beschrijving |
---|---|
S_OK | VirtualAlloc is geretourneerd. |
HOST_E_CLRNOTAVAILABLE | De Common Language Runtime (CLR) is niet geladen in een proces of de CLR bevindt zich in een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt. |
HOST_E_TIMEOUT | Er is een time-out opgetreden voor het gesprek. |
HOST_E_NOT_OWNER | De beller is niet de eigenaar van het vergrendelingsslot. |
HOST_E_ABANDONED | Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of vezel op wachtte. |
E_FAIL | Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | Er was onvoldoende geheugen beschikbaar om de toewijzingsaanvraag te voltooien |
Opmerkingen
U reserveert een regio in de adresruimte van uw proces door aan te roepen VirtualAlloc
. De pAddress
parameter bevat het beginadres van het gewenste geheugenblok. Deze parameter is doorgaans ingesteld op null. Het besturingssysteem houdt een record bij van vrije adresbereiken die beschikbaar zijn voor uw proces. Een pAddress
waarde van null instrueert het systeem om de regio te reserveren waar het passend vindt. U kunt ook een specifiek beginadres voor het geheugenblok opgeven. In beide gevallen wordt de uitvoerparameter ppMem
geretourneerd als een verwijzing naar het toegewezen geheugen. De functie zelf retourneert een HRESULT-waarde.
De functie Win32 VirtualAlloc
heeft ppMem
geen parameter en retourneert in plaats daarvan de aanwijzer naar het toegewezen geheugen. Zie de windows-platformdocumentatie voor meer informatie.
Vereisten
Platforms: Zie Systeemvereisten.
Header: MSCorEE.h
Bibliotheek: Opgenomen als een resource in MSCorEE.dll
.NET Framework versies: beschikbaar sinds 2.0