다음을 통해 공유


GlobalUnlock 함수(winbase.h)

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

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

구문

BOOL GlobalUnlock(
  [in] HGLOBAL hMem
);

매개 변수

[in] hMem

전역 메모리 개체에 대한 핸들입니다. 이 핸들은 GlobalAlloc 또는 GlobalReAlloc 함수에서 반환됩니다.

반환 값

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

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

설명

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

GMEM_FIXED 할당된 메모리 개체의 잠금 수는 항상 0입니다. 지정된 메모리 블록이 고정 메모리이면 이 함수는 TRUE를 반환 합니다.

메모리 개체가 이미 잠금 해제된 경우 GlobalUnlockFALSE 를 반환하고 GetLastErrorERROR_NOT_LOCKED 보고합니다.

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

요구 사항

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

참고 항목

전역 및 로컬 함수

GlobalAlloc

GlobalLock

GlobalReAlloc

메모리 관리 함수