code: func createPipe(address string, first bool) (syscall.Handle, error) {
  	n, err := syscall.UTF16PtrFromString(address)
  	if err != nil {
  		return 0, err
  	}
  	mode := uint32(pipe_access_duplex | syscall.FILE_FLAG_OVERLAPPED)
  	if first {
  		mode |= file_flag_first_pipe_instance
  	}
  	return createNamedPipe(n,
  		mode,
  		pipe_type_byte,
  		pipe_unlimited_instances,
  		512, 512, 0, nil)
  }
docs: // createPipe is a helper function to make sure we always create pipes
  // with the same arguments, since subsequent calls to create pipe need
  // to use the same arguments as the first one. If first is set, fail
  // if the pipe already exists.