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는 병렬 배열 moduleIdsmethodIds에 지정된 각 함수의 되돌리기 성공 또는 실패를 나타냅니다.

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 또는 methodIdsNULL입니다.
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부터 사용 가능

참고 항목