Dela via


IHostMemoryManager::VirtualAlloc-metod

Fungerar som en logisk omslutning för motsvarande Win32-funktion. Win32-implementeringen av VirtualAlloc reserver eller genomför en region med sidor i det virtuella adressutrymmet för samtalsprocessen.

Syntax

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

Parametrar

pAddress
[i] En pekare till startadressen för den region som ska allokeras.

dwSize
[i] Regionens storlek i byte.

flAllocationType
[i] Typ av minnesallokering.

flProtect
[i] Minnesskydd för den region med sidor som ska allokeras.

dwCriticalLevel
[i] Ett EMemoryCriticalLevel-värde som anger effekten av ett allokeringsfel.

ppMem
[ut] Pekare till startadressen för det allokerade minnet eller null om begäran inte kunde uppfyllas.

Returvärde

HRESULT Description
S_OK VirtualAlloc returnerades korrekt.
HOST_E_CLRNOTAVAILABLE CLR (Common Language Runtime) har inte lästs in i en process, eller så är CLR i ett tillstånd där den inte kan köra hanterad kod eller bearbeta anropet.
HOST_E_TIMEOUT Samtalets tidsgräns överst.
HOST_E_NOT_OWNER Anroparen äger inte låset.
HOST_E_ABANDONED En händelse avbröts medan en blockerad tråd eller fiber väntade på den.
E_FAIL Ett okänt oåterkalleligt fel inträffade. När en metod returnerar E_FAIL kan CLR inte längre användas i processen. Efterföljande anrop till värdmetoder returnerar HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Det fanns inte tillräckligt med minne för att slutföra allokeringsbegäran

Kommentarer

Du reserverar en region i adressutrymmet för din process genom att anropa VirtualAlloc. Parametern pAddress innehåller startadressen för det minnesblock som du vill ha. Den här parametern är vanligtvis inställd på null. Operativsystemet för en post med kostnadsfria adressintervall som är tillgängliga för din process. Värdet pAddress null instruerar systemet att reservera regionen var den vill. Du kan också ange en specifik startadress för minnesblocket. I båda fallen returneras utdataparametern ppMem som en pekare till det allokerade minnet. Själva funktionen returnerar ett HRESULT-värde.

Win32-funktionen VirtualAlloc har ppMem ingen parameter och returnerar pekaren till det allokerade minnet i stället. Mer information finns i Windows Platform-dokumentationen.

Krav

Plattformar: Se Systemkrav.

Huvudet: MSCorEE.h

Bibliotek: Ingår som en resurs i MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 2.0

Se även