GlobalLock 함수(winbase.h)
전역 메모리 개체를 잠그고 개체 메모리 블록의 첫 번째 바이트에 대한 포인터를 반환합니다.
구문
LPVOID GlobalLock(
[in] HGLOBAL hMem
);
매개 변수
[in] hMem
전역 메모리 개체에 대한 핸들입니다. 이 핸들은 GlobalAlloc 또는 GlobalReAlloc 함수에서 반환됩니다.
반환 값
함수가 성공하면 반환 값은 메모리 블록의 첫 번째 바이트에 대한 포인터입니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
각 메모리 개체의 내부 데이터 구조에는 처음에 0인 잠금 수가 포함됩니다. 이동 가능한 메모리 개체의 경우 GlobalLock 은 개수를 1씩 증가시키고 GlobalUnlock 함수는 개수를 1씩 감소합니다. 프로세스가 개체에 대해 GlobalLock 에 대해 수행한 각 성공적인 호출은 GlobalUnlock에 대한 해당 호출과 일치해야 합니다. GlobalReAlloc 함수를 사용하여 메모리 개체를 다시 할당하지 않는 한 잠긴 메모리는 이동되거나 삭제되지 않습니다. 잠긴 메모리 개체의 메모리 블록은 잠금 횟수가 0으로 감소될 때까지 잠겨 있으며, 이때 이동하거나 삭제할 수 있습니다.
GMEM_FIXED 할당된 메모리 개체의 잠금 수는 항상 0입니다. 이러한 개체의 경우 반환된 포인터의 값은 지정된 핸들의 값과 같습니다.
지정된 메모리 블록이 삭제되었거나 메모리 블록의 크기가 0인 경우 이 함수는 NULL을 반환합니다.
삭제된 개체의 잠금 수는 항상 0입니다.
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |