Compartilhar via


Método IHostMemoryManager::GetMemoryLoad

Obtém a quantidade de memória física que está em uso no momento e, portanto, indisponível, conforme relatado pelo host.

Sintaxe

HRESULT GetMemoryLoad (  
    [out] DWORD*  pMemoryLoad,
    [out] SIZE_T  *pAvailableBytes  
);  

Parâmetros

pMemoryLoad
[out] Um ponteiro para a porcentagem aproximada da memória física total que está em uso no momento.

pAvailableBytes
[out] Um ponteiro para o número de bytes disponíveis para o CLR (Common Language Runtime).

Valor Retornado

HRESULT Descrição
S_OK GetMemoryLoad retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado em um processo, ou o CLR está em um estado no qual não pode executar código gerenciado ou processar a chamada com êxito.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.

Comentários

GetMemoryLoad encapsula a função GlobalMemoryStatus Win32. O valor de pMemoryLoad é o equivalente do campo dwMemoryLoad na estrutura MEMORYSTATUS retornada de GlobalMemoryStatus.

O runtime usa o valor retornado como uma heurística para o coletor de lixo. Por exemplo, se o host relatar que a maioria da memória está em uso, o coletor de lixo poderá decidir coletar de várias gerações para aumentar a quantidade de memória que pode potencialmente ficar disponível.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também