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 }