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