Sdílet prostřednictvím


IMetaDataInfo::GetFileMapping – metoda

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

Syntaxe

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

Parametry

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

pcbData
[out] Velikost mapované oblasti Pokud pdwMappingType je fmFlathodnota , jedná se o velikost souboru.

pdwMappingType
[out] A CorFileMapping hodnota, která označuje typ mapování. Aktuální implementace modulu CLR (Common Language Runtime) vždy vrací fmFlat. Jiné hodnoty jsou vyhrazeny pro budoucí použití. Měli byste ale vždy ověřit vrácenou hodnotu, protože v budoucích verzích nebo verzích služby mohou být povoleny jiné hodnoty.

Návratová hodnota

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 MODULUR 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 ofWrite nebo ofCopyMemory .
– Obor metadat byl otevřen bez příznaku ofReadOnly .
– Metoda IMetaDataDispenser::OpenScopeOnMemory byla použita k otevření pouze části souboru s metadaty.
– Soubor není přenosný spustitelný soubor (PE). Poznámka: Tyto podmínky závisí na implementaci MODULU CLR a v budoucích verzích clr se pravděpodobně oslabí.

Poznámky

Paměť, která ppvData odkazuje na, je platná pouze po dobu, kdy je otevřený podkladový obor metadat.

Aby tato metoda fungovala, když mapujete metadata souboru na disku do paměti voláním metody IMetaDataDispenser::OpenScope , musíte zadat ofReadOnly příznak a nesmíte zadat ofWrite příznak nebo ofCopyMemory .

Volba typu mapování souborů pro každý obor je specifická pro danou implementaci CLR. Uživatel ho nemůže nastavit. Aktuální implementace modulu CLR vždy vrací fmFlat v pdwMappingType, ale 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 v pdwMappingTypesouboru , protože různé typy budou mít různá rozložení a posuny.

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

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: Cor.h

Knihovny: Používá se jako prostředek v MsCorEE.dll

Verze rozhraní .NET Framework: K dispozici od 4

Viz také