다음을 통해 공유


가상 메모리 해제

VirtualFree 함수는 다음 규칙에 따라 페이지를 커밋 해제하고 해제합니다.

  • 하나 이상의 커밋된 페이지를 커밋 해제하여 페이지 상태를 예약된 페이지로 변경합니다. 페이지를 커밋 해제하면 페이지와 연결된 실제 스토리지가 해제되므로 모든 프로세스에서 할당할 수 있습니다. 커밋된 페이지의 모든 블록을 커밋 해제할 수 있습니다.
  • 하나 이상의 예약된 페이지 블록을 해제하여 페이지의 상태를 자유롭게 변경합니다. 페이지 블록을 해제하면 프로세스에서 예약된 주소 범위를 할당할 수 있습니다. 예약된 페이지는 VirtualAlloc처음에 예약된 전체 블록을 해제해야만 해제할 수 있습니다.
  • 커밋된 하나 이상의 페이지 블록을 동시에 커밋 해제하고 해제하여 페이지 상태를 자유로 변경합니다. 지정된 블록은 VirtualAlloc의해 처음에 예약된 전체 블록을 포함해야 하며, 모든 페이지는 현재 커밋되어야 합니다.

메모리 블록을 해제하거나 커밋 해제한 후에는 다시 참조할 수 없습니다. 해당 메모리에 있었을 수 있는 모든 정보는 영원히 사라집니다. 무료 페이지에서 읽거나 쓰기를 시도하면 액세스 위반 예외가 발생합니다. 정보가 필요한 경우 해당 정보가 포함된 메모리를 커밋 해제하거나 해제하지 마세요.

메모리 범위의 데이터가 더 이상 관심이 없도록 지정하려면 MEM_RESET사용하여 VirtualAlloc 호출합니다. 페이지를 페이징 파일에서 읽거나 쓸 수 없습니다. 그러나 메모리 블록은 나중에 다시 사용할 수 있습니다.