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] 되돌릴 함수를 식별하는 (module
, methodDef
) 쌍의 moduleId
부분을 지정합니다.
methodIds
[in] 되돌릴 함수를 식별하는 (module
, methodDef
) 쌍의 methodId
부분을 지정합니다.
status
[out] 이 항목의 뒷부분에 있는 "상태 HRESULT" 섹션에 나열된 HRESULT 배열입니다. 각 HRESULT는 병렬 배열 moduleIds
및 methodIds
에 지정된 각 함수의 되돌리기 성공 또는 실패를 나타냅니다.
Return Value
이 메서드는 다음과 같은 특정 HRESULT뿐만 아니라 메서드 오류를 나타내는 HRESULT 오류도 반환합니다.
HRESULT | 설명 |
---|---|
S_OK | 모든 요청을 되돌리려고 했습니다. 그러나 반환된 상태 배열을 검사하여 성공적으로 되돌려진 함수를 확인해야 합니다. |
CORPROF_E_CALLBACK4_REQUIRED | 이 호출을 지원하려면 프로파일러가 ICorProfilerCallback4 인터페이스를 구현해야 합니다. |
CORPROF_E_REJIT_NOT_ENABLED | JIT 다시 컴파일이 사용하도록 설정되지 않았습니다. 초기화 중 ICorProfilerInfo::SetEventMask 메서드를 통해 JIT 다시 컴파일을 사용하도록 설정하여 COR_PRF_ENABLE_REJIT 플래그를 설정해야 합니다. |
E_INVALIDARG | cFunctions 가 0이거나 moduleIds 또는 methodIds 가 NULL 입니다. |
E_OUTOFMEMORY | 메모리 부족 때문에 CLR에서 요청을 완료하지 못했습니다. |
상태 HRESULTS
상태 배열 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부터 사용 가능
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET