Share via


IHostMemoryManager

Aktualisiert: November 2007

Stellt Methoden bereit, die der Common Language Runtime (CLR) das Anfordern von virtuellem Arbeitsspeicher über den Host anstatt mit den normalen Win32-Funktionen für virtuellen Arbeitsspeicher ermöglichen.

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
        );
};

Methoden

Methode

Beschreibung

IHostMemoryManager::AcquiredVirtualAddressSpace-Methode

Benachrichtigt den Host, dass die Common Language Runtime (CLR) den angegebenen Arbeitsspeicher vom Betriebssystem erhalten hat.

IHostMemoryManager::CreateMAlloc-Methode

Ruft einen Schnittstellenzeiger auf eine IHostMAlloc-Instanz ab, mit der Speicherreservierungen von einem Heap angefordert werden, der vom Host erstellt wurde.

IHostMemoryManager::GetMemoryLoad-Methode

Ruft die Größe des momentan verwendeten physischen Arbeitsspeichers ab, die vom Host gemeldet wurde.

IHostMemoryManager::NeedsVirtualAddressSpace-Methode

Benachrichtigt den Host, dass die CLR versucht, den angegebenen Arbeitsspeicher zu verwenden.

IHostMemoryManager::RegisterMemoryNotificationCallback-Methode

Registriert einen Zeiger auf eine Rückruffunktion, die der Host aufruft, um die CLR über die aktuelle Speicherauslastung auf dem Computer zu benachrichtigen.

IHostMemoryManager::ReleasedVirtualAddressSpace-Methode

Benachrichtigt den Host, dass die CLR den angegebenen Arbeitsspeicher nicht mehr verwendet.

IHostMemoryManager::VirtualAlloc-Methode

Dient als logischer Wrapper für die entsprechende Win32-Funktion, die einen Bereich von Seiten innerhalb des virtuellen Adressraums des aufrufenden Prozesses reserviert oder ein Commit dafür durchgeführt.

IHostMemoryManager::VirtualFree-Methode

Dient als logischer Wrapper für die entsprechende Win32-Funktion, die einen Bereich von Seiten innerhalb des virtuellen Adressraums des aufrufenden Prozesses freigibt und/oder ein Decommit dafür durchgeführt.

IHostMemoryManager::VirtualProtect-Methode

Dient als logischer Wrapper für die entsprechende Win32-Funktion, die den Schutz für einen Bereich von Seiten im virtuellen Adressraum des aufrufenden Prozesses, für die ein Commit durchgeführt wurde, ändert.

IHostMemoryManager::VirtualQuery-Methode

Dient als logischer Wrapper für die entsprechende Win32-Funktion, die Informationen über einen Bereich von Seiten innerhalb des virtuellen Adressraums des aufrufenden Prozesses abruft.

Hinweise

IHostMemoryManager stellt auch Methoden bereit, mit denen die CLR einen Zeiger abrufen kann, über den Speicheranforderungen an den Heap durchgeführt und das Ausmaß des Speicherdrucks im Prozess abgerufen werden können, der vom Host gemeldet wird.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: MSCorEE.idl

Bibliothek: als Ressource in MSCorEE.dll enthalten

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

IHostMAlloc

Weitere Ressourcen

Hostingschnittstellen