IMetaDataInfo::GetFileMapping — Metoda
Pobiera region pamięci zamapowanego pliku i typ mapowania.
Składnia
HRESULT GetFileMapping (
[out] const void **ppvData,
[out] ULONGLONG *pcbData,
[out] DWORD *pdwMappingType
);
Parametry
ppvData
[out] Wskaźnik na początek zamapowanego pliku.
pcbData
[out] Rozmiar zamapowanego regionu. Jeśli pdwMappingType
jest to fmFlat
, jest to rozmiar pliku.
pdwMappingType
[out] Wartość CorFileMapping wskazująca typ mapowania. Bieżąca implementacja środowiska uruchomieniowego języka wspólnego (CLR) zawsze zwraca wartość fmFlat
. Inne wartości są zarezerwowane do użytku w przyszłości. Należy jednak zawsze zweryfikować zwróconą wartość, ponieważ inne wartości mogą być włączone w przyszłych wersjach lub wersjach usługi.
Wartość zwracana
HRESULT | Opis |
---|---|
S_OK |
Wszystkie dane wyjściowe są wypełnione. |
E_INVALIDARG |
Wartość NULL została przekazana jako wartość argumentu. |
COR_E_NOTSUPPORTED |
Implementacja środowiska CLR nie może dostarczyć informacji o regionie pamięci. Może się to zdarzyć z następujących powodów: — Zakres metadanych został otwarty z flagą ofWrite lub ofCopyMemory .— Zakres metadanych został otwarty bez flagi ofReadOnly .- Metoda IMetaDataDispenser::OpenScopeOnMemory została użyta do otwarcia tylko części metadanych pliku. — Plik nie jest przenośnym plikiem wykonywalnym (PE). Uwaga: Te warunki zależą od implementacji środowiska CLR i prawdopodobnie zostaną osłabione w przyszłych wersjach środowiska CLR. |
Uwagi
Pamięć, która ppvData
wskazuje, jest prawidłowa tylko tak długo, jak tylko podstawowy zakres metadanych jest otwarty.
Aby ta metoda działała, podczas mapowania metadanych pliku na dysk do pamięci przez wywołanie metody IMetaDataDispenser::OpenScope należy określić flagę i nie można określić ofReadOnly
flagi ofWrite
lub ofCopyMemory
.
Wybór typu mapowania plików dla każdego zakresu jest specyficzny dla danej implementacji środowiska CLR. Nie można go ustawić przez użytkownika. Bieżąca implementacja środowiska CLR zawsze zwraca wartość fmFlat
w pdwMappingType
systemie , ale może to ulec zmianie w przyszłych wersjach środowiska CLR lub w przyszłych wersjach usługi danej wersji. Zawsze należy sprawdzić zwróconą wartość w obiekcie pdwMappingType
, ponieważ różne typy będą miały różne układy i przesunięcia.
Przekazywanie wartości NULL dla żadnego z trzech parametrów nie jest obsługiwane. Metoda zwraca E_INVALIDARG
wartość , a żadne z danych wyjściowych nie są wypełnione. Ignorowanie typu mapowania lub rozmiar regionu może spowodować nieprawidłowe zakończenie programu.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: Cor.h
Biblioteki: Używane jako zasób w MsCorEE.dll
wersje .NET Framework: dostępne od 4