Enumeração de processo

Todos os usuários têm acesso de leitura à lista de processos no sistema e há várias funções diferentes que enumeram os processos ativos. A função que você deve usar dependerá de fatores como o suporte desejado à plataforma.

As funções a seguir são usadas para enumerar processos.

Função Descrição
EnumProcesses Recupera o identificador de processo para cada objeto de processo no sistema.
Process32First Recupera informações sobre o primeiro processo encontrado em um sistema instantâneo.
Process32Next Recupera informações sobre o próximo processo registrado em um instantâneo do sistema.
WTSEnumerateProcesses Recupera informações sobre os processos ativos no servidor de terminal especificado.

 

As funções toolhelp e EnumProcesses enumeram todo o processo. Para listar os processos em execução em uma conta de usuário específica, use WTSEnumerateProcesses e filtre no SID do usuário. Você pode filtrar a ID da sessão para ocultar processos em execução em outras sessões de servidor de terminal.

Você também pode filtrar processos por conta de usuário, independentemente da função de enumeração, chamando OpenProcess, OpenProcessToken e GetTokenInformation com TokenUser. No entanto, você não pode abrir um processo protegido por um descritor de segurança, a menos que tenha recebido acesso.