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


Метод 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 или параметра methodDefNULL.
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.

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