Voltar à lista
Windows Win32Processos & threadskernel32.dll

OpenProcess

Obtém um handle para um processo já em execução, identificado por PID.

Descrição

Necessário antes de operações como TerminateProcess, ReadProcessMemory ou WaitForSingleObject sobre um processo que não foi criado pelo chamador.

Header: processthreadsapi.hDLL: kernel32.dllNative API: NtOpenProcess

Nota

Diferente do Linux (onde qualquer processo pode ser referenciado por PID diretamente em `kill`/`ptrace`), no Windows é preciso primeiro obter um HANDLE explícito com os direitos de acesso necessários.

Assinatura

HANDLE OpenProcess(
    DWORD dwDesiredAccess,
    BOOL bInheritHandle,
    DWORD dwProcessId
);

Parâmetros

ParâmetroTipoDescrição
dwDesiredAccessDWORDDireitos de acesso desejados: PROCESS_ALL_ACCESS, PROCESS_TERMINATE, PROCESS_VM_READ, etc.
bInheritHandleBOOLSe o handle retornado é herdável por processos filhos.
dwProcessIdDWORDPID do processo alvo.

Valor de retorno

Um handle para o processo em sucesso; NULL em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_ACCESS_DENIED(5)
Acesso negado.
ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.

Relacionadas