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