Метод ICorProfilerInfo4::RequestRevert
Восстанавливает исходные версии всех экземпляров указанных функций.
Синтаксис
HRESULT RequestRevert (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[],
[out, size_is(cFunctions)] HRESULT status[]);
Параметры
cFunctions
[in] Число функций для восстановления.
moduleIds
[in] Указывает часть moduleId
пар (module
, methodDef
), которые идентифицируют восстанавливаемые функции.
methodIds
[in] Указывает часть methodId
пар (module
, methodDef
), которые идентифицируют восстанавливаемые функции.
status
[out] Массив значений HRESULT, перечисленных в разделе «Значения HRESULT для состояния» далее в этом разделе. Каждое значение HRESULT указывает успех или сбой попытки восстановления исходного состояния каждой функции, указанной в параллельных массивах moduleIds
и methodIds
.
Возвращаемое значение
Этот метод возвращает следующие конкретные результаты HRESULT, а также ошибки HRESULT, которые указывают на сбой метода.
HRESULT | Описание: |
---|---|
S_OK | Была предпринята попытка восстановления исходного состояния всех запросов; однако необходимо проверить массив возвращенных состояний, чтобы определить, какие функции были успешно восстановлены. |
CORPROF_E_CALLBACK4_REQUIRED | Для поддержки этого вызова профилировщик должен реализовать интерфейс ICorProfilerCallback4 . |
CORPROF_E_REJIT_NOT_ENABLED | Перекомпиляция JIT не была включена. Чтобы задать COR_PRF_ENABLE_REJIT флаг, необходимо включить JIT-перекомпиляцию во время инициализации с помощью метода ICorProfilerInfo::SetEventMask. |
E_INVALIDARG | Параметр cFunctions имеет значение 0, либо один из параметров moduleIds и methodIds имеет значение NULL . |
E_OUTOFMEMORY | Среде CLR не удалось выполнить запрос, поскольку не хватило памяти. |
Значения HRESULT для состояния
Массив значений HRESULT для состояния | Описание: |
---|---|
S_OK | Соответствующая функция была успешно возвращена. |
E_INVALIDARG | Значение параметра moduleID или параметра methodDef — NULL . |
CORPROF_E_DATAINCOMPLETE | Модуль еще не полностью загружен или находится в процессе выгрузки. |
CORPROF_E_MODULE_IS_DYNAMIC | Указанный модуль был создан динамически (например, с помощью Reflection.Emit ). Поэтому он не поддерживается данным методом. |
CORPROF_E_ACTIVE_REJIT_REQUEST_NOT_FOUND | Среде CLR не удалось восстановить исходное состояние указанной функции, так как не найден соответствующий активный запрос перекомпиляции. Либо эта перекомпиляция никогда не запрашивалась, либо функция уже была восстановлена. |
Другое | Операционная система возвратила сбой за пределами среды CLR. Например, в случае сбоя системного вызова изменения защиты доступа к странице памяти будет отображаться ошибка операционной системы. |
Комментарии
При следующем вызове любого из возвращенных экземпляров функции будут запущены исходные версии функций. Если функция уже выполняется, то будет завершено выполнение запущенной версии.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 4.5.