Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 |