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