다음을 통해 공유


GetProcessHeaps 함수(heapapi.h)

활성 힙 수를 반환하고 호출 프로세스에 대한 모든 활성 힙에 대한 핸들을 검색합니다.

구문

DWORD GetProcessHeaps(
  [in]  DWORD   NumberOfHeaps,
  [out] PHANDLE ProcessHeaps
);

매개 변수

[in] NumberOfHeaps

ProcessHeaps가 가리키는 버퍼에 저장할 수 있는 최대 힙 핸들 수입니다.

[out] ProcessHeaps

힙 핸들 배열을 수신하는 버퍼에 대한 포인터입니다.

반환 값

반환 값은 호출 프로세스에 대해 활성 상태인 힙에 대한 핸들 수입니다.

반환 값이 NumberOfHeaps보다 작거나 같은 경우 함수는 ProcessHeaps가 가리키는 버퍼에 해당 힙 핸들 수를 저장했습니다.

반환 값이 NumberOfHeaps보다 크면 ProcessHeaps 가 가리키는 버퍼가 너무 작아서 호출 프로세스에 대한 모든 힙 핸들을 보유할 수 없으며 함수는 버퍼에 NumberOfHeaps 핸들을 저장합니다. 반환 값을 사용하여 모든 핸들을 수신할 수 있을 만큼 큰 버퍼를 할당하고 함수를 다시 호출합니다.

반환 값이 0이면 모든 프로세스에 프로세스의 기본 힙인 활성 힙이 하나 이상 있으므로 함수가 실패했습니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

GetProcessHeaps 함수는 호출 프로세스의 기본 힙에 대한 핸들과 프로세스의 모든 스레드에서 HeapCreate 함수를 호출하여 만든 추가 프라이빗 힙에 대한 핸들을 가져옵니다.

GetProcessHeaps 함수는 주로 디버깅에 유용합니다. 함수에서 검색한 프라이빗 힙 중 일부는 프로세스에서 실행되는 다른 코드에 의해 생성되었을 수 있으며 GetProcessHeaps가 반환된 후 제거될 수 있기 때문입니다. 힙을 삭제하면 핸들이 힙에 무효화되고 이러한 핸들을 계속 사용하면 애플리케이션에서 정의되지 않은 동작이 발생할 수 있습니다. 힙 함수는 호출 프로세스의 기본 힙 및 프로세스가 만들고 관리하는 프라이빗 힙에서만 호출되어야 합니다.

호출 프로세스의 프로세스 힙에 대한 핸들을 가져오려면 GetProcessHeap 함수를 사용합니다.

예제

예제는 프로세스 힙 가져오기를 참조하세요.

요구 사항

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

참고 항목

GetProcessHeap

힙 함수

HeapCreate

메모리 관리 함수

VBS Enclave에서 사용할 수 있는 Vertdll API