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 VirtualAlloc
metody . 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