LocalUnlock 함수(winbase.h)
LMEM_MOVEABLE 할당된 메모리 개체와 연결된 잠금 수를 감소합니다. 이 함수는 LMEM_FIXED 할당된 메모리 개체에 영향을 주지 않습니다.
구문
BOOL LocalUnlock(
[in] HLOCAL hMem
);
매개 변수
[in] hMem
로컬 메모리 개체에 대한 핸들입니다. 이 핸들은 LocalAlloc 또는 LocalReAlloc 함수에서 반환됩니다.
반환 값
잠금 수를 감소한 후에도 메모리 개체가 여전히 잠겨 있으면 반환 값은 0이 아닌 값입니다. 잠금 수를 감소한 후 메모리 개체가 잠금 해제되면 함수는 0을 반환하고 GetLastError 는 NO_ERROR 반환합니다.
함수가 실패하면 반환 값은 0이고 GetLastError 는 NO_ERROR 이외의 값을 반환합니다.
설명
각 메모리 개체에 대한 내부 데이터 구조에는 처음에 0인 잠금 수가 포함됩니다. 이동 가능한 메모리 개체의 경우 LocalLock 함수는 개수를 1씩 증가시키고 LocalUnlock 은 개수를 1씩 감소합니다. 프로세스에서 개체에 대해 LocalLock 을 호출할 때마다 결국 LocalUnlock을 호출해야 합니다. LocalReAlloc 함수를 사용하여 메모리 개체를 다시 할당하지 않으면 잠긴 메모리가 이동되거나 삭제되지 않습니다. 잠긴 메모리 개체의 메모리 블록은 잠금 횟수가 0으로 감소할 때까지 잠겨 있으며, 이때 이동하거나 삭제할 수 있습니다.
메모리 개체가 이미 잠금 해제된 경우 LocalUnlock 은 FALSE 를 반환하고 GetLastError 는 ERROR_NOT_LOCKED 보고합니다. LMEM_FIXED 할당된 메모리 개체의 잠금 수는 항상 0이며 ERROR_NOT_LOCKED 오류가 발생합니다.
프로세스는 반환 값을 사용하여 이후에 메모리 블록에 대해 LocalUnlock 을 호출해야 하는 횟수를 결정해서는 안 됩니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |