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: NtOpenProcessNota
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âmetro | Tipo | Descrição |
|---|---|---|
| dwDesiredAccess | DWORD | Direitos de acesso desejados: PROCESS_ALL_ACCESS, PROCESS_TERMINATE, PROCESS_VM_READ, etc. |
| bInheritHandle | BOOL | Se o handle retornado é herdável por processos filhos. |
| dwProcessId | DWORD | PID 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
Equivalente em Linux x86_64