diff options
author | Arthur Sengileyev <arthur.sengileyev@gmail.com> | 2022-08-16 13:39:02 +0300 |
---|---|---|
committer | Arthur Sengileyev <arthur.sengileyev@gmail.com> | 2022-08-29 16:53:42 +0300 |
commit | c1480b39a9e993aaa74caabf6d5c8bb865b78784 (patch) | |
tree | de4ca58d0bd8ff2d327a544a775f367ed2ad8597 /pkg/machine/machine_windows.go | |
parent | 00b03db6f208614d7967f5dbd5c0281cc0bd6d23 (diff) | |
download | podman-c1480b39a9e993aaa74caabf6d5c8bb865b78784.tar.gz podman-c1480b39a9e993aaa74caabf6d5c8bb865b78784.tar.bz2 podman-c1480b39a9e993aaa74caabf6d5c8bb865b78784.zip |
Improved Windows compatibility for machine command
Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
Diffstat (limited to 'pkg/machine/machine_windows.go')
-rw-r--r-- | pkg/machine/machine_windows.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/pkg/machine/machine_windows.go b/pkg/machine/machine_windows.go new file mode 100644 index 000000000..c414986cf --- /dev/null +++ b/pkg/machine/machine_windows.go @@ -0,0 +1,20 @@ +//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) +} |