OfferVirtualMemory 함수(memoryapi.h)

다양한 메모리 페이지에 포함된 데이터는 애플리케이션에서 더 이상 필요하지 않으며 필요한 경우 시스템에서 삭제할 수 있음을 나타냅니다.

지정된 페이지는 액세스할 수 없는 것으로 표시되고 프로세스 작업 집합에서 제거되며 페이징 파일에 기록되지 않습니다.

나중에 제공된 페이지를 회수하려면 ReclaimVirtualMemory를 호출합니다.

구문

DWORD OfferVirtualMemory(
  [in] PVOID          VirtualAddress,
  [in] SIZE_T         Size,
  [in] OFFER_PRIORITY Priority
);

매개 변수

[in] VirtualAddress

제공할 메모리의 페이지 맞춤 시작 주소입니다.

[in] Size

제공할 메모리 영역의 크기(바이트)입니다. 크기 는 시스템 페이지 크기의 정수 배수여야 합니다.

[in] Priority

우선 순위는 제공된 메모리가 애플리케이션에 얼마나 중요한지를 나타냅니다. 우선 순위가 높을수록 ReclaimVirtualMemory를 호출할 때 제공된 메모리를 그대로 회수할 가능성이 증가합니다. 시스템은 일반적으로 우선 순위가 높은 메모리를 삭제하기 전에 우선 순위가 낮은 메모리를 삭제합니다. 우선 순위는 다음 값 중 하나여야 합니다.

의미
VMOfferPriorityVeryLow
0x00000001
제공된 메모리는 우선 순위가 매우 낮으며 첫 번째 삭제되어야 합니다.
VMOfferPriorityLow
0x00000002
제공된 메모리의 우선 순위가 낮습니다.
VMOfferPriorityBelowNormal
0x00000003
제공된 메모리가 정상 우선 순위보다 낮습니다.
VMOfferPriorityNormal
0x00000004
제공된 메모리는 애플리케이션에 대한 일반적인 우선 순위이며 마지막으로 삭제되어야 합니다.

반환 값

성공하면 ERROR_SUCCESS. 그렇지 않으면 시스템 오류 코드 입니다.

설명

제공된 페이지를 회수하려면 ReclaimVirtualMemory를 호출합니다. 회수된 페이지의 데이터는 삭제되었을 수 있습니다. 이 경우 메모리 영역의 내용이 정의되지 않았으며 애플리케이션에서 다시 작성해야 합니다.

잠긴 가상 메모리를 제공하기 위해 OfferVirtualMemory 를 호출하지 마세요. 이렇게 하면 지정된 페이지 범위의 잠금이 해제됩니다.

가상 메모리를 제공하고 회수하는 것은 MEM_RESET 및 MEM_RESET_UNDO 메모리 할당 플래그를 사용하는 것과 유사합니다. 단, OfferVirtualMemory 는 프로세스 작업 집합에서 메모리를 제거하고 회수될 때까지 제공된 페이지에 대한 액세스를 제한합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1 Update [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 R2 업데이트 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 memoryapi.h(Windows.h, Memoryapi.h 포함)
라이브러리 onecore.lib
DLL Kernel32.dll

참고 항목

DiscardVirtualMemory

메모리 관리 함수

ReclaimVirtualMemory

가상 메모리 함수

VirtualAlloc

VirtualFree

VirtualLock

Virtualquery