github.com/sagernet/sing@v0.2.6/common/rw/writev_windows.go (about) 1 package rw 2 3 import ( 4 "syscall" 5 ) 6 7 // Deprecated: use vectorised writer 8 func WriteV(fd uintptr, data [][]byte) (int, error) { 9 var n uint32 10 buffers := make([]*syscall.WSABuf, len(data)) 11 for i, buf := range data { 12 buffers[i] = &syscall.WSABuf{ 13 Len: uint32(len(buf)), 14 Buf: &buf[0], 15 } 16 } 17 err := syscall.WSASend(syscall.Handle(fd), buffers[0], uint32(len(buffers)), &n, 0, nil, nil) 18 return int(n), err 19 }