github.com/nullne/docker@v1.13.0-rc1/integration-cli/daemon_windows.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "strconv" 6 "syscall" 7 "unsafe" 8 9 "github.com/go-check/check" 10 ) 11 12 func openEvent(desiredAccess uint32, inheritHandle bool, name string, proc *syscall.LazyProc) (handle syscall.Handle, err error) { 13 namep, _ := syscall.UTF16PtrFromString(name) 14 var _p2 uint32 15 if inheritHandle { 16 _p2 = 1 17 } 18 r0, _, e1 := proc.Call(uintptr(desiredAccess), uintptr(_p2), uintptr(unsafe.Pointer(namep))) 19 handle = syscall.Handle(r0) 20 if handle == syscall.InvalidHandle { 21 err = e1 22 } 23 return 24 } 25 26 func pulseEvent(handle syscall.Handle, proc *syscall.LazyProc) (err error) { 27 r0, _, _ := proc.Call(uintptr(handle)) 28 if r0 != 0 { 29 err = syscall.Errno(r0) 30 } 31 return 32 } 33 34 func signalDaemonDump(pid int) { 35 modkernel32 := syscall.NewLazyDLL("kernel32.dll") 36 procOpenEvent := modkernel32.NewProc("OpenEventW") 37 procPulseEvent := modkernel32.NewProc("PulseEvent") 38 39 ev := "Global\\docker-daemon-" + strconv.Itoa(pid) 40 h2, _ := openEvent(0x0002, false, ev, procOpenEvent) 41 if h2 == 0 { 42 return 43 } 44 pulseEvent(h2, procPulseEvent) 45 } 46 47 func signalDaemonReload(pid int) error { 48 return fmt.Errorf("daemon reload not supported") 49 } 50 51 func cleanupExecRoot(c *check.C, execRoot string) { 52 }