Partilhar via


Interface IHostMemoryManager

Fornece métodos que permitem a Common linguagem tempo de execução (CLR) para fazer solicitações de memória virtual através do host, em vez de usar as funções de memória virtual do Win32 padrão.

interface IHostMemoryManager : IUnknown {

    HRESULT CreateMAlloc (
        [in]  BOOL    fThreadSafe,
        [out] IHostMalloc **ppMalloc
    );

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

    HRESULT VirtualFree (
        [in]  LPVOID  lpAddress,
        [in]  SIZE_T  dwSize,
        [in]  DWORD   dwFreeType
    );

    HRESULT VirtualQuery (
        [in]  void*   lpAddress,
        [out] void*   lpBuffer,
        [in]  SIZE_T  dwLength,
        [out] SIZE_T  *pResult
    );

    HRESULT VirtualProtect (
        [in]  void*   lpAddress,
        [in]  SIZE_T  dwSize,
        [in]  DWORD   flNewProtect,
        [out] DWORD*  pflOldProtect
    );

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

    HRESULT RegisterMemoryNotificationCallback (
        [in]  ICLRMemoryNotificationCallback* pCallback
    );

    HRESULT NeedsVirtualAddressSpace(
        [in]  LPVOID  startAddress,
        [in]  SIZE_T  size
        );

    HRESULT AcquiredVirtualAddressSpace(
        [in]  LPVOID  startAddress,
        [in]  SIZE_T  size
        );

    HRESULT ReleasedVirtualAddressSpace(
        [in]  LPVOID  startAddress
        );
};

Métodos

Método

Descrição

Método IHostMemoryManager::AcquiredVirtualAddressSpace

Notifica o host que o common linguagem tempo de execução (CLR) adquiriu a memória do sistema operacional especificada.

Método IHostMemoryManager::CreateMAlloc

Obtém um ponteiro de interface para um IHostMAlloc instância que é usada para solicitar as alocações de memória a partir de um heap criado pelo host.

Método IHostMemoryManager::GetMemoryLoad

Obtém a quantidade de memória física que está sendo usada no momento, sistema autônomo relatado pelo host.

Método IHostMemoryManager::NeedsVirtualAddressSpace

Notifica o host que o CLR irá tentar usar a memória especificada.

Método IHostMemoryManager::RegisterMemoryNotificationCallback

Registra um ponteiro para uma função de retorno de chamada que invoca o host para notificar o CLR da carga corrente de memória no computador.

Método IHostMemoryManager::ReleasedVirtualAddressSpace

Notifica o host que o CLR terminou de usar a memória especificada.

Método IHostMemoryManager::VirtualAlloc

Serve sistema autônomo um wrapper lógico para a função Win32 correspondente, que reservará ou confirma uma região de páginas no espaço de endereço virtual do processo de chamada.

Método IHostMemoryManager::VirtualFree

Serve sistema autônomo um wrapper lógico para a função Win32 correspondente, que versões, decommits, ou versões e decommits uma região de páginas dentro do espaço de endereço virtual do processo de chamada.

Método IHostMemoryManager::VirtualProtect

Serve sistema autônomo um wrapper lógico para a função Win32 correspondente, que altera a proteção em uma região de páginas comprometidas no espaço de endereço virtual do processo de chamada.

Método IHostMemoryManager::VirtualQuery

Serve sistema autônomo um wrapper lógico para a função Win32 correspondente, que recupera informações sobre um intervalo de páginas no espaço de endereço virtual do processo de chamada.

Comentários

IHostMemoryManager também fornece métodos para o CLR obter um ponteiro através do qual fazer solicitações de memória na pilha e obter o nível de pressão de memória do processo, conforme relatado pelo host.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: MSCorEE.idl

Biblioteca: Incluído sistema autônomo um recurso em MSCorEE.dll

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface IHostMAlloc

Outros recursos

Interfaces de hospedagem