Поделиться через


Интерфейс IHostMemoryManager

Обновлен: Ноябрь 2007

Предоставляет методы, позволяющие среде CLR осуществлять запросы виртуальной памяти посредством основного приложения без использования стандартных функций виртуальной памяти для 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
        );
};

Методы

Метод

Описание

Метод IHostMemoryManager::AcquiredVirtualAddressSpace

Оповещает узел о том, что среда CLR получила указанную память от операционной системы.

Метод IHostMemoryManager::CreateMAlloc

Получает указатель интерфейса на экземпляр IHostMAlloc, используемый для запроса выделения памяти из кучи, созданной основным приложением.

Метод IHostMemoryManager::GetMemoryLoad

Получает количество физической памяти, которая, по данным основного приложения, используется в данный момент.

Метод IHostMemoryManager::NeedsVirtualAddressSpace

Уведомляет основное приложение о том, что среда CLR намерена предпринять попытку использования заданной памяти.

Метод IHostMemoryManager::RegisterMemoryNotificationCallback

Регистрирует указатель на функцию обратного вызова, которую основное приложение вызывает для уведомления среды CLR о текущей загрузке памяти в компьютере.

Метод IHostMemoryManager::ReleasedVirtualAddressSpace

Уведомляет основное приложение о том, что среда CLR завершила использование заданной памяти.

Метод IHostMemoryManager::VirtualAlloc

Служит логической программой-оболочкой для соответствующей функции Win32, которая резервирует или фиксирует диапазон страниц виртуального пространства адресов вызывающего процесса.

Метод IHostMemoryManager::VirtualFree

Служит логической программой-оболочкой для соответствующей функции Win32, которая освобождает, разблокирует или освобождает и разблокирует диапазон страниц в виртуальном пространстве адресов вызывающего процесса.

Метод IHostMemoryManager::VirtualProtect

Служит логической программой-оболочкой для соответствующей функции Win32, которая вносит изменения в защиту диапазона фиксированных страниц виртуального пространства адресов вызывающего процесса.

Метод IHostMemoryManager::VirtualQuery

Служит логической программой-оболочкой для соответствующей функции Win32, которая получает сведения о диапазоне страниц виртуального пространства адресов вызывающего процесса.

Заметки

Интерфейс IHostMemoryManager предоставляет также методы, позволяющие среде CLR получать указатель, посредством которого можно осуществлять запросы памяти в куче и получать уровень нехватки памяти в процессе, о котором сообщает процесс.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: MSCorEE.idl

Библиотека: включена как ресурс в MSCorEE.dll

Версии платформы .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

См. также

Ссылки

Интерфейс IHostMAlloc

Другие ресурсы

Интерфейсы размещения