다음을 통해 공유


IHostMemoryManager::VirtualQuery 메서드

해당 Win32 함수의 논리 래퍼로 사용됩니다. VirtualQuery의 Win32 구현은 호출 프로세스의 가상 주소 공간에서 페이지 범위에 대한 정보를 검색합니다.

HRESULT VirtualQuery (
    [in]  void*    lpAddress,
    [out] void*    lpBuffer,
    [in]  SIZE_T   dwLength,
    [out] SIZE_T*  pResult
);

매개 변수

  • lpAddress
    [in] 쿼리할 가상 메모리의 주소에 대한 포인터입니다.

  • lpBuffer
    [out] 지정한 메모리 영역의 정보가 포함된 구조체에 대한 포인터입니다.

  • dwLength
    [in] lpBuffer가 가리키는 버퍼의 크기(바이트)입니다.

  • pResult
    [out] 정보 버퍼에서 반환된 바이트 수에 대한 포인터입니다.

반환 값

HRESULT

설명

S_OK

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

HOST_E_CLRNOTAVAILABLE

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

HOST_E_TIMEOUT

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

HOST_E_NOT_OWNER

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

HOST_E_ABANDONED

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

E_FAIL

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

설명

VirtualQuery는 호출 프로세스의 가상 주소 공간에서 페이지 범위에 대한 정보를 제공합니다. 이 구현을 통해 pResult 매개 변수의 값은 정보 버퍼에서 반환되는 바이트 수로 설정되고 HRESULT 값이 반환됩니다. Win32 VirtualQuery 함수에서 반환 값은 버퍼 크기입니다. 자세한 내용은 Windows 플랫폼 설명서를 참조하십시오.

중요중요

운영 체제에서 VirtualQuery를 구현하면 교착 상태가 발생하지 않으며 사용자 코드에서 임의의 스레드가 일시 중단된 상태로 실행이 완료될 수 있습니다.이 메서드의 호스팅된 버전을 구현할 경우에는 주의를 기울여야 합니다.

요구 사항

플랫폼: .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 인터페이스