IMetaDataInfo::GetFileMapping Method

Získá oblast paměti mapovaného souboru a typ mapování.

Syntax

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

Parameters

ppvData [ven] Ukazatel na začátek mapovaného souboru.

pcbData [ven] Velikost mapované oblasti. Pokud pdwMappingType ano fmFlat, jedná se o velikost souboru.

pdwMappingType [ven] Hodnota CorFileMapping , která označuje typ mapování. Aktuální implementace modulu CLR (Common Language Runtime) vždy vrátí fmFlat. Další hodnoty jsou vyhrazeny pro budoucí použití. Vrácenou hodnotu byste ale měli vždy ověřit, protože v budoucích verzích nebo vydaných verzích služeb mohou být povolené jiné hodnoty.

Return Value

HRESULT Description
S_OK Všechny výstupy jsou vyplněné.
E_INVALIDARG Hodnota NULL byla předána jako hodnota argumentu.
COR_E_NOTSUPPORTED Implementace CLR nemůže poskytnout informace o oblasti paměti. K tomu může dojít z následujících důvodů:

- Obor metadat byl otevřen s příznakem nebo ofCopyMemory příznakemofWrite.
- Obor metadat byl otevřen bez příznaku ofReadOnly .
- Metoda IMetaDataDispenser::OpenScopeOnMemory byla použita k otevření pouze části souboru metadat.
– Soubor není přenosný spustitelný soubor (PE). Poznámka: Tyto podmínky závisí na implementaci CLR a pravděpodobně budou v budoucích verzích CLR oslabovány.

Remarks

Paměť, na kterou odkazuje, je platná pouze za předpokladu, že ppvData je otevřený základní obor metadat.

Aby tato metoda fungovala, musíte při mapování metadat souboru na disku do paměti voláním metody IMetaDataDispenser::OpenScope zadat ofReadOnly příznak a nesmíte zadat ofWrite příznak ani ofCopyMemory příznak.

Volba typu mapování souborů pro každý obor je specifická pro danou implementaci CLR. Uživatel ho nemůže nastavit. Aktuální implementace CLR vždy vrací fmFlat , pdwMappingTypeale to se může změnit v budoucích verzích CLR nebo v budoucích verzích služby dané verze. Vrácenou hodnotu byste měli vždy zkontrolovat, pdwMappingTypeprotože různé typy budou mít různá rozložení a posuny.

Předání hodnoty NULL pro některý ze tří parametrů se nepodporuje. Metoda vrátí a E_INVALIDARGžádný z výstupů není vyplněn. Ignorování typu mapování nebo velikosti oblasti může vést k neobvyklému ukončení programu.

Requirements

Platformy: Viz podporované operační systémy .NET.

Header: Cor.h

Library: CorGuids.lib

Verze .NET: K dispozici od rozhraní .NET Framework 4.0

See also