Dela via


IMetaDataInfo::GetFileMapping, metod

Hämtar minnesområdet för den mappade filen och typen av mappning.

Syntax

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

Parametrar

ppvData
[ut] En pekare till början av den mappade filen.

pcbData
[ut] Storleken på den mappade regionen. Om pdwMappingType är fmFlatär det här filens storlek.

pdwMappingType
[ut] Ett CorFileMapping-värde som anger typen av mappning. Den aktuella implementeringen av CLR (Common Language Runtime) returnerar fmFlatalltid . Andra värden är reserverade för framtida användning. Du bör dock alltid kontrollera det returnerade värdet eftersom andra värden kan vara aktiverade i framtida versioner eller tjänstversioner.

Returvärde

HRESULT Description
S_OK Alla utdata fylls i.
E_INVALIDARG NULL skickades som ett argumentvärde.
COR_E_NOTSUPPORTED CLR-implementeringen kan inte ge information om minnesregionen. Detta kan inträffa av följande skäl:

– Metadataomfånget ofWrite öppnades med flaggan eller ofCopyMemory .
– Metadataomfånget öppnades utan ofReadOnly flaggan .
– Metoden IMetaDataDispenser::OpenScopeOnMemory användes för att endast öppna metadatadelen av filen.
- Filen är inte en portabel körbar fil (PE). Observera: Dessa villkor beror på CLR-implementeringen och kommer sannolikt att försvagas i framtida versioner av CLR.

Kommentarer

Det minne som ppvData pekar på är endast giltigt så länge det underliggande metadataomfånget är öppet.

För att den här metoden ska fungera måste du ange ofReadOnly flaggan och du får inte ange ofWrite flaggan eller ofCopyMemory när du mappar metadata för en diskfil till minnet genom att anropa metoden IMetaDataDispenser::OpenScope.

Valet av filmappningstyp för varje omfång är specifikt för en viss implementering av CLR. Det kan inte anges av användaren. Den aktuella implementeringen av CLR returnerar fmFlat alltid i pdwMappingType, men detta kan ändras i framtida versioner av CLR eller i framtida tjänstversioner av en viss version. Du bör alltid kontrollera det returnerade värdet i pdwMappingType, eftersom olika typer har olika layouter och förskjutningar.

Det går inte att skicka NULL för någon av de tre parametrarna. Metoden returnerar E_INVALIDARG, och ingen av utdata fylls i. Om du ignorerar mappningstypen eller regionens storlek kan det leda till onormal programavslutning.

Krav

Plattformar: Se Systemkrav.

Huvudet: Cor.h

Bibliotek: Används som en resurs i MsCorEE.dll

.NET Framework versioner: Tillgänglig sedan 4

Se även