Sdílet prostřednictvím


IHostMemoryManager::VirtualAlloc – metoda

Slouží jako logická obálka pro odpovídající funkci Win32. Implementace VirtualAlloc Win32 vyhrazuje nebo potvrdí oblast stránek ve virtuálním adresním prostoru volajícího procesu.

Syntaxe

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

Parametry

pAddress
[v] Ukazatel na počáteční adresu oblasti, kterou chcete přidělit.

dwSize
[v] Velikost oblasti (v bajtech).

flAllocationType
[v] Typ přidělení paměti.

flProtect
[v] Ochrana paměti pro oblast stránek, které mají být přiděleny.

dwCriticalLevel
[v] EMemoryCriticalLevel Hodnota, která označuje dopad selhání přidělení.

ppMem
[out] Ukazatel na počáteční adresu přidělené paměti nebo hodnotu null, pokud požadavek nelze splnit.

Návratová hodnota

HRESULT Description
S_OK VirtualAlloc úspěšně vráceno.
HOST_E_CLRNOTAVAILABLE Modul CLR (Common Language Runtime) nebyl načten do procesu nebo je ve stavu, ve kterém nemůže spustit spravovaný kód nebo úspěšně zpracovat volání.
HOST_E_TIMEOUT Časový limit hovoru vypršel.
HOST_E_NOT_OWNER Volající zámek nevlastní.
HOST_E_ABANDONED Událost byla zrušena, zatímco na ni čekalo blokované vlákno nebo vlákno.
E_FAIL Došlo k neznámému závažnému selhání. Když metoda vrátí E_FAIL, clr již není možné v rámci procesu použít. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY K dokončení žádosti o přidělení nebyl k dispozici dostatek paměti.

Poznámky

Oblast v adresním prostoru procesu si zarezervujete voláním VirtualAllocmetody . Parametr pAddress obsahuje počáteční adresu požadovaného bloku paměti. Tento parametr je obvykle nastaven na hodnotu null. Operační systém uchovává záznamy o volných rozsazích adres, které jsou pro váš proces k dispozici. Hodnota pAddress null dává systému pokyn, aby si oblast rezervoval tam, kde to považuje za vhodné. Alternativně můžete zadat konkrétní počáteční adresu bloku paměti. V obou případech se výstupní parametr ppMem vrátí jako ukazatel na přidělenou paměť. Samotná funkce vrátí hodnotu HRESULT.

Funkce Win32 VirtualAlloc nemá ppMem parametr a místo toho vrací ukazatel na přidělenou paměť. Další informace najdete v dokumentaci k platformě Windows.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: MSCorEE.h

Knihovny: Zahrnutý jako prostředek v MSCorEE.dll

Verze rozhraní .NET Framework: K dispozici od verze 2.0

Viz také