GlobalReAlloc 함수(winbase.h)
지정된 전역 메모리 개체의 크기 또는 특성을 변경합니다. 크기가 증가하거나 감소할 수 있습니다.
구문
DECLSPEC_ALLOCATOR HGLOBAL GlobalReAlloc(
[in] _Frees_ptr_ HGLOBAL hMem,
[in] SIZE_T dwBytes,
[in] UINT uFlags
);
매개 변수
[in] hMem
다시 할당할 전역 메모리 개체에 대한 핸들입니다. 이 핸들은 GlobalAlloc 또는 GlobalReAlloc 함수에서 반환됩니다.
[in] dwBytes
메모리 블록의 새 크기(바이트)입니다. uFlags가GMEM_MODIFY 지정하면 이 매개 변수는 무시됩니다.
[in] uFlags
재할당 옵션입니다. GMEM_MODIFY 지정한 경우 함수는 메모리 개체의 특성만 수정합니다(dwBytes 매개 변수는 무시됨). 그렇지 않으면 함수는 메모리 개체를 다시 할당합니다.
필요에 따라 GMEM_MODIFY 다음 값과 결합할 수 있습니다.
값 | 의미 |
---|---|
|
이동 가능한 메모리를 할당합니다.
메모리가 잠긴 GMEM_MOVEABLE 메모리 블록 또는 GMEM_FIXED 메모리 블록이고 이 플래그가 지정되지 않은 경우 메모리를 제자리에 다시 할당할 수 있습니다. |
이 매개 변수가 GMEM_MODIFY 지정하지 않으면 다음 값을 사용할 수 있습니다.
값 | 의미 |
---|---|
|
메모리 개체의 크기가 커지면 추가 메모리 콘텐츠가 0으로 초기화됩니다. |
반환 값
함수가 성공하면 반환 값은 재할당된 메모리 개체에 대한 핸들입니다.
함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
GlobalReAlloc이 이동 가능한 개체를 다시 할당하는 경우 반환 값은 메모리 개체에 대한 핸들입니다. 핸들을 포인터로 변환하려면 GlobalLock 함수를 사용합니다.
GlobalReAlloc이 고정 개체를 다시 할당하는 경우 반환되는 핸들의 값은 메모리 블록의 첫 번째 바이트 주소입니다. 메모리에 액세스하기 위해 프로세스는 단순히 반환 값을 포인터로 캐스팅할 수 있습니다.
GlobalReAlloc이 실패하면 원래 메모리가 해제되지 않고 원래 핸들과 포인터가 여전히 유효합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |