aboutsummaryrefslogtreecommitdiff
path: root/pkg/machine/machine_windows.go
diff options
context:
space:
mode:
authorArthur Sengileyev <arthur.sengileyev@gmail.com>2022-08-16 13:39:02 +0300
committerArthur Sengileyev <arthur.sengileyev@gmail.com>2022-08-29 16:53:42 +0300
commitc1480b39a9e993aaa74caabf6d5c8bb865b78784 (patch)
treede4ca58d0bd8ff2d327a544a775f367ed2ad8597 /pkg/machine/machine_windows.go
parent00b03db6f208614d7967f5dbd5c0281cc0bd6d23 (diff)
downloadpodman-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.go20
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)
+}