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 fmFlat
alltid . 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