Condividi tramite


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

Vedi anche