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

Consulte também

Referência

Interface de IHostMemoryManager