Метод IMetaDataInfo::GetFileMapping
Получает область памяти сопоставленных файлов и тип сопоставления.
HRESULT GetFileMapping (
[out] const void **ppvData,
[out] ULONGLONG *pcbData,
[out] DWORD *pdwMappingType
);
Параметры
ppvData
[out] Указатель на начало сопоставленного файла.pcbData
[out] Размер сопоставленной области. Если параметр pdwMappingType имеет значение fmFlat, то это размер файла.pdwMappingType
[out] Значение CorFileMapping, которое указывает тип сопоставления. Текущая реализация среды CLR всегда возвращает fmFlat. Другие значения зарезервированы для использования в будущем. Однако всегда следует проверять возвращаемое значение, поскольку другие значения могут быть включены в будущих версиях или в наборах исправлений.
Возвращаемое значение
HRESULT |
Описание |
---|---|
S_OK |
Все выходные данные заполняются. |
E_INVALIDARG |
Значение NULL передано в качестве значения аргумента. |
COR_E_NOTSUPPORTED |
Реализация среды CLR не может предоставить сведения об области памяти. Это может произойти по следующим причинам:
Примечание
Эти условия зависят от реализации среды CLR и, скорее всего, будут смягчены в будущих версиях среды CLR.
|
Заметки
Память, на которую указывает ppvData, действительна только до тех пор, пока открыта базовая область действия метаданных.
Чтобы данный метод работал, при сопоставлении метаданных файла на диске с памятью путем вызова метода IMetaDataDispenser::OpenScope необходимо указать флаг ofReadOnly, а флаги ofWrite и ofCopyMemory указывать не следует.
Выбор типа сопоставления файлов для каждой области относится только к заданной реализации среды CLR. Не может быть задано пользователем. Текущая реализация среды CLR всегда возвращает fmFlat в pdwMappingType, но это может измениться в будущих версиях среды CLR или в наборе исправлений данной версии. Следует всегда проверять возвращаемое значение в pdwMappingType, поскольку разные типы будут иметь различные макеты и смещения.
Передача значения NULL для любого из этих трех параметров не поддерживается. Метод возвращает E_INVALIDARG, и ни один из выходных файлов не заполняется. Игнорирование типа сопоставления или размера области может привести к аномальному завершению программы.
Требования
Платформы: см. раздел Требования к системе для .NET Framework.
Заголовок: Cor.h
Библиотека: используется как ресурс в MsCorEE.dll
Версии платформы .NET Framework: 4