Delen via


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

Zie ook