BOOL WINAPI VirtualFree(
__in LPVOID lpAddress,
__in SIZE_T dwSize,
__in DWORD dwFreeType
);
VirtualAlloc에 반대되는 함수이다. VirtualAlloc 함수가 정해 놓은 상태로 되돌리는 역할을 한다. malloc과 free함수 관계
lpAddress : 해제할 메모리 공간의 시작 주소를 지정한다.
dwSize : 해제할 메모리 크기를 바이트 단위로 지정한다.
dwFreeType : MEM_DECOMMIT과 MEM_RELEASE중 하나를 지정할 수 있다.
MEM_RELEASE를 지정할 경우 해당 페이지는 FREE상태가 된다.
물리적 메모리가 할당되어 있다면 해당 메모리는 반환된다.
주의할 사항은 MEM_RELEASE 전달 시 두 번째 전달인자 dwSize는 반드시 0이어야 하고,
lpAddress의 값은 VirtualAlloc 함수 호출을 통해 예약된 메모리의 시작 번지가 되어야 한다는 것이다.
예약이 이뤄진 메모리의 일부만 반환하는 것은 불가능하다. MEM_DECOMMIT을 인자로 전달할 경우에는
해당 페이지의 상태를 RESERVE상태로 되돌리게 된다. 이 경우에도 물리적 메모리가 할당되어 있다면
해당 메모리는 반환하게 된다.
'My Study > Function' 카테고리의 다른 글
GetCurrentProcess (0) | 2010.02.24 |
---|---|
GetCurrentDirectory (0) | 2010.02.24 |
VirtualQuery (0) | 2010.02.24 |
VirtualProtect (4) | 2010.02.24 |
VirtualAlloc (0) | 2010.02.24 |