Поделиться через


Метод 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 не может предоставить сведения о области памяти. Это может происходить по следующим причинам:

— метаданные область были открыты с флагом ofWrite или ofCopyMemory .
— метаданные область были открыты без флага ofReadOnly .
— Метод IMetaDataDispenser::OpenScopeOnMemory использовался для открытия только части метаданных файла.
— Файл не является переносимым исполняемым файлом (PE). Примечание: Эти условия зависят от реализации среды CLR и, скорее всего, будут ослаблены в будущих версиях среды CLR.

Комментарии

Память, указывающая на , действительна только при условии, ppvData что базовые метаданные область открыты.

Чтобы этот метод работал, при сопоставлении метаданных файла на диске с памятью путем вызова метода IMetaDataDispenser::OpenScope необходимо указать ofReadOnly флаг и не указывать ofWrite флаг или ofCopyMemory .

Выбор типа сопоставления файлов для каждого область зависит от конкретной реализации среды CLR. Пользователь не может задать его. Текущая реализация среды CLR всегда возвращается fmFlat в pdwMappingType, но это может измениться в будущих версиях среды CLR или в будущих выпусках служб данной версии. Всегда следует проверка возвращаемое значение в pdwMappingType, так как разные типы будут иметь разные макеты и смещения.

Передача null для любого из трех параметров не поддерживается. Метод возвращает E_INVALIDARG, и ни один из выходных данных не заполняется. Игнорирование типа сопоставления или размера региона может привести к аномальному завершению программы.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: Cor.h

Библиотека: Используется в качестве ресурса в MsCorEE.dll

версии платформа .NET Framework: доступно с 4

См. также раздел