다음을 통해 공유


LocalUnlock 함수(winbase.h)

LMEM_MOVEABLE 할당된 메모리 개체와 연결된 잠금 수를 감소합니다. 이 함수는 LMEM_FIXED 할당된 메모리 개체에 영향을 주지 않습니다.

참고 로컬 함수는 오버헤드가 더 크고 다른 메모리 관리 함수보다 적은 기능을 제공합니다. 설명서에서 로컬 함수를 사용해야 한다고 명시하지 않는 한 새 애플리케이션은 힙 함수를 사용해야 합니다. 자세한 내용은 전역 및 로컬 함수를 참조하세요.
 

구문

BOOL LocalUnlock(
  [in] HLOCAL hMem
);

매개 변수

[in] hMem

로컬 메모리 개체에 대한 핸들입니다. 이 핸들은 LocalAlloc 또는 LocalReAlloc 함수에서 반환됩니다.

반환 값

잠금 수를 감소한 후에도 메모리 개체가 여전히 잠겨 있으면 반환 값은 0이 아닌 값입니다. 잠금 수를 감소한 후 메모리 개체가 잠금 해제되면 함수는 0을 반환하고 GetLastErrorNO_ERROR 반환합니다.

함수가 실패하면 반환 값은 0이고 GetLastErrorNO_ERROR 이외의 값을 반환합니다.

설명

각 메모리 개체에 대한 내부 데이터 구조에는 처음에 0인 잠금 수가 포함됩니다. 이동 가능한 메모리 개체의 경우 LocalLock 함수는 개수를 1씩 증가시키고 LocalUnlock 은 개수를 1씩 감소합니다. 프로세스에서 개체에 대해 LocalLock 을 호출할 때마다 결국 LocalUnlock을 호출해야 합니다. LocalReAlloc 함수를 사용하여 메모리 개체를 다시 할당하지 않으면 잠긴 메모리가 이동되거나 삭제되지 않습니다. 잠긴 메모리 개체의 메모리 블록은 잠금 횟수가 0으로 감소할 때까지 잠겨 있으며, 이때 이동하거나 삭제할 수 있습니다.

메모리 개체가 이미 잠금 해제된 경우 LocalUnlockFALSE 를 반환하고 GetLastErrorERROR_NOT_LOCKED 보고합니다. LMEM_FIXED 할당된 메모리 개체의 잠금 수는 항상 0이며 ERROR_NOT_LOCKED 오류가 발생합니다.

프로세스는 반환 값을 사용하여 이후에 메모리 블록에 대해 LocalUnlock 을 호출해야 하는 횟수를 결정해서는 안 됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

전역 및 로컬 함수

LocalAlloc

LocalFlags

LocalLock

LocalReAlloc

메모리 관리 함수