次の方法で共有


IHostMemoryManager

更新 : 2007 年 11 月

共通言語ランタイム (CLR: Common Language Runtime) が、標準の 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

その他の技術情報

ホスト インターフェイス