다음을 통해 공유


IHostMemoryManager::VirtualProtect 메서드

해당 Win32 함수의 논리 래퍼로 사용됩니다. VirtualProtect의 Win32 구현은 호출 프로세스의 가상 주소 공간에서 커밋된 페이지 영역에 대한 보호를 변경합니다.

HRESULT VirtualProtect (
    [in]  void*   lpAddress,
    [in]  SIZE_T  dwSize,
    [in]  DWORD   flNewProtect,
    [out] DWORD*  pflOldProtect
);

매개 변수

  • lpAddress
    [in] 보호 특성을 변경할 가상 메모리의 기준 주소에 대한 포인터입니다.

  • dwSize
    [in] 변경할 메모리 페이지 영역의 크기(바이트)입니다.

  • flNewProtect
    [in] 적용할 메모리 보호 형식입니다.

  • pflOldProtect
    [out] 이전 메모리 보호 값에 대한 포인터입니다.

반환 값

HRESULT

설명

S_OK

VirtualProtect에서 성공적으로 반환되었습니다.

HOST_E_CLRNOTAVAILABLE

CLR(공용 언어 런타임)이 프로세스에 로드되지 않았거나 관리 코드를 실행할 수 없는 상태 또는 호출을 처리할 수 없는 상태입니다.

HOST_E_TIMEOUT

호출 시간이 초과되었습니다.

HOST_E_NOT_OWNER

호출자가 잠금을 소유하고 있지 않습니다.

HOST_E_ABANDONED

차단된 스레드나 파이버가 기다리던 이벤트가 취소되었습니다.

E_FAIL

알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 프로세스에서 CLR을 더 이상 사용할 수 없습니다. 이후에 호스팅 메서드를 호출하면 HOST_E_CLRNOTAVAILABLE이 반환됩니다.

설명

이렇게 VirtualProtect를 구현하면 HRESULT 값이 반환되지만 Win 32 구현을 실행하면 작업이 성공할 경우 0이 아닌 값이 반환되고 실패할 경우 0이 반환됩니다. 자세한 내용은 Windows 플랫폼 설명서를 참조하십시오.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: MSCorEE.h

라이브러리: MSCorEE.dll에 리소스로 포함됨

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

참조

IHostMemoryManager 인터페이스