Метод 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