Compartilhar via


Função GetProcessHeaps (heapapi.h)

Retorna o número de heaps ativos e recupera identificadores para todos os heaps ativos para o processo de chamada.

Sintaxe

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

Parâmetros

[in] NumberOfHeaps

O número máximo de identificadores de heap que podem ser armazenados no buffer apontado por ProcessHeaps.

[out] ProcessHeaps

Um ponteiro para um buffer que recebe uma matriz de identificadores de heap.

Retornar valor

O valor retornado é o número de identificadores para heaps que estão ativos para o processo de chamada.

Se o valor retornado for menor ou igual a NumberOfHeaps, a função armazenará esse número de identificadores de heap no buffer apontado por ProcessHeaps.

Se o valor retornado for maior que NumberOfHeaps, o buffer apontado por ProcessHeaps será muito pequeno para manter todas as alças de heap para o processo de chamada e a função armazenará identificadores NumberOfHeaps no buffer. Use o valor retornado para alocar um buffer grande o suficiente para receber todos os identificadores e chamar a função novamente.

Se o valor retornado for zero, a função falhará porque cada processo tem pelo menos um heap ativo, o heap padrão para o processo. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função GetProcessHeaps obtém um identificador para o heap padrão do processo de chamada, além de identificadores para quaisquer heaps privados adicionais criados chamando a função HeapCreate em qualquer thread no processo.

A função GetProcessHeaps é útil principalmente para depuração, pois alguns dos heaps privados recuperados pela função podem ter sido criados por outro código em execução no processo e podem ser destruídos após o retorno de GetProcessHeaps . Destruir um heap invalida o identificador para o heap e o uso contínuo desses identificadores pode causar um comportamento indefinido no aplicativo. As funções heap devem ser chamadas somente no heap padrão do processo de chamada e em heaps privados que o processo cria e gerencia.

Para obter um identificador para o heap de processo do processo de chamada, use a função GetProcessHeap .

Exemplos

Para obter um exemplo, consulte Obtendo heaps de processo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho heapapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

GetProcessHeap

Funções heap

Heapcreate

Funções de gerenciamento da memória

APIs Vertdll disponíveis em enclaves de VBS