更新 : 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
);
};
メソッド
メソッド |
説明 |
---|---|
CLR がオペレーティング システムから指定されたメモリを取得したことをホストに通知します。 |
|
ホストが作成したヒープからのメモリ割り当てを要求するために使用する IHostMAlloc インスタンスへのインターフェイス ポインタを取得します。 |
|
ホストから報告された、現在使用中の物理メモリの大きさを取得します。 |
|
指定したメモリを CLR が使用しようとしていることをホストに通知します。 |
|
コンピュータの現在のメモリ読み込みについて CLR に通知するためにホストが呼び出すコールバック関数へのポインタを登録します。 |
|
指定したメモリの使用を CLR が終了していることをホストに通知します。 |
|
対応する Win32 関数の論理ラッパーとして機能します。呼び出し元プロセスの仮想アドレス空間内のページ領域を予約またはコミットします。 |
|
対応する Win32 関数の論理ラッパーとして機能します。呼び出し元プロセスの仮想アドレス空間内のページの領域を解放、デコミット、または、解放およびデコミットします。 |
|
対応する Win32 関数の論理ラッパーとして機能します。呼び出し元プロセスの仮想アドレス空間内の、コミットされたページの領域に対する保護を変更します。 |
|
対応する 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