Método de IHostMemoryManager::VirtualAlloc
Serve como um wrapper lógico para a função correspondente do Win32. A implementação do Win32 de VirtualAlloc reserva ou confirma uma região de páginas no espaço de endereço virtual do processo de chamada.
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 para 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 de páginas a ser alocada.dwCriticalLevel
[in] Um EMemoryCriticalLevel valor que indica o impacto de uma falha de alocação.ppMem
[out] Ponteiro para o endereço inicial da memória alocada ou null se a solicitação não pôde ser atendida.
Valor de retorno
HRESULT |
Descrição |
---|---|
S_OK |
VirtualAllocretornado com êxito. |
HOST_E_CLRNOTAVAILABLE |
O common language runtime (CLR) não foi carregado em um processo ou o CLR é em um estado em que ele não é possível executar código gerenciado ou processar a chamada com êxito. |
HOST_E_TIMEOUT |
A chamada foi esgotado. |
HOST_E_NOT_OWNER |
O chamador não possui o bloqueio. |
HOST_E_ABANDONED |
Um evento foi cancelado, enquanto um segmento bloqueado ou fibra estava esperando por ele. |
E_FAIL |
Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é usável dentro do processo. As chamadas subseqüentes para hospedar os métodos retornam HOST_E_CLRNOTAVAILABLE. |
E_OUTOFMEMORY |
Não havia memória suficiente disponível para concluir a solicitação de alocação |
Comentários
Reservar uma região no espaço de endereço do seu processo, chamando VirtualAlloc. O pAddress parâmetro contém o início bloco de endereço da memória você desejar. Esse parâmetro normalmente é definido como null. O sistema operacional mantém um registro dos intervalos de endereço livre disponíveis para seu processo. A pAddress o valor null instrui o sistema para reservar a região onde quer que ele vê o ajuste. Como alternativa, você pode fornecer um endereço específico de partida para o bloco de memória. Em ambos os casos, o parâmetro de saída ppMem é retornado como um ponteiro para a memória alocada. A própria função retorna um valor HRESULT.
O Win32 VirtualAlloc a função não tem um ppMem parâmetro e retorna o ponteiro para a memória alocada em vez disso. Para obter mais informações, consulte a documentação da plataforma Windows.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso em mscoree
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0