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