Функция GetProcessHeaps (heapapi.h)
Возвращает количество активных кучи и получает дескрипторы для всех активных кучи для вызывающего процесса.
Синтаксис
DWORD GetProcessHeaps(
[in] DWORD NumberOfHeaps,
[out] PHANDLE ProcessHeaps
);
Параметры
[in] NumberOfHeaps
Максимальное количество дескрипторов кучи, которые могут храниться в буфере, на который указывает ProcessHeaps.
[out] ProcessHeaps
Указатель на буфер, получающий массив дескрипторов кучи.
Возвращаемое значение
Возвращаемое значение — это количество дескрипторов к кучам, которые активны для вызывающего процесса.
Если возвращаемое значение меньше или равно NumberOfHeaps, функция сохранила это количество дескрипторов кучи в буфере, на который указывает ProcessHeaps.
Если возвращаемое значение больше NumberOfHeaps, буфер, на который указывает ProcessHeaps , слишком мал для хранения всех дескрипторов кучи для вызывающего процесса, а функция сохраняет дескрипторы NumberOfHeaps в буфере. Используйте возвращаемое значение, чтобы выделить буфер, который достаточно велик для получения всех дескрипторов, и снова вызовите функцию.
Если возвращаемое значение равно нулю, функция завершилась сбоем, так как каждый процесс имеет по крайней мере одну активную кучу, которая является кучи по умолчанию для процесса. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Функция GetProcessHeaps получает дескриптор кучи по умолчанию вызывающего процесса, а также дескрипторы для всех дополнительных частных кучи, созданных путем вызова функции HeapCreate в любом потоке процесса.
Функция GetProcessHeaps в первую очередь полезна для отладки, так как некоторые частные кучи, полученные функцией, могли быть созданы другим кодом, выполняющимся в процессе, и могут быть уничтожены после возврата GetProcessHeaps . Удаление кучи делает дескриптор кучи недействительным, а дальнейшее использование таких дескрипторов может привести к неопределенному поведению в приложении. Функции кучи должны вызываться только в куче по умолчанию вызывающего процесса и в частных кучах, создаваемых процессом и управляемых им.
Чтобы получить дескриптор кучи процесса вызывающего процесса, используйте функцию GetProcessHeap .
Примеры
Пример см. в разделе Получение кучи процессов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | heapapi.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |