github.com/metacubex/tfo-go@v0.0.0-20240228025757-be1269474a66/netpoll_windows_go123.go (about)

     1  //go:build windows && go1.23
     2  
     3  package tfo
     4  
     5  import (
     6  	"syscall"
     7  
     8  	"golang.org/x/sys/windows"
     9  )
    10  
    11  // operation contains superset of data necessary to perform all async IO.
    12  //
    13  // Copied from src/internal/poll/fd_windows.go
    14  type operation struct {
    15  	// Used by IOCP interface, it must be first field
    16  	// of the struct, as our code rely on it.
    17  	o syscall.Overlapped
    18  
    19  	// fields used by runtime.netpoll
    20  	runtimeCtx uintptr
    21  	mode       int32
    22  
    23  	// fields used only by net package
    24  	fd     *pFD
    25  	buf    syscall.WSABuf
    26  	msg    windows.WSAMsg
    27  	sa     syscall.Sockaddr
    28  	rsa    *syscall.RawSockaddrAny
    29  	rsan   int32
    30  	handle syscall.Handle
    31  	flags  uint32
    32  	qty    uint32
    33  	bufs   []syscall.WSABuf
    34  }