github.com/tomatome/win@v0.3.1/ws2_32.go (about)

     1  // This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go
     2  // go run internal/cmd/gen/gen.go
     3  
     4  // +build windows
     5  
     6  package win
     7  
     8  import (
     9  	"syscall"
    10  	"unsafe"
    11  )
    12  
    13  var (
    14  	// Library
    15  	libws2_32 uintptr
    16  
    17  	// Functions
    18  	freeAddrInfoExW                 uintptr
    19  	freeAddrInfoW                   uintptr
    20  	getAddrInfoEx                   uintptr
    21  	getAddrInfoW                    uintptr
    22  	getNameInfoW                    uintptr
    23  	inetNtopW                       uintptr
    24  	inetPtonW                       uintptr
    25  	wPUCompleteOverlappedRequest    uintptr
    26  	wSAAccept                       uintptr
    27  	wSAAddressToString              uintptr
    28  	wSAAsyncGetHostByAddr           uintptr
    29  	wSAAsyncGetHostByName           uintptr
    30  	wSAAsyncGetProtoByName          uintptr
    31  	wSAAsyncGetProtoByNumber        uintptr
    32  	wSAAsyncGetServByName           uintptr
    33  	wSAAsyncGetServByPort           uintptr
    34  	wSAAsyncSelect                  uintptr
    35  	wSACancelAsyncRequest           uintptr
    36  	wSACancelBlockingCall           uintptr
    37  	wSACleanup                      uintptr
    38  	wSACloseEvent                   uintptr
    39  	wSAConnect                      uintptr
    40  	wSACreateEvent                  uintptr
    41  	wSADuplicateSocket              uintptr
    42  	wSAEnumNameSpaceProviders       uintptr
    43  	wSAEnumNetworkEvents            uintptr
    44  	wSAEnumProtocols                uintptr
    45  	wSAEventSelect                  uintptr
    46  	wSAGetLastError                 uintptr
    47  	wSAGetOverlappedResult          uintptr
    48  	wSAGetQOSByName                 uintptr
    49  	wSAGetServiceClassInfo          uintptr
    50  	wSAGetServiceClassNameByClassId uintptr
    51  	wSAHtonl                        uintptr
    52  	wSAHtons                        uintptr
    53  	wSAInstallServiceClass          uintptr
    54  	wSAIoctl                        uintptr
    55  	wSAIsBlocking                   uintptr
    56  	wSAJoinLeaf                     uintptr
    57  	wSALookupServiceBegin           uintptr
    58  	wSALookupServiceEnd             uintptr
    59  	wSALookupServiceNext            uintptr
    60  	wSANSPIoctl                     uintptr
    61  	wSANtohl                        uintptr
    62  	wSANtohs                        uintptr
    63  	wSAPoll                         uintptr
    64  	wSAProviderConfigChange         uintptr
    65  	wSARecv                         uintptr
    66  	wSARecvDisconnect               uintptr
    67  	wSARecvFrom                     uintptr
    68  	wSARemoveServiceClass           uintptr
    69  	wSASend                         uintptr
    70  	wSASendDisconnect               uintptr
    71  	wSASendMsg                      uintptr
    72  	wSASendTo                       uintptr
    73  	wSASetBlockingHook              uintptr
    74  	wSASetLastError                 uintptr
    75  	wSASetService                   uintptr
    76  	wSASocket                       uintptr
    77  	wSAStartup                      uintptr
    78  	wSAStringToAddress              uintptr
    79  	wSAUnhookBlockingHook           uintptr
    80  	wSApSetPostRoutine              uintptr
    81  	wSCDeinstallProvider            uintptr
    82  	wSCEnableNSProvider             uintptr
    83  	wSCEnumProtocols                uintptr
    84  	wSCGetProviderPath              uintptr
    85  	wSCInstallNameSpace             uintptr
    86  	wSCInstallProvider              uintptr
    87  	wSCUnInstallNameSpace           uintptr
    88  	wSCWriteProviderOrder           uintptr
    89  	gethostname                     uintptr
    90  )
    91  
    92  func init() {
    93  	// Library
    94  	libws2_32 = doLoadLibrary("ws2_32.dll")
    95  
    96  	// Functions
    97  	freeAddrInfoExW = doGetProcAddress(libws2_32, "FreeAddrInfoExW")
    98  	freeAddrInfoW = doGetProcAddress(libws2_32, "FreeAddrInfoW")
    99  	getAddrInfoEx = doGetProcAddress(libws2_32, "GetAddrInfoExW")
   100  	getAddrInfoW = doGetProcAddress(libws2_32, "GetAddrInfoW")
   101  	getNameInfoW = doGetProcAddress(libws2_32, "GetNameInfoW")
   102  	inetNtopW = doGetProcAddress(libws2_32, "InetNtopW")
   103  	inetPtonW = doGetProcAddress(libws2_32, "InetPtonW")
   104  	wPUCompleteOverlappedRequest = doGetProcAddress(libws2_32, "WPUCompleteOverlappedRequest")
   105  	wSAAccept = doGetProcAddress(libws2_32, "WSAAccept")
   106  	wSAAddressToString = doGetProcAddress(libws2_32, "WSAAddressToStringW")
   107  	wSAAsyncGetHostByAddr = doGetProcAddress(libws2_32, "WSAAsyncGetHostByAddr")
   108  	wSAAsyncGetHostByName = doGetProcAddress(libws2_32, "WSAAsyncGetHostByName")
   109  	wSAAsyncGetProtoByName = doGetProcAddress(libws2_32, "WSAAsyncGetProtoByName")
   110  	wSAAsyncGetProtoByNumber = doGetProcAddress(libws2_32, "WSAAsyncGetProtoByNumber")
   111  	wSAAsyncGetServByName = doGetProcAddress(libws2_32, "WSAAsyncGetServByName")
   112  	wSAAsyncGetServByPort = doGetProcAddress(libws2_32, "WSAAsyncGetServByPort")
   113  	wSAAsyncSelect = doGetProcAddress(libws2_32, "WSAAsyncSelect")
   114  	wSACancelAsyncRequest = doGetProcAddress(libws2_32, "WSACancelAsyncRequest")
   115  	wSACancelBlockingCall = doGetProcAddress(libws2_32, "WSACancelBlockingCall")
   116  	wSACleanup = doGetProcAddress(libws2_32, "WSACleanup")
   117  	wSACloseEvent = doGetProcAddress(libws2_32, "WSACloseEvent")
   118  	wSAConnect = doGetProcAddress(libws2_32, "WSAConnect")
   119  	wSACreateEvent = doGetProcAddress(libws2_32, "WSACreateEvent")
   120  	wSADuplicateSocket = doGetProcAddress(libws2_32, "WSADuplicateSocketW")
   121  	wSAEnumNameSpaceProviders = doGetProcAddress(libws2_32, "WSAEnumNameSpaceProvidersW")
   122  	wSAEnumNetworkEvents = doGetProcAddress(libws2_32, "WSAEnumNetworkEvents")
   123  	wSAEnumProtocols = doGetProcAddress(libws2_32, "WSAEnumProtocolsW")
   124  	wSAEventSelect = doGetProcAddress(libws2_32, "WSAEventSelect")
   125  	wSAGetLastError = doGetProcAddress(libws2_32, "WSAGetLastError")
   126  	wSAGetOverlappedResult = doGetProcAddress(libws2_32, "WSAGetOverlappedResult")
   127  	wSAGetQOSByName = doGetProcAddress(libws2_32, "WSAGetQOSByName")
   128  	wSAGetServiceClassInfo = doGetProcAddress(libws2_32, "WSAGetServiceClassInfoW")
   129  	wSAGetServiceClassNameByClassId = doGetProcAddress(libws2_32, "WSAGetServiceClassNameByClassIdW")
   130  	wSAHtonl = doGetProcAddress(libws2_32, "WSAHtonl")
   131  	wSAHtons = doGetProcAddress(libws2_32, "WSAHtons")
   132  	wSAInstallServiceClass = doGetProcAddress(libws2_32, "WSAInstallServiceClassW")
   133  	wSAIoctl = doGetProcAddress(libws2_32, "WSAIoctl")
   134  	wSAIsBlocking = doGetProcAddress(libws2_32, "WSAIsBlocking")
   135  	wSAJoinLeaf = doGetProcAddress(libws2_32, "WSAJoinLeaf")
   136  	wSALookupServiceBegin = doGetProcAddress(libws2_32, "WSALookupServiceBeginW")
   137  	wSALookupServiceEnd = doGetProcAddress(libws2_32, "WSALookupServiceEnd")
   138  	wSALookupServiceNext = doGetProcAddress(libws2_32, "WSALookupServiceNextW")
   139  	wSANSPIoctl = doGetProcAddress(libws2_32, "WSANSPIoctl")
   140  	wSANtohl = doGetProcAddress(libws2_32, "WSANtohl")
   141  	wSANtohs = doGetProcAddress(libws2_32, "WSANtohs")
   142  	wSAPoll = doGetProcAddress(libws2_32, "WSAPoll")
   143  	wSAProviderConfigChange = doGetProcAddress(libws2_32, "WSAProviderConfigChange")
   144  	wSARecv = doGetProcAddress(libws2_32, "WSARecv")
   145  	wSARecvDisconnect = doGetProcAddress(libws2_32, "WSARecvDisconnect")
   146  	wSARecvFrom = doGetProcAddress(libws2_32, "WSARecvFrom")
   147  	wSARemoveServiceClass = doGetProcAddress(libws2_32, "WSARemoveServiceClass")
   148  	wSASend = doGetProcAddress(libws2_32, "WSASend")
   149  	wSASendDisconnect = doGetProcAddress(libws2_32, "WSASendDisconnect")
   150  	wSASendMsg = doGetProcAddress(libws2_32, "WSASendMsg")
   151  	wSASendTo = doGetProcAddress(libws2_32, "WSASendTo")
   152  	wSASetBlockingHook = doGetProcAddress(libws2_32, "WSASetBlockingHook")
   153  	wSASetLastError = doGetProcAddress(libws2_32, "WSASetLastError")
   154  	wSASetService = doGetProcAddress(libws2_32, "WSASetServiceW")
   155  	wSASocket = doGetProcAddress(libws2_32, "WSASocketW")
   156  	wSAStartup = doGetProcAddress(libws2_32, "WSAStartup")
   157  	wSAStringToAddress = doGetProcAddress(libws2_32, "WSAStringToAddressW")
   158  	wSAUnhookBlockingHook = doGetProcAddress(libws2_32, "WSAUnhookBlockingHook")
   159  	wSApSetPostRoutine = doGetProcAddress(libws2_32, "WSApSetPostRoutine")
   160  	wSCDeinstallProvider = doGetProcAddress(libws2_32, "WSCDeinstallProvider")
   161  	wSCEnableNSProvider = doGetProcAddress(libws2_32, "WSCEnableNSProvider")
   162  	wSCEnumProtocols = doGetProcAddress(libws2_32, "WSCEnumProtocols")
   163  	wSCGetProviderPath = doGetProcAddress(libws2_32, "WSCGetProviderPath")
   164  	wSCInstallNameSpace = doGetProcAddress(libws2_32, "WSCInstallNameSpace")
   165  	wSCInstallProvider = doGetProcAddress(libws2_32, "WSCInstallProvider")
   166  	wSCUnInstallNameSpace = doGetProcAddress(libws2_32, "WSCUnInstallNameSpace")
   167  	wSCWriteProviderOrder = doGetProcAddress(libws2_32, "WSCWriteProviderOrder")
   168  	gethostname = doGetProcAddress(libws2_32, "gethostname")
   169  }
   170  
   171  func FreeAddrInfoExW(ai *ADDRINFOEX) {
   172  	syscall3(freeAddrInfoExW, 1,
   173  		uintptr(unsafe.Pointer(ai)),
   174  		0,
   175  		0)
   176  }
   177  
   178  func FreeAddrInfoW(ai PADDRINFO) {
   179  	syscall3(freeAddrInfoW, 1,
   180  		uintptr(unsafe.Pointer(ai)),
   181  		0,
   182  		0)
   183  }
   184  
   185  func GetAddrInfoEx(name /*const*/ *WCHAR, servname /*const*/ *WCHAR, namespace DWORD, namespace_id *GUID, hints /*const*/ *ADDRINFOEX, result **ADDRINFOEX, timeout *Timeval, overlapped *OVERLAPPED, completion_routine LPLOOKUPSERVICE_COMPLETION_ROUTINE, handle *HANDLE) int32 {
   186  	completion_routineCallback := syscall.NewCallback(completion_routine)
   187  	ret1 := syscall12(getAddrInfoEx, 10,
   188  		uintptr(unsafe.Pointer(name)),
   189  		uintptr(unsafe.Pointer(servname)),
   190  		uintptr(namespace),
   191  		uintptr(unsafe.Pointer(namespace_id)),
   192  		uintptr(unsafe.Pointer(hints)),
   193  		uintptr(unsafe.Pointer(result)),
   194  		uintptr(unsafe.Pointer(timeout)),
   195  		uintptr(unsafe.Pointer(overlapped)),
   196  		completion_routineCallback,
   197  		uintptr(unsafe.Pointer(handle)),
   198  		0,
   199  		0)
   200  	return int32(ret1)
   201  }
   202  
   203  func GetAddrInfoW(nodename string, servname string, hints /*const*/ *ADDRINFO, res *PADDRINFO) int32 {
   204  	nodenameStr := unicode16FromString(nodename)
   205  	servnameStr := unicode16FromString(servname)
   206  	ret1 := syscall6(getAddrInfoW, 4,
   207  		uintptr(unsafe.Pointer(&nodenameStr[0])),
   208  		uintptr(unsafe.Pointer(&servnameStr[0])),
   209  		uintptr(unsafe.Pointer(hints)),
   210  		uintptr(unsafe.Pointer(res)),
   211  		0,
   212  		0)
   213  	return int32(ret1)
   214  }
   215  
   216  func GetNameInfoW(sa /*const*/ *SOCKADDR, salen Socklen_t, host PWCHAR, hostlen DWORD, serv PWCHAR, servlen DWORD, flags INT) int32 {
   217  	ret1 := syscall9(getNameInfoW, 7,
   218  		uintptr(unsafe.Pointer(sa)),
   219  		uintptr(salen),
   220  		uintptr(unsafe.Pointer(host)),
   221  		uintptr(hostlen),
   222  		uintptr(unsafe.Pointer(serv)),
   223  		uintptr(servlen),
   224  		uintptr(flags),
   225  		0,
   226  		0)
   227  	return int32(ret1)
   228  }
   229  
   230  func InetNtopW(family INT, addr uintptr, buffer PWSTR, aLen SIZE_T) string {
   231  	ret1 := syscall6(inetNtopW, 4,
   232  		uintptr(family),
   233  		addr,
   234  		uintptr(unsafe.Pointer(buffer)),
   235  		uintptr(aLen),
   236  		0,
   237  		0)
   238  	return stringFromUnicode16((*uint16)(unsafe.Pointer(ret1)))
   239  }
   240  
   241  func InetPtonW(family INT, addr string, buffer uintptr) INT {
   242  	addrStr := unicode16FromString(addr)
   243  	ret1 := syscall3(inetPtonW, 3,
   244  		uintptr(family),
   245  		uintptr(unsafe.Pointer(&addrStr[0])),
   246  		buffer)
   247  	return INT(ret1)
   248  }
   249  
   250  func WPUCompleteOverlappedRequest(s SOCKET, overlapped LPWSAOVERLAPPED, error DWORD, transferred DWORD, errcode *int32) WSAEVENT {
   251  	ret1 := syscall6(wPUCompleteOverlappedRequest, 5,
   252  		uintptr(s),
   253  		uintptr(unsafe.Pointer(overlapped)),
   254  		uintptr(error),
   255  		uintptr(transferred),
   256  		uintptr(unsafe.Pointer(errcode)),
   257  		0)
   258  	return WSAEVENT(ret1)
   259  }
   260  
   261  func WSAAccept(s SOCKET, addr *Sockaddr, addrlen *int32, lpfnCondition LPCONDITIONPROC, dwCallbackData *uint32) SOCKET {
   262  	lpfnConditionCallback := syscall.NewCallback(func(lpCallerIdRawArg LPWSABUF, lpCallerDataRawArg LPWSABUF, lpSQOSRawArg LPQOS, lpGQOSRawArg LPQOS, lpCalleeIdRawArg LPWSABUF, lpCalleeDataRawArg LPWSABUF, gRawArg *GROUP, dwCallbackDataRawArg DWORD_PTR) uintptr {
   263  		ret := lpfnCondition(lpCallerIdRawArg, lpCallerDataRawArg, lpSQOSRawArg, lpGQOSRawArg, lpCalleeIdRawArg, lpCalleeDataRawArg, gRawArg, dwCallbackDataRawArg)
   264  		return uintptr(ret)
   265  	})
   266  	ret1 := syscall6(wSAAccept, 5,
   267  		uintptr(s),
   268  		uintptr(unsafe.Pointer(addr)),
   269  		uintptr(unsafe.Pointer(addrlen)),
   270  		lpfnConditionCallback,
   271  		uintptr(unsafe.Pointer(dwCallbackData)),
   272  		0)
   273  	return SOCKET(ret1)
   274  }
   275  
   276  func WSAAddressToString(sockaddr *SOCKADDR, aLen DWORD, info LPWSAPROTOCOL_INFO, string LPWSTR, lenstr *uint32) INT {
   277  	ret1 := syscall6(wSAAddressToString, 5,
   278  		uintptr(unsafe.Pointer(sockaddr)),
   279  		uintptr(aLen),
   280  		uintptr(unsafe.Pointer(info)),
   281  		uintptr(unsafe.Pointer(string)),
   282  		uintptr(unsafe.Pointer(lenstr)),
   283  		0)
   284  	return INT(ret1)
   285  }
   286  
   287  func WSAAsyncGetHostByAddr(hWnd HWND, uMsg UINT, addr /*const*/ LPCSTR, aLen INT, aType INT, sbuf LPSTR, buflen INT) HANDLE {
   288  	ret1 := syscall9(wSAAsyncGetHostByAddr, 7,
   289  		uintptr(hWnd),
   290  		uintptr(uMsg),
   291  		uintptr(unsafe.Pointer(addr)),
   292  		uintptr(aLen),
   293  		uintptr(aType),
   294  		uintptr(unsafe.Pointer(sbuf)),
   295  		uintptr(buflen),
   296  		0,
   297  		0)
   298  	return HANDLE(ret1)
   299  }
   300  
   301  func WSAAsyncGetHostByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
   302  	ret1 := syscall6(wSAAsyncGetHostByName, 5,
   303  		uintptr(hWnd),
   304  		uintptr(uMsg),
   305  		uintptr(unsafe.Pointer(name)),
   306  		uintptr(unsafe.Pointer(sbuf)),
   307  		uintptr(buflen),
   308  		0)
   309  	return HANDLE(ret1)
   310  }
   311  
   312  func WSAAsyncGetProtoByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
   313  	ret1 := syscall6(wSAAsyncGetProtoByName, 5,
   314  		uintptr(hWnd),
   315  		uintptr(uMsg),
   316  		uintptr(unsafe.Pointer(name)),
   317  		uintptr(unsafe.Pointer(sbuf)),
   318  		uintptr(buflen),
   319  		0)
   320  	return HANDLE(ret1)
   321  }
   322  
   323  func WSAAsyncGetProtoByNumber(hWnd HWND, uMsg UINT, number INT, sbuf LPSTR, buflen INT) HANDLE {
   324  	ret1 := syscall6(wSAAsyncGetProtoByNumber, 5,
   325  		uintptr(hWnd),
   326  		uintptr(uMsg),
   327  		uintptr(number),
   328  		uintptr(unsafe.Pointer(sbuf)),
   329  		uintptr(buflen),
   330  		0)
   331  	return HANDLE(ret1)
   332  }
   333  
   334  func WSAAsyncGetServByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, proto /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
   335  	ret1 := syscall6(wSAAsyncGetServByName, 6,
   336  		uintptr(hWnd),
   337  		uintptr(uMsg),
   338  		uintptr(unsafe.Pointer(name)),
   339  		uintptr(unsafe.Pointer(proto)),
   340  		uintptr(unsafe.Pointer(sbuf)),
   341  		uintptr(buflen))
   342  	return HANDLE(ret1)
   343  }
   344  
   345  func WSAAsyncGetServByPort(hWnd HWND, uMsg UINT, port INT, proto /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
   346  	ret1 := syscall6(wSAAsyncGetServByPort, 6,
   347  		uintptr(hWnd),
   348  		uintptr(uMsg),
   349  		uintptr(port),
   350  		uintptr(unsafe.Pointer(proto)),
   351  		uintptr(unsafe.Pointer(sbuf)),
   352  		uintptr(buflen))
   353  	return HANDLE(ret1)
   354  }
   355  
   356  func WSAAsyncSelect(s SOCKET, hWnd HWND, uMsg UINT, lEvent LONG) INT {
   357  	ret1 := syscall6(wSAAsyncSelect, 4,
   358  		uintptr(s),
   359  		uintptr(hWnd),
   360  		uintptr(uMsg),
   361  		uintptr(lEvent),
   362  		0,
   363  		0)
   364  	return INT(ret1)
   365  }
   366  
   367  func WSACancelAsyncRequest(hAsyncTaskHandle HANDLE) INT {
   368  	ret1 := syscall3(wSACancelAsyncRequest, 1,
   369  		uintptr(hAsyncTaskHandle),
   370  		0,
   371  		0)
   372  	return INT(ret1)
   373  }
   374  
   375  func WSACancelBlockingCall() INT {
   376  	ret1 := syscall3(wSACancelBlockingCall, 0,
   377  		0,
   378  		0,
   379  		0)
   380  	return INT(ret1)
   381  }
   382  
   383  func WSACleanup() INT {
   384  	ret1 := syscall3(wSACleanup, 0,
   385  		0,
   386  		0,
   387  		0)
   388  	return INT(ret1)
   389  }
   390  
   391  func WSACloseEvent(event WSAEVENT) bool {
   392  	ret1 := syscall3(wSACloseEvent, 1,
   393  		uintptr(event),
   394  		0,
   395  		0)
   396  	return ret1 != 0
   397  }
   398  
   399  func WSAConnect(s SOCKET, name /*const*/ *Sockaddr, namelen int32, lpCallerData LPWSABUF, lpCalleeData LPWSABUF, lpSQOS *QOS, lpGQOS *QOS) int32 {
   400  	ret1 := syscall9(wSAConnect, 7,
   401  		uintptr(s),
   402  		uintptr(unsafe.Pointer(name)),
   403  		uintptr(namelen),
   404  		uintptr(unsafe.Pointer(lpCallerData)),
   405  		uintptr(unsafe.Pointer(lpCalleeData)),
   406  		uintptr(unsafe.Pointer(lpSQOS)),
   407  		uintptr(unsafe.Pointer(lpGQOS)),
   408  		0,
   409  		0)
   410  	return int32(ret1)
   411  }
   412  
   413  func WSACreateEvent() WSAEVENT {
   414  	ret1 := syscall3(wSACreateEvent, 0,
   415  		0,
   416  		0,
   417  		0)
   418  	return WSAEVENT(ret1)
   419  }
   420  
   421  func WSADuplicateSocket(s SOCKET, dwProcessId DWORD, lpProtocolInfo LPWSAPROTOCOL_INFO) int32 {
   422  	ret1 := syscall3(wSADuplicateSocket, 3,
   423  		uintptr(s),
   424  		uintptr(dwProcessId),
   425  		uintptr(unsafe.Pointer(lpProtocolInfo)))
   426  	return int32(ret1)
   427  }
   428  
   429  func WSAEnumNameSpaceProviders(aLen *uint32, buffer LPWSANAMESPACE_INFO) INT {
   430  	ret1 := syscall3(wSAEnumNameSpaceProviders, 2,
   431  		uintptr(unsafe.Pointer(aLen)),
   432  		uintptr(unsafe.Pointer(buffer)),
   433  		0)
   434  	return INT(ret1)
   435  }
   436  
   437  func WSAEnumNetworkEvents(s SOCKET, hEvent WSAEVENT, lpEvent *WSANETWORKEVENTS) int32 {
   438  	ret1 := syscall3(wSAEnumNetworkEvents, 3,
   439  		uintptr(s),
   440  		uintptr(hEvent),
   441  		uintptr(unsafe.Pointer(lpEvent)))
   442  	return int32(ret1)
   443  }
   444  
   445  func WSAEnumProtocols(protocols *int32, buffer LPWSAPROTOCOL_INFO, aLen *uint32) INT {
   446  	ret1 := syscall3(wSAEnumProtocols, 3,
   447  		uintptr(unsafe.Pointer(protocols)),
   448  		uintptr(unsafe.Pointer(buffer)),
   449  		uintptr(unsafe.Pointer(aLen)))
   450  	return INT(ret1)
   451  }
   452  
   453  func WSAEventSelect(s SOCKET, hEvent WSAEVENT, lEvent LONG) int32 {
   454  	ret1 := syscall3(wSAEventSelect, 3,
   455  		uintptr(s),
   456  		uintptr(hEvent),
   457  		uintptr(lEvent))
   458  	return int32(ret1)
   459  }
   460  
   461  func WSAGetLastError() INT {
   462  	ret1 := syscall3(wSAGetLastError, 0,
   463  		0,
   464  		0,
   465  		0)
   466  	return INT(ret1)
   467  }
   468  
   469  func WSAGetOverlappedResult(s SOCKET, lpOverlapped LPWSAOVERLAPPED, lpcbTransfer *uint32, fWait bool, lpdwFlags *uint32) bool {
   470  	ret1 := syscall6(wSAGetOverlappedResult, 5,
   471  		uintptr(s),
   472  		uintptr(unsafe.Pointer(lpOverlapped)),
   473  		uintptr(unsafe.Pointer(lpcbTransfer)),
   474  		getUintptrFromBool(fWait),
   475  		uintptr(unsafe.Pointer(lpdwFlags)),
   476  		0)
   477  	return ret1 != 0
   478  }
   479  
   480  func WSAGetQOSByName(s SOCKET, lpQOSName LPWSABUF, lpQOS *QOS) bool {
   481  	ret1 := syscall3(wSAGetQOSByName, 3,
   482  		uintptr(s),
   483  		uintptr(unsafe.Pointer(lpQOSName)),
   484  		uintptr(unsafe.Pointer(lpQOS)))
   485  	return ret1 != 0
   486  }
   487  
   488  func WSAGetServiceClassInfo(provider *GUID, service *GUID, aLen *uint32, info LPWSASERVICECLASSINFO) INT {
   489  	ret1 := syscall6(wSAGetServiceClassInfo, 4,
   490  		uintptr(unsafe.Pointer(provider)),
   491  		uintptr(unsafe.Pointer(service)),
   492  		uintptr(unsafe.Pointer(aLen)),
   493  		uintptr(unsafe.Pointer(info)),
   494  		0,
   495  		0)
   496  	return INT(ret1)
   497  }
   498  
   499  func WSAGetServiceClassNameByClassId(class *GUID, service LPWSTR, aLen *uint32) INT {
   500  	ret1 := syscall3(wSAGetServiceClassNameByClassId, 3,
   501  		uintptr(unsafe.Pointer(class)),
   502  		uintptr(unsafe.Pointer(service)),
   503  		uintptr(unsafe.Pointer(aLen)))
   504  	return INT(ret1)
   505  }
   506  
   507  func WSAHtonl(s SOCKET, hostlong ULONG, lpnetlong *ULONG) int32 {
   508  	ret1 := syscall3(wSAHtonl, 3,
   509  		uintptr(s),
   510  		uintptr(hostlong),
   511  		uintptr(unsafe.Pointer(lpnetlong)))
   512  	return int32(ret1)
   513  }
   514  
   515  func WSAHtons(s SOCKET, hostshort uint16, lpnetshort *uint16) int32 {
   516  	ret1 := syscall3(wSAHtons, 3,
   517  		uintptr(s),
   518  		uintptr(hostshort),
   519  		uintptr(unsafe.Pointer(lpnetshort)))
   520  	return int32(ret1)
   521  }
   522  
   523  func WSAInstallServiceClass(info LPWSASERVICECLASSINFO) int32 {
   524  	ret1 := syscall3(wSAInstallServiceClass, 1,
   525  		uintptr(unsafe.Pointer(info)),
   526  		0,
   527  		0)
   528  	return int32(ret1)
   529  }
   530  
   531  func WSAIoctl(s SOCKET, code DWORD, in_buff LPVOID, in_size DWORD, out_buff LPVOID, out_size DWORD, ret_size *uint32, overlapped LPWSAOVERLAPPED, completion LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
   532  	completionCallback := syscall.NewCallback(completion)
   533  	ret1 := syscall9(wSAIoctl, 9,
   534  		uintptr(s),
   535  		uintptr(code),
   536  		uintptr(unsafe.Pointer(in_buff)),
   537  		uintptr(in_size),
   538  		uintptr(unsafe.Pointer(out_buff)),
   539  		uintptr(out_size),
   540  		uintptr(unsafe.Pointer(ret_size)),
   541  		uintptr(unsafe.Pointer(overlapped)),
   542  		completionCallback)
   543  	return INT(ret1)
   544  }
   545  
   546  func WSAIsBlocking() bool {
   547  	ret1 := syscall3(wSAIsBlocking, 0,
   548  		0,
   549  		0,
   550  		0)
   551  	return ret1 != 0
   552  }
   553  
   554  func WSAJoinLeaf(s SOCKET, addr /*const*/ *Sockaddr, addrlen int32, lpCallerData LPWSABUF, lpCalleeData LPWSABUF, lpSQOS *QOS, lpGQOS *QOS, dwFlags DWORD) SOCKET {
   555  	ret1 := syscall9(wSAJoinLeaf, 8,
   556  		uintptr(s),
   557  		uintptr(unsafe.Pointer(addr)),
   558  		uintptr(addrlen),
   559  		uintptr(unsafe.Pointer(lpCallerData)),
   560  		uintptr(unsafe.Pointer(lpCalleeData)),
   561  		uintptr(unsafe.Pointer(lpSQOS)),
   562  		uintptr(unsafe.Pointer(lpGQOS)),
   563  		uintptr(dwFlags),
   564  		0)
   565  	return SOCKET(ret1)
   566  }
   567  
   568  func WSALookupServiceBegin(lpqsRestrictions LPWSAQUERYSET, dwControlFlags DWORD, lphLookup *HANDLE) INT {
   569  	ret1 := syscall3(wSALookupServiceBegin, 3,
   570  		uintptr(unsafe.Pointer(lpqsRestrictions)),
   571  		uintptr(dwControlFlags),
   572  		uintptr(unsafe.Pointer(lphLookup)))
   573  	return INT(ret1)
   574  }
   575  
   576  func WSALookupServiceEnd(lookup HANDLE) INT {
   577  	ret1 := syscall3(wSALookupServiceEnd, 1,
   578  		uintptr(lookup),
   579  		0,
   580  		0)
   581  	return INT(ret1)
   582  }
   583  
   584  func WSALookupServiceNext(lookup HANDLE, flags DWORD, aLen *uint32, results LPWSAQUERYSET) INT {
   585  	ret1 := syscall6(wSALookupServiceNext, 4,
   586  		uintptr(lookup),
   587  		uintptr(flags),
   588  		uintptr(unsafe.Pointer(aLen)),
   589  		uintptr(unsafe.Pointer(results)),
   590  		0,
   591  		0)
   592  	return INT(ret1)
   593  }
   594  
   595  func WSANSPIoctl(hLookup HANDLE, dwControlCode DWORD, lpvInBuffer LPVOID, cbInBuffer DWORD, lpvOutBuffer LPVOID, cbOutBuffer DWORD, lpcbBytesReturned *uint32, lpCompletion *WSACOMPLETION) INT {
   596  	ret1 := syscall9(wSANSPIoctl, 8,
   597  		uintptr(hLookup),
   598  		uintptr(dwControlCode),
   599  		uintptr(unsafe.Pointer(lpvInBuffer)),
   600  		uintptr(cbInBuffer),
   601  		uintptr(unsafe.Pointer(lpvOutBuffer)),
   602  		uintptr(cbOutBuffer),
   603  		uintptr(unsafe.Pointer(lpcbBytesReturned)),
   604  		uintptr(unsafe.Pointer(lpCompletion)),
   605  		0)
   606  	return INT(ret1)
   607  }
   608  
   609  func WSANtohl(s SOCKET, netlong ULONG, lphostlong *ULONG) INT {
   610  	ret1 := syscall3(wSANtohl, 3,
   611  		uintptr(s),
   612  		uintptr(netlong),
   613  		uintptr(unsafe.Pointer(lphostlong)))
   614  	return INT(ret1)
   615  }
   616  
   617  func WSANtohs(s SOCKET, netshort uint16, lphostshort *uint16) INT {
   618  	ret1 := syscall3(wSANtohs, 3,
   619  		uintptr(s),
   620  		uintptr(netshort),
   621  		uintptr(unsafe.Pointer(lphostshort)))
   622  	return INT(ret1)
   623  }
   624  
   625  func WSAPoll(wfds *WSAPOLLFD, count ULONG, timeout int32) int32 {
   626  	ret1 := syscall3(wSAPoll, 3,
   627  		uintptr(unsafe.Pointer(wfds)),
   628  		uintptr(count),
   629  		uintptr(timeout))
   630  	return int32(ret1)
   631  }
   632  
   633  func WSAProviderConfigChange(handle *HANDLE, overlapped LPWSAOVERLAPPED, completion LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
   634  	completionCallback := syscall.NewCallback(completion)
   635  	ret1 := syscall3(wSAProviderConfigChange, 3,
   636  		uintptr(unsafe.Pointer(handle)),
   637  		uintptr(unsafe.Pointer(overlapped)),
   638  		completionCallback)
   639  	return INT(ret1)
   640  }
   641  
   642  func WSARecv(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, numberOfBytesReceived *uint32, lpFlags *uint32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) int32 {
   643  	lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
   644  	ret1 := syscall9(wSARecv, 7,
   645  		uintptr(s),
   646  		uintptr(unsafe.Pointer(lpBuffers)),
   647  		uintptr(dwBufferCount),
   648  		uintptr(unsafe.Pointer(numberOfBytesReceived)),
   649  		uintptr(unsafe.Pointer(lpFlags)),
   650  		uintptr(unsafe.Pointer(lpOverlapped)),
   651  		lpCompletionRoutineCallback,
   652  		0,
   653  		0)
   654  	return int32(ret1)
   655  }
   656  
   657  func WSARecvDisconnect(s SOCKET, disconnectdata LPWSABUF) INT {
   658  	ret1 := syscall3(wSARecvDisconnect, 2,
   659  		uintptr(s),
   660  		uintptr(unsafe.Pointer(disconnectdata)),
   661  		0)
   662  	return INT(ret1)
   663  }
   664  
   665  func WSARecvFrom(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesRecvd *uint32, lpFlags *uint32, lpFrom *Sockaddr, lpFromlen *int32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
   666  	lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
   667  	ret1 := syscall9(wSARecvFrom, 9,
   668  		uintptr(s),
   669  		uintptr(unsafe.Pointer(lpBuffers)),
   670  		uintptr(dwBufferCount),
   671  		uintptr(unsafe.Pointer(lpNumberOfBytesRecvd)),
   672  		uintptr(unsafe.Pointer(lpFlags)),
   673  		uintptr(unsafe.Pointer(lpFrom)),
   674  		uintptr(unsafe.Pointer(lpFromlen)),
   675  		uintptr(unsafe.Pointer(lpOverlapped)),
   676  		lpCompletionRoutineCallback)
   677  	return INT(ret1)
   678  }
   679  
   680  func WSARemoveServiceClass(info *GUID) int32 {
   681  	ret1 := syscall3(wSARemoveServiceClass, 1,
   682  		uintptr(unsafe.Pointer(info)),
   683  		0,
   684  		0)
   685  	return int32(ret1)
   686  }
   687  
   688  func WSASend(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesSent *uint32, dwFlags DWORD, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
   689  	lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
   690  	ret1 := syscall9(wSASend, 7,
   691  		uintptr(s),
   692  		uintptr(unsafe.Pointer(lpBuffers)),
   693  		uintptr(dwBufferCount),
   694  		uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
   695  		uintptr(dwFlags),
   696  		uintptr(unsafe.Pointer(lpOverlapped)),
   697  		lpCompletionRoutineCallback,
   698  		0,
   699  		0)
   700  	return INT(ret1)
   701  }
   702  
   703  func WSASendDisconnect(s SOCKET, lpBuffers LPWSABUF) INT {
   704  	ret1 := syscall3(wSASendDisconnect, 2,
   705  		uintptr(s),
   706  		uintptr(unsafe.Pointer(lpBuffers)),
   707  		0)
   708  	return INT(ret1)
   709  }
   710  
   711  func WSASendMsg(s SOCKET, msg *WSAMSG, dwFlags DWORD, lpNumberOfBytesSent *uint32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) int32 {
   712  	lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
   713  	ret1 := syscall6(wSASendMsg, 6,
   714  		uintptr(s),
   715  		uintptr(unsafe.Pointer(msg)),
   716  		uintptr(dwFlags),
   717  		uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
   718  		uintptr(unsafe.Pointer(lpOverlapped)),
   719  		lpCompletionRoutineCallback)
   720  	return int32(ret1)
   721  }
   722  
   723  func WSASendTo(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesSent *uint32, dwFlags DWORD, to /*const*/ *Sockaddr, tolen int32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
   724  	lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
   725  	ret1 := syscall9(wSASendTo, 9,
   726  		uintptr(s),
   727  		uintptr(unsafe.Pointer(lpBuffers)),
   728  		uintptr(dwBufferCount),
   729  		uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
   730  		uintptr(dwFlags),
   731  		uintptr(unsafe.Pointer(to)),
   732  		uintptr(tolen),
   733  		uintptr(unsafe.Pointer(lpOverlapped)),
   734  		lpCompletionRoutineCallback)
   735  	return INT(ret1)
   736  }
   737  
   738  func WSASetBlockingHook(lpBlockFunc FARPROC) FARPROC {
   739  	lpBlockFuncCallback := syscall.NewCallback(func() uintptr {
   740  		ret := lpBlockFunc()
   741  		return uintptr(unsafe.Pointer(ret))
   742  	})
   743  	ret1 := syscall3(wSASetBlockingHook, 1,
   744  		lpBlockFuncCallback,
   745  		0,
   746  		0)
   747  	return func() INT_PTR {
   748  		ret2 := syscall3(ret1, 0,
   749  			0,
   750  			0,
   751  			0)
   752  		return (INT_PTR)(unsafe.Pointer(ret2))
   753  	}
   754  }
   755  
   756  func WSASetLastError(iError INT) {
   757  	syscall3(wSASetLastError, 1,
   758  		uintptr(iError),
   759  		0,
   760  		0)
   761  }
   762  
   763  func WSASetService(query LPWSAQUERYSET, operation WSAESETSERVICEOP, flags DWORD) INT {
   764  	ret1 := syscall3(wSASetService, 3,
   765  		uintptr(unsafe.Pointer(query)),
   766  		uintptr(operation),
   767  		uintptr(flags))
   768  	return INT(ret1)
   769  }
   770  
   771  func WSASocket(af int32, aType int32, protocol int32, lpProtocolInfo LPWSAPROTOCOL_INFO, g GROUP, dwFlags DWORD) SOCKET {
   772  	ret1 := syscall6(wSASocket, 6,
   773  		uintptr(af),
   774  		uintptr(aType),
   775  		uintptr(protocol),
   776  		uintptr(unsafe.Pointer(lpProtocolInfo)),
   777  		uintptr(g),
   778  		uintptr(dwFlags))
   779  	return SOCKET(ret1)
   780  }
   781  
   782  func WSAStartup(wVersionRequested WORD, lpWSAData *WSADATA) int32 {
   783  	ret1 := syscall3(wSAStartup, 2,
   784  		uintptr(wVersionRequested),
   785  		uintptr(unsafe.Pointer(lpWSAData)),
   786  		0)
   787  	return int32(ret1)
   788  }
   789  
   790  func WSAStringToAddress(addressString LPWSTR, addressFamily INT, lpProtocolInfo LPWSAPROTOCOL_INFO, lpAddress *SOCKADDR, lpAddressLength *int32) INT {
   791  	ret1 := syscall6(wSAStringToAddress, 5,
   792  		uintptr(unsafe.Pointer(addressString)),
   793  		uintptr(addressFamily),
   794  		uintptr(unsafe.Pointer(lpProtocolInfo)),
   795  		uintptr(unsafe.Pointer(lpAddress)),
   796  		uintptr(unsafe.Pointer(lpAddressLength)),
   797  		0)
   798  	return INT(ret1)
   799  }
   800  
   801  func WSAUnhookBlockingHook() INT {
   802  	ret1 := syscall3(wSAUnhookBlockingHook, 0,
   803  		0,
   804  		0,
   805  		0)
   806  	return INT(ret1)
   807  }
   808  
   809  func WSApSetPostRoutine(lpPostRoutine LPWPUPOSTMESSAGE) INT {
   810  	lpPostRoutineCallback := syscall.NewCallback(func(unnamed0RawArg HWND, unnamed1RawArg UINT, unnamed2RawArg WPARAM, unnamed3RawArg LPARAM) uintptr {
   811  		ret := lpPostRoutine(unnamed0RawArg, unnamed1RawArg, unnamed2RawArg, unnamed3RawArg)
   812  		return uintptr(ret)
   813  	})
   814  	ret1 := syscall3(wSApSetPostRoutine, 1,
   815  		lpPostRoutineCallback,
   816  		0,
   817  		0)
   818  	return INT(ret1)
   819  }
   820  
   821  func WSCDeinstallProvider(lpProviderId *GUID, lpErrno *int32) INT {
   822  	ret1 := syscall3(wSCDeinstallProvider, 2,
   823  		uintptr(unsafe.Pointer(lpProviderId)),
   824  		uintptr(unsafe.Pointer(lpErrno)),
   825  		0)
   826  	return INT(ret1)
   827  }
   828  
   829  func WSCEnableNSProvider(provider *GUID, enable bool) INT {
   830  	ret1 := syscall3(wSCEnableNSProvider, 2,
   831  		uintptr(unsafe.Pointer(provider)),
   832  		getUintptrFromBool(enable),
   833  		0)
   834  	return INT(ret1)
   835  }
   836  
   837  func WSCEnumProtocols(protocols *int32, buffer LPWSAPROTOCOL_INFO, aLen *uint32, err *int32) INT {
   838  	ret1 := syscall6(wSCEnumProtocols, 4,
   839  		uintptr(unsafe.Pointer(protocols)),
   840  		uintptr(unsafe.Pointer(buffer)),
   841  		uintptr(unsafe.Pointer(aLen)),
   842  		uintptr(unsafe.Pointer(err)),
   843  		0,
   844  		0)
   845  	return INT(ret1)
   846  }
   847  
   848  func WSCGetProviderPath(provider *GUID, path LPWSTR, aLen *int32, errcode *int32) INT {
   849  	ret1 := syscall6(wSCGetProviderPath, 4,
   850  		uintptr(unsafe.Pointer(provider)),
   851  		uintptr(unsafe.Pointer(path)),
   852  		uintptr(unsafe.Pointer(aLen)),
   853  		uintptr(unsafe.Pointer(errcode)),
   854  		0,
   855  		0)
   856  	return INT(ret1)
   857  }
   858  
   859  func WSCInstallNameSpace(identifier LPWSTR, path LPWSTR, namespace DWORD, version DWORD, provider *GUID) INT {
   860  	ret1 := syscall6(wSCInstallNameSpace, 5,
   861  		uintptr(unsafe.Pointer(identifier)),
   862  		uintptr(unsafe.Pointer(path)),
   863  		uintptr(namespace),
   864  		uintptr(version),
   865  		uintptr(unsafe.Pointer(provider)),
   866  		0)
   867  	return INT(ret1)
   868  }
   869  
   870  func WSCInstallProvider(lpProviderId /*const*/ *GUID, lpszProviderDllPath string, lpProtocolInfoList /*const*/ LPWSAPROTOCOL_INFO, dwNumberOfEntries DWORD, lpErrno *int32) INT {
   871  	lpszProviderDllPathStr := unicode16FromString(lpszProviderDllPath)
   872  	ret1 := syscall6(wSCInstallProvider, 5,
   873  		uintptr(unsafe.Pointer(lpProviderId)),
   874  		uintptr(unsafe.Pointer(&lpszProviderDllPathStr[0])),
   875  		uintptr(unsafe.Pointer(lpProtocolInfoList)),
   876  		uintptr(dwNumberOfEntries),
   877  		uintptr(unsafe.Pointer(lpErrno)),
   878  		0)
   879  	return INT(ret1)
   880  }
   881  
   882  func WSCUnInstallNameSpace(lpProviderId *GUID) INT {
   883  	ret1 := syscall3(wSCUnInstallNameSpace, 1,
   884  		uintptr(unsafe.Pointer(lpProviderId)),
   885  		0,
   886  		0)
   887  	return INT(ret1)
   888  }
   889  
   890  func WSCWriteProviderOrder(entry *uint32, number DWORD) INT {
   891  	ret1 := syscall3(wSCWriteProviderOrder, 2,
   892  		uintptr(unsafe.Pointer(entry)),
   893  		uintptr(number),
   894  		0)
   895  	return INT(ret1)
   896  }
   897  
   898  func Gethostname(name *CHAR, namelen INT) int32 {
   899  	ret1 := syscall3(gethostname, 2,
   900  		uintptr(unsafe.Pointer(name)),
   901  		uintptr(namelen),
   902  		0)
   903  	return int32(ret1)
   904  }