Freigeben über


IMetaDataInfo::GetFileMapping-Methode

Ruft den Arbeitsspeicherbereich der zugeordneten Datei und den Typ der Zuordnung ab.

HRESULT GetFileMapping (
    [out] const void           **ppvData, 
    [out] ULONGLONG            *pcbData, 
    [out] DWORD                *pdwMappingType
);

Parameter

  • ppvData
    [out] Zeiger auf den Beginn der zugeordneten Datei

  • pcbData
    [out] Größe des zugeordneten Bereichs Wenn pdwMappingType auf fmFlat lautet, ist das die Größe der Datei.

  • pdwMappingType
    [out] CorFileMapping-Wert, der den Mappingtyp angibt. Die aktuelle Implementierung der Common Language Runtime (CLR) gibt immer fmFlat zurück. Weitere Werte sind für eine spätere Verwendung vorgesehen. Sie sollten jedoch immer den zurückgegebenen Wert überprüfen, da andere Werte möglicherweise in zukünftigen Versionen oder Dienstversionen aktiviert werden.

Rückgabewert

HRESULT

Beschreibungen

S_OK

Alle Ausgaben werden ausgefüllt.

E_INVALIDARG

NULL wurde als Argumentwert übergeben.

COR_E_NOTSUPPORTED

Die CLR-Implementierung kann keine Informationen über den Arbeitsspeicherbereich bereitstellen. Dies kann aus den folgenden Gründen geschehen:

  • Der Metadatenbereich wurde mit dem ofWrite-Flag oder dem ofCopyMemory-Flag geöffnet.

  • Der Metadatenbereich wurde ohne das ofReadOnly-Flag geöffnet.

  • Die IMetaDataDispenser::OpenScopeOnMemory-Methode wurde verwendet, um nur den Metadatenteil der Datei zu öffnen.

  • Die Datei ist keine portierbare ausführbare Datei.

HinweisHinweis
Diese Bedingungen hängen von der CLR-Implementierung ab und werden in zukünftigen Versionen der CLR wahrscheinlich abgeschwächt sein.

Hinweise

Der Arbeitsspeicher, auf den ppvData verweist, ist nur so lange gültig, wie der zugrunde liegende Metadatenbereich offen ist.

Wenn Sie die Metadaten einer Datei auf dem Datenträger im Arbeitsspeicher abbilden, indem Sie die IMetaDataDispenser::OpenScope-Methode aufrufen, müssen Sie das ofReadOnly-Flag angeben und dürfen Sie das ofWrite-Flag oder ofCopyMemory-Flag nicht angeben, da die Methode sonst nicht funktioniert.

Die Auswahl des Dateizuordnungstyps für jeden Bereich ist für eine gegebene Implementierung der CLR spezifisch. Kann nicht vom Benutzer festgelegt werden. Die aktuelle Implementierung der CLR gibt immer fmFlat in pdwMappingType zurück, aber dies kann sich in zukünftigen Versionen der CLR oder zukünftigen Dienstversionen einer bestimmten Version ändern. Sie sollten immer den zurückgegebenen Wert in pdwMappingType überprüfen, da verschiedene Typen unterschiedliche Layouts und Offsets haben.

Das Übergeben von NULL für irgendeinen der drei Parameter wird nicht unterstützt. Die Methode gibt E_INVALIDARG zurück, und keine der Ausgaben wird ausgefüllt. Das Ignorieren des Zuordnungstyps oder der Größe des Bereichs kann zu nicht normaler Programmbeendigung führen.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: Cor.h

Bibliothek: als Ressource in MsCorEE.dll verwendet

.NET Framework-Versionen: 4

Siehe auch

Weitere Ressourcen

IMetaDataInfo-Schnittstelle

CorFileMapping-Enumeration