Partilhar via


Método IHostMemoryManager::VirtualAlloc

Serve como um wrapper lógico para a função Win32 correspondente. A implementação win32 de VirtualAlloc reservas ou consolida uma região de páginas no espaço de endereços virtual do processo de chamada.

Sintaxe

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

Parâmetros

pAddress
[in] Um ponteiro para o endereço inicial da região a alocar.

dwSize
[in] O tamanho, em bytes, da região.

flAllocationType
[in] O tipo de alocação de memória.

flProtect
[in] Proteção de memória para a região das páginas a atribuir.

dwCriticalLevel
[in] Um valor EMemoryCriticalLevel que indica o impacto de uma falha de alocação.

ppMem
[fora] Ponteiro para o endereço inicial da memória alocada ou nulo se não for possível satisfazer o pedido.

Devolver Valor

HRESULT Description
S_OK VirtualAlloc devolvido com êxito.
HOST_E_CLRNOTAVAILABLE O runtime de linguagem comum (CLR) não foi carregado para um processo ou o CLR está num estado em que não pode executar código gerido ou processar a chamada com êxito.
HOST_E_TIMEOUT A chamada excedeu o limite de tempo.
HOST_E_NOT_OWNER O autor da chamada não é o proprietário do bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera.
E_FAIL Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Não estava disponível memória suficiente para concluir o pedido de alocação

Observações

Reserva uma região no espaço de endereços do seu processo ao chamar VirtualAlloc. O pAddress parâmetro contém o endereço inicial do bloco de memória pretendido. Normalmente, este parâmetro é definido como nulo. O sistema operativo mantém um registo de intervalos de endereços gratuitos disponíveis para o seu processo. Um pAddress valor de nulo instrui o sistema a reservar a região onde quer que se ajuste. Em alternativa, pode fornecer um endereço inicial específico para o bloco de memória. Em ambos os casos, o parâmetro ppMem de saída é devolvido como um ponteiro para a memória alocada. A função em si devolve um valor HRESULT.

A função Win32 VirtualAlloc não tem um ppMem parâmetro e devolve o ponteiro para a memória alocada. Para obter mais informações, consulte a documentação da Plataforma windows.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também