Teilen über


IMetaDataInfo::GetFileMapping-Methode

Hiermit werden der Speicherbereich der zugeordneten Datei und der Typ der Zuordnung abgerufen.

Syntax

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

Parameter

ppvData
[out] Ein Zeiger auf den Anfang der zugeordneten Datei.

pcbData
[out] Die Größe des zugeordneten Bereichs. Wenn pdwMappingType den Wert fmFlat aufweist, ist dies die Größe der Datei.

pdwMappingType
[out] Ein CorFileMapping-Wert, der den Typ der Zuordnung angibt. Die aktuelle Implementierung der Common Language Runtime (CLR) gibt immer fmFlat zurück. Andere Werte sind für die zukünftige Verwendung reserviert. Sie sollten jedoch immer den zurückgegebenen Wert überprüfen, da in zukünftigen Versionen oder Dienstreleases andere Werte aktiviert sein können.

Rückgabewert

HRESULT BESCHREIBUNG
S_OK Alle Ausgaben werden ausgefüllt.
E_INVALIDARG NULL wurde als Argumentwert übergeben.
COR_E_NOTSUPPORTED Die CLR-Implementierung kann keine Informationen zum Speicherbereich bereitstellen. Dies kann aus 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 (Portable Executable, PE). Hinweis: Diese Bedingungen hängen von der CLR-Implementierung ab und werden wahrscheinlich in zukünftigen Versionen der CLR abgeschwächt.

Bemerkungen

Der Arbeitsspeicher, auf den ppvData verweist, ist nur gültig, solange der zugrunde liegende Metadatenbereich geöffnet ist.

Damit diese Methode funktioniert, müssen Sie bei Verwendung der IMetaDataDispenser::OpenScope-Methode zum Zuordnen der Metadaten einer Datei auf dem Datenträger zum Arbeitsspeicher das Flag ofReadOnly, aber nicht die Flags ofWrite und ofCopyMemory angeben.

Die Auswahl des Dateizuordnungstyps für die einzelnen Bereiche ist spezifisch für eine bestimmte Implementierung der CLR. Sie kann von Benutzer*innen nicht festgelegt werden. Die aktuelle Implementierung der CLR gibt in pdwMappingType immer fmFlat zurück, aber dies kann sich in zukünftigen Versionen der CLR oder in zukünftigen Dienstversionen einer bestimmten Version ändern. Sie sollten immer den zurückgegebenen Wert in pdwMappingType überprüfen, da unterschiedliche Typen unterschiedliche Layouts und Offsets aufweisen.

Das Übergeben von NULL für einen 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 einer vorzeitigen Beendigung des Programms führen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: Cor.h

Bibliothek: Als Ressource in „MsCorEE.dll“ verwendet

.NET Framework-Versionen: Seit Version 4 verfügbar

Siehe auch