Condividi tramite


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

Vedere anche

Riferimenti

Interfaccia IHostMemoryManager