IHostMemoryManager Interface
Provides methods that allow the common language runtime (CLR) to make virtual memory requests through the host, instead of using the standard Win32 virtual memory functions.
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
);
};
Methods
Method |
Description |
---|---|
Notifies the host that the common language runtime (CLR) has acquired the specified memory from the operating system. |
|
Gets an interface pointer to an IHostMAlloc instance that is used to request memory allocations from a heap created by the host. |
|
Gets the amount of physical memory that is currently being used, as reported by the host. |
|
Notifies the host that the CLR is going to attempt to use the specified memory. |
|
IHostMemoryManager::RegisterMemoryNotificationCallback Method |
Registers a pointer to a callback function that the host invokes to notify the CLR of the current memory load on the computer. |
Notifies the host that the CLR has finished using the specified memory. |
|
Serves as a logical wrapper for the corresponding Win32 function, which reserves or commits a region of pages in the virtual address space of the calling process. |
|
Serves as a logical wrapper for the corresponding Win32 function, which releases, decommits, or releases and decommits a region of pages within the virtual address space of the calling process. |
|
Serves as a logical wrapper for the corresponding Win32 function, which changes the protection on a region of committed pages in the virtual address space of the calling process. |
|
Serves as a logical wrapper for the corresponding Win32 function, which retrieves information about a range of pages in the virtual address space of the calling process. |
Remarks
IHostMemoryManager also provides methods for the CLR to obtain a pointer through which to make memory requests on the heap and to get the level of memory pressure in the process, as reported by the host.
Requirements
Platforms: Windows 2000, Windows XP, Windows Server 2003 family
Header: MSCorEE.idl
Library: Included as a resource in MSCorEE.dll
.NET Framework Version: 2.0