github.com/endophage/docker@v1.4.2-0.20161027011718-242853499895/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  }