Compartilhar via


Função EnumProcesses (psapi.h)

Recupera o identificador de processo para cada objeto de processo no sistema.

Sintaxe

BOOL EnumProcesses(
  [out] DWORD   *lpidProcess,
  [in]  DWORD   cb,
  [out] LPDWORD lpcbNeeded
);

Parâmetros

[out] lpidProcess

Um ponteiro para uma matriz que recebe a lista de identificadores de processo.

[in] cb

O tamanho da matriz pProcessIds , em bytes.

[out] lpcbNeeded

O número de bytes retornados na matriz pProcessIds .

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

É uma boa ideia usar uma matriz grande, pois é difícil prever quantos processos haverá no momento em que você chamar EnumProcesses.

Para determinar quantos processos foram enumerados, divida o valor lpcbNeeded por sizeof(DWORD). Não há nenhuma indicação dada quando o buffer é muito pequeno para armazenar todos os identificadores de processo. Portanto, se lpcbNeeded for igual a cb, considere tentar novamente a chamada com uma matriz maior.

Para obter identificadores de processo para os processos cujos identificadores você acabou de obter, chame a função OpenProcess .

A partir do Windows 7 e do Windows Server 2008 R2, o Psapi.h estabelece números de versão para as funções PSAPI. O número de versão do PSAPI afeta o nome usado para chamar a função e a biblioteca que um programa deve carregar.

Se PSAPI_VERSION for 2 ou superior, essa função será definida como K32EnumProcesses no Psapi.h e exportada em Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION for 1, essa função será definida como EnumProcesses no Psapi.h e exportada em Psapi.lib e Psapi.dll como um wrapper que chama K32EnumProcesses.

Programas que devem ser executados em versões anteriores do Windows, bem como no Windows 7 e versões posteriores, sempre devem chamar essa função como EnumProcesses. Para garantir a resolução correta de símbolos, adicione Psapi.lib à macro TARGETLIBS e compile o programa com –DPSAPI_VERSION=1. Para usar a vinculação dinâmica em tempo de execução, carregue Psapi.dll.

Exemplos

Para obter um exemplo, consulte Enumerando todos os processos ou enumerando todos os módulos para um processo.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho psapi.h
Biblioteca Kernel32.lib no Windows 7 e Windows Server 2008 R2; Psapi.lib (se PSAPI_VERSION=1) no Windows 7 e no Windows Server 2008 R2; Psapi.lib no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP
DLL Kernel32.dll no Windows 7 e no Windows Server 2008 R2; Psapi.dll (se PSAPI_VERSION=1) no Windows 7 e no Windows Server 2008 R2; Psapi.dll no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP

Confira também

CreateToolhelp32Snapshot

Openprocess

Funções PSAPI

Informações do processo