다음을 통해 공유


IHostMemoryManager::VirtualAlloc 메서드

해당 Win32 함수에 대한 논리적 래퍼 역할을 합니다. VirtualAlloc의 Win32 구현은 호출 프로세스의 가상 주소 공간에서 페이지 영역을 예약하거나 커밋합니다.

구문

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

매개 변수

pAddress
[in] 할당할 영역의 시작 주소에 대한 포인터입니다.

dwSize
[in] 영역의 크기(바이트)입니다.

flAllocationType
[in] 메모리 할당 형식입니다.

flProtect
[in] 할당할 페이지 영역에 대한 메모리 보호입니다.

dwCriticalLevel
[in] 할당 실패의 영향을 나타내는 EMemoryCriticalLevel 값입니다.

ppMem
[out] 할당된 메모리의 시작 주소에 대한 포인터이거나 요청이 충족되지 않은 경우 null입니다.

Return Value

HRESULT 설명
S_OK VirtualAlloc가 성공적으로 반환되었습니다.
HOST_E_CLRNOTAVAILABLE CLR(공용 언어 런타임)이 프로세스에 로드되지 않았거나 CLR이 관리 코드를 실행하거나 호출을 성공적으로 처리할 수 없는 상태에 있습니다.
HOST_E_TIMEOUT 호출 시간이 초과되었습니다.
HOST_E_NOT_OWNER 호출자는 잠금을 소유하지 않습니다.
HOST_E_ABANDONED 차단된 스레드 또는 파이버가 이벤트를 기다리는 동안 이벤트가 취소되었습니다.
E_FAIL 알 수 없는 치명적인 오류가 발생했습니다. 메서드가 E_FAIL을 반환하면 CLR은 더 이상 프로세스 내에서 사용할 수 없습니다. 호스팅 메서드에 대한 후속 호출은 HOST_E_CLRNOTAVAILABLE을 반환합니다.
E_OUTOFMEMORY 할당 요청을 완료하는 데 사용할 수 있는 메모리가 부족합니다.

설명

VirtualAlloc을 호출하여 프로세스의 주소 공간에서 영역을 예약합니다. pAddress 매개 변수에는 원하는 메모리 블록의 시작 주소가 포함됩니다. 이 매개 변수는 일반적으로 null로 설정됩니다. 운영 체제는 프로세스에서 사용할 수 있는 사용 가능한 주소 범위의 기록을 유지합니다. null pAddress 값은 시스템이 적합하다고 판단되는 모든 영역을 예약하도록 지시합니다. 또는 메모리 블록에 대한 특정 시작 주소를 제공할 수 있습니다. 두 경우 모두 출력 매개 변수 ppMem이 할당된 메모리에 대한 포인터로 반환됩니다. 이 함수는 자체적으로 HRESULT 값을 반환합니다.

Win32 VirtualAlloc 함수에는 ppMem 매개 변수가 없으며 대신 할당된 메모리에 대한 포인터를 반환합니다. 자세한 내용은 Windows 플랫폼 설명서를 참조하세요.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: MSCorEE.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 2.0부터 사용 가능

참고 항목