Metodo IHostMemoryManager::VirtualAlloc
Funge da wrapper logico per la funzione Win32 corrispondente. L'implementazione Win32 di VirtualAlloc
riserva o esegue il commit di un'area di pagine nello spazio degli indirizzi virtuali del processo chiamante.
Sintassi
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 di memoria.
flProtect
[in] Protezione della memoria per l'area delle pagine da allocare.
dwCriticalLevel
[in] Valore EMemoryCriticalLevel che indica l'impatto di un errore di allocazione.
ppMem
[out] Puntatore all'indirizzo iniziale della memoria allocata oppure Null se la richiesta non è stata soddisfatta.
Valore restituito
HRESULT | Descrizione |
---|---|
S_OK | VirtualAlloc restituito correttamente. |
HOST_E_CLRNOTAVAILABLE | Common Language Runtime (CLR) non è stato caricato in un processo oppure CLR si trova in uno stato in cui non è possibile eseguire codice gestito o elaborare correttamente la chiamata. |
HOST_E_TIMEOUT | Timeout della chiamata. |
HOST_E_NOT_OWNER | Il chiamante non possiede il blocco. |
HOST_E_ABANDONED | Un evento è stato annullato durante l'attesa di un thread o di una fibra bloccata. |
E_FAIL | Si è verificato un errore irreversibile sconosciuto. Quando un metodo restituisce E_FAIL, CLR non è più utilizzabile all'interno del processo. Le chiamate successive ai metodi di hosting restituiscono HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY | Memoria insufficiente per completare la richiesta di allocazione |
Commenti
Si riserva un'area nello spazio indirizzi del processo chiamando VirtualAlloc
. Il pAddress
parametro contiene l'indirizzo iniziale del blocco di memoria desiderato. Questo parametro è in genere impostato su Null. Il sistema operativo mantiene un record di intervalli di indirizzi gratuiti disponibili per il processo. Un pAddress
valore null indica al sistema di riservare l'area in qualsiasi posizione in cui si adatta. In alternativa, è possibile specificare un indirizzo iniziale specifico per il blocco di memoria. In entrambi i casi, il parametro ppMem
di output viene restituito come puntatore alla memoria allocata. La funzione stessa restituisce un valore HRESULT.
La funzione Win32 VirtualAlloc
non ha un ppMem
parametro e restituisce invece il puntatore alla memoria allocata. Per altre informazioni, vedere la documentazione della piattaforma Windows.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: MSCorEE.h
Libreria: Incluso come risorsa in MSCorEE.dll
Versioni di .NET Framework: Disponibile dalla versione 2.0