다음을 통해 공유


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

참고 항목

전역 및 로컬 함수

GlobalAlloc

GlobalReAlloc

GlobalUnlock

메모리 관리 함수