podman/pkg/machine/machine_windows.go

21 lines
461 B
Go

//go:build windows
// +build windows
package machine
import (
"syscall"
)
func GetProcessState(pid int) (active bool, exitCode int) {
const da = syscall.STANDARD_RIGHTS_READ | syscall.PROCESS_QUERY_INFORMATION | syscall.SYNCHRONIZE
handle, err := syscall.OpenProcess(da, false, uint32(pid))
if err != nil {
return false, int(syscall.ERROR_PROC_NOT_FOUND)
}
var code uint32
syscall.GetExitCodeProcess(handle, &code)
return code == 259, int(code)
}