Metodo IHostMemoryManager::VirtualAlloc
Funziona come wrapper logico per la funzione Win32 corrispondente. L'implementazione Win32 della funzione VirtualAlloc riserva o esegue il commit di una regione di pagine nello spazio di indirizzi virtuali del processo chiamante.
HRESULT VirtualAlloc (
[in] void* pAddress,
[in] SIZE_T dwSize,
[in] DWORD flAllocationType,
[in] DWORD flProtect,
[in] EMemoryCriticalLevel dwCriticalLevel,
[out] void** ppMem
);
Parametri
pAddress
[in] Puntatore all'indirizzo iniziale dell'area da allocare.dwSize
[in] Dimensione in byte dell'area.flAllocationType
[in] Tipo di allocazione della memoria.flProtect
[in] Protezione della memoria per l'area di pagine da allocare.dwCriticalLevel
[in] Valore di EMemoryCriticalLevel che indica l'impatto di un errore di allocazione.ppMem
[out] Puntatore all'indirizzo iniziale della memoria allocata oppure null se non è stato possibile soddisfare la richiesta.
Valore restituito
HRESULT |
Oggetto di descrizione |
---|---|
S_OK |
VirtualAlloc ha restituito correttamente un valore. |
HOST_E_CLRNOTAVAILABLE |
Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata. |
HOST_E_TIMEOUT |
Timeout della chiamata. |
HOST_E_NOT_OWNER |
Il chiamante non è il proprietario del blocco. |
HOST_E_ABANDONED |
Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento. |
E_FAIL |
Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY |
Memoria insufficiente per completare la richiesta di allocazione. |
Note
È possibile riservare un'area nello spazio di indirizzi del processo chiamando la funzione VirtualAlloc. Il parametro pAddress contiene l'indirizzo iniziale del blocco di memoria richiesto. Questo parametro è in genere impostato su null. Nel sistema operativo viene conservato un record degli intervalli di indirizzi liberi disponibili per il processo. Il valore pAddress di null indica al sistema di riservare l'area ove opportuno. In alternativa, è possibile fornire un indirizzo iniziale specifico per il blocco di memoria. In entrambi casi, il parametro di output ppMem viene restituito come puntatore alla memoria allocata. La funzione stessa restituisce il valore HRESULT.
La funzione Win32 VirtualAlloc non include un parametro ppMem e restituisce invece il puntatore alla memoria allocata. Per ulteriori informazioni, vedere la documentazione relativa alla piattaforma Windows.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: MSCorEE.h
Libreria: inclusa come risorsa in MSCorEE.dll
Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0