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부터 사용 가능
참고 항목
.NET