Compartir a través de


IHostMemoryManager

Actualización: noviembre 2007

Proporciona métodos que permiten a Common Language Runtime (CLR) realizar solicitudes de memoria virtual a través del host en lugar de utilizar las funciones estándar de memoria virtual de Win32.

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

Descripción

IHostMemoryManager::AcquiredVirtualAddressSpace (Método)

Notifica al host que Common Language Runtime (CLR) ha adquirido la memoria especificada del sistema operativo.

IHostMemoryManager::CreateMAlloc (Método)

Obtiene un puntero de interfaz a una instancia de IHostMAlloc utilizada para solicitar asignaciones de memoria desde un montón creado por el host.

IHostMemoryManager::GetMemoryLoad (Método)

Obtiene la cantidad de memoria física que se está utilizando, tal como informa el host.

IHostMemoryManager::NeedsVirtualAddressSpace (Método)

Notifica al host que CLR va a intentar utilizar la memoria especificada.

IHostMemoryManager::RegisterMemoryNotificationCallback (Método)

Registra un puntero a una función de devolución de llamada que el host invoca para notificar a CLR la carga de memoria actual del equipo.

IHostMemoryManager::ReleasedVirtualAddressSpace (Método)

Notifica al host que CLR ha terminado de utilizar la memoria especificada.

IHostMemoryManager::VirtualAlloc (Método)

Actúa como contenedor lógico para la función de Win32 correspondiente, que reserva o confirma una región de páginas en el espacio virtual de direcciones del proceso de llamada.

IHostMemoryManager::VirtualFree (Método)

Actúa como un contenedor lógico para la función de Win32 correspondiente que libera, anula, o libera y anula una región de páginas dentro del espacio virtual de direcciones del proceso de llamada.

IHostMemoryManager::VirtualProtect (Método)

Actúa como contenedor lógico para la función de Win32 correspondiente, que cambia la protección de una región de páginas confirmadas en el espacio virtual de direcciones del proceso de llamada.

IHostMemoryManager::VirtualQuery (Método)

Actúa como contenedor lógico para la función de Win32 correspondiente, que recupera información sobre una región de páginas del espacio virtual de direcciones del proceso de llamada.

Comentarios

IHostMemoryManager también proporciona los métodos necesarios para que CLR obtenga un puntero a través del cual puede presentar solicitudes de memoria en el montón y obtener el nivel de necesidad de memoria en el proceso, tal como informa el host.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: MSCorEE.idl

Biblioteca: se incluye como recurso en MsCorEE.dll

Versiones de .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

IHostMAlloc

Otros recursos

Interfaces de hospedaje