code: func dial(address string, timeout uint32) (*PipeConn, error) {
  	name, err := syscall.UTF16PtrFromString(string(address))
  	if err != nil {
  		return nil, err
  	}
  	// If at least one instance of the pipe has been created, this function
  	// will wait timeout milliseconds for it to become available.
  	// It will return immediately regardless of timeout, if no instances
  	// of the named pipe have been created yet.
  	// If this returns with no error, there is a pipe available.
  	if err := waitNamedPipe(name, timeout); err != nil {
  		if err == error_bad_pathname {
  			// badly formatted pipe name
  			return nil, badAddr(address)
  		}
  		return nil, err
  	}
  	pathp, err := syscall.UTF16PtrFromString(address)
  	if err != nil {
  		return nil, err
  	}
  	handle, err := syscall.CreateFile(pathp, syscall.GENERIC_READ|syscall.GENERIC_WRITE,
  		uint32(syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE), nil, syscall.OPEN_EXISTING,
  		syscall.FILE_FLAG_OVERLAPPED, 0)
  	if err != nil {
  		return nil, err
  	}
  	return &PipeConn{handle: handle, addr: PipeAddr(address)}, nil
  }
docs: // dial is a helper to initiate a connection to a named pipe that has been started by a server.
  // The timeout is only enforced if the pipe server has already created the pipe, otherwise
  // this function will return immediately.