Files
ShotRDP/grdp/win/ws2_32.go

905 lines
29 KiB
Go

// This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go
// go run internal/cmd/gen/gen.go
// +build windows
package win
import (
"syscall"
"unsafe"
)
var (
// Library
libws2_32 uintptr
// Functions
freeAddrInfoExW uintptr
freeAddrInfoW uintptr
getAddrInfoEx uintptr
getAddrInfoW uintptr
getNameInfoW uintptr
inetNtopW uintptr
inetPtonW uintptr
wPUCompleteOverlappedRequest uintptr
wSAAccept uintptr
wSAAddressToString uintptr
wSAAsyncGetHostByAddr uintptr
wSAAsyncGetHostByName uintptr
wSAAsyncGetProtoByName uintptr
wSAAsyncGetProtoByNumber uintptr
wSAAsyncGetServByName uintptr
wSAAsyncGetServByPort uintptr
wSAAsyncSelect uintptr
wSACancelAsyncRequest uintptr
wSACancelBlockingCall uintptr
wSACleanup uintptr
wSACloseEvent uintptr
wSAConnect uintptr
wSACreateEvent uintptr
wSADuplicateSocket uintptr
wSAEnumNameSpaceProviders uintptr
wSAEnumNetworkEvents uintptr
wSAEnumProtocols uintptr
wSAEventSelect uintptr
wSAGetLastError uintptr
wSAGetOverlappedResult uintptr
wSAGetQOSByName uintptr
wSAGetServiceClassInfo uintptr
wSAGetServiceClassNameByClassId uintptr
wSAHtonl uintptr
wSAHtons uintptr
wSAInstallServiceClass uintptr
wSAIoctl uintptr
wSAIsBlocking uintptr
wSAJoinLeaf uintptr
wSALookupServiceBegin uintptr
wSALookupServiceEnd uintptr
wSALookupServiceNext uintptr
wSANSPIoctl uintptr
wSANtohl uintptr
wSANtohs uintptr
wSAPoll uintptr
wSAProviderConfigChange uintptr
wSARecv uintptr
wSARecvDisconnect uintptr
wSARecvFrom uintptr
wSARemoveServiceClass uintptr
wSASend uintptr
wSASendDisconnect uintptr
wSASendMsg uintptr
wSASendTo uintptr
wSASetBlockingHook uintptr
wSASetLastError uintptr
wSASetService uintptr
wSASocket uintptr
wSAStartup uintptr
wSAStringToAddress uintptr
wSAUnhookBlockingHook uintptr
wSApSetPostRoutine uintptr
wSCDeinstallProvider uintptr
wSCEnableNSProvider uintptr
wSCEnumProtocols uintptr
wSCGetProviderPath uintptr
wSCInstallNameSpace uintptr
wSCInstallProvider uintptr
wSCUnInstallNameSpace uintptr
wSCWriteProviderOrder uintptr
gethostname uintptr
)
func init() {
// Library
libws2_32 = doLoadLibrary("ws2_32.dll")
// Functions
freeAddrInfoExW = doGetProcAddress(libws2_32, "FreeAddrInfoExW")
freeAddrInfoW = doGetProcAddress(libws2_32, "FreeAddrInfoW")
getAddrInfoEx = doGetProcAddress(libws2_32, "GetAddrInfoExW")
getAddrInfoW = doGetProcAddress(libws2_32, "GetAddrInfoW")
getNameInfoW = doGetProcAddress(libws2_32, "GetNameInfoW")
inetNtopW = doGetProcAddress(libws2_32, "InetNtopW")
inetPtonW = doGetProcAddress(libws2_32, "InetPtonW")
wPUCompleteOverlappedRequest = doGetProcAddress(libws2_32, "WPUCompleteOverlappedRequest")
wSAAccept = doGetProcAddress(libws2_32, "WSAAccept")
wSAAddressToString = doGetProcAddress(libws2_32, "WSAAddressToStringW")
wSAAsyncGetHostByAddr = doGetProcAddress(libws2_32, "WSAAsyncGetHostByAddr")
wSAAsyncGetHostByName = doGetProcAddress(libws2_32, "WSAAsyncGetHostByName")
wSAAsyncGetProtoByName = doGetProcAddress(libws2_32, "WSAAsyncGetProtoByName")
wSAAsyncGetProtoByNumber = doGetProcAddress(libws2_32, "WSAAsyncGetProtoByNumber")
wSAAsyncGetServByName = doGetProcAddress(libws2_32, "WSAAsyncGetServByName")
wSAAsyncGetServByPort = doGetProcAddress(libws2_32, "WSAAsyncGetServByPort")
wSAAsyncSelect = doGetProcAddress(libws2_32, "WSAAsyncSelect")
wSACancelAsyncRequest = doGetProcAddress(libws2_32, "WSACancelAsyncRequest")
wSACancelBlockingCall = doGetProcAddress(libws2_32, "WSACancelBlockingCall")
wSACleanup = doGetProcAddress(libws2_32, "WSACleanup")
wSACloseEvent = doGetProcAddress(libws2_32, "WSACloseEvent")
wSAConnect = doGetProcAddress(libws2_32, "WSAConnect")
wSACreateEvent = doGetProcAddress(libws2_32, "WSACreateEvent")
wSADuplicateSocket = doGetProcAddress(libws2_32, "WSADuplicateSocketW")
wSAEnumNameSpaceProviders = doGetProcAddress(libws2_32, "WSAEnumNameSpaceProvidersW")
wSAEnumNetworkEvents = doGetProcAddress(libws2_32, "WSAEnumNetworkEvents")
wSAEnumProtocols = doGetProcAddress(libws2_32, "WSAEnumProtocolsW")
wSAEventSelect = doGetProcAddress(libws2_32, "WSAEventSelect")
wSAGetLastError = doGetProcAddress(libws2_32, "WSAGetLastError")
wSAGetOverlappedResult = doGetProcAddress(libws2_32, "WSAGetOverlappedResult")
wSAGetQOSByName = doGetProcAddress(libws2_32, "WSAGetQOSByName")
wSAGetServiceClassInfo = doGetProcAddress(libws2_32, "WSAGetServiceClassInfoW")
wSAGetServiceClassNameByClassId = doGetProcAddress(libws2_32, "WSAGetServiceClassNameByClassIdW")
wSAHtonl = doGetProcAddress(libws2_32, "WSAHtonl")
wSAHtons = doGetProcAddress(libws2_32, "WSAHtons")
wSAInstallServiceClass = doGetProcAddress(libws2_32, "WSAInstallServiceClassW")
wSAIoctl = doGetProcAddress(libws2_32, "WSAIoctl")
wSAIsBlocking = doGetProcAddress(libws2_32, "WSAIsBlocking")
wSAJoinLeaf = doGetProcAddress(libws2_32, "WSAJoinLeaf")
wSALookupServiceBegin = doGetProcAddress(libws2_32, "WSALookupServiceBeginW")
wSALookupServiceEnd = doGetProcAddress(libws2_32, "WSALookupServiceEnd")
wSALookupServiceNext = doGetProcAddress(libws2_32, "WSALookupServiceNextW")
wSANSPIoctl = doGetProcAddress(libws2_32, "WSANSPIoctl")
wSANtohl = doGetProcAddress(libws2_32, "WSANtohl")
wSANtohs = doGetProcAddress(libws2_32, "WSANtohs")
wSAPoll = doGetProcAddress(libws2_32, "WSAPoll")
wSAProviderConfigChange = doGetProcAddress(libws2_32, "WSAProviderConfigChange")
wSARecv = doGetProcAddress(libws2_32, "WSARecv")
wSARecvDisconnect = doGetProcAddress(libws2_32, "WSARecvDisconnect")
wSARecvFrom = doGetProcAddress(libws2_32, "WSARecvFrom")
wSARemoveServiceClass = doGetProcAddress(libws2_32, "WSARemoveServiceClass")
wSASend = doGetProcAddress(libws2_32, "WSASend")
wSASendDisconnect = doGetProcAddress(libws2_32, "WSASendDisconnect")
wSASendMsg = doGetProcAddress(libws2_32, "WSASendMsg")
wSASendTo = doGetProcAddress(libws2_32, "WSASendTo")
wSASetBlockingHook = doGetProcAddress(libws2_32, "WSASetBlockingHook")
wSASetLastError = doGetProcAddress(libws2_32, "WSASetLastError")
wSASetService = doGetProcAddress(libws2_32, "WSASetServiceW")
wSASocket = doGetProcAddress(libws2_32, "WSASocketW")
wSAStartup = doGetProcAddress(libws2_32, "WSAStartup")
wSAStringToAddress = doGetProcAddress(libws2_32, "WSAStringToAddressW")
wSAUnhookBlockingHook = doGetProcAddress(libws2_32, "WSAUnhookBlockingHook")
wSApSetPostRoutine = doGetProcAddress(libws2_32, "WSApSetPostRoutine")
wSCDeinstallProvider = doGetProcAddress(libws2_32, "WSCDeinstallProvider")
wSCEnableNSProvider = doGetProcAddress(libws2_32, "WSCEnableNSProvider")
wSCEnumProtocols = doGetProcAddress(libws2_32, "WSCEnumProtocols")
wSCGetProviderPath = doGetProcAddress(libws2_32, "WSCGetProviderPath")
wSCInstallNameSpace = doGetProcAddress(libws2_32, "WSCInstallNameSpace")
wSCInstallProvider = doGetProcAddress(libws2_32, "WSCInstallProvider")
wSCUnInstallNameSpace = doGetProcAddress(libws2_32, "WSCUnInstallNameSpace")
wSCWriteProviderOrder = doGetProcAddress(libws2_32, "WSCWriteProviderOrder")
gethostname = doGetProcAddress(libws2_32, "gethostname")
}
func FreeAddrInfoExW(ai *ADDRINFOEX) {
syscall3(freeAddrInfoExW, 1,
uintptr(unsafe.Pointer(ai)),
0,
0)
}
func FreeAddrInfoW(ai PADDRINFO) {
syscall3(freeAddrInfoW, 1,
uintptr(unsafe.Pointer(ai)),
0,
0)
}
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 {
completion_routineCallback := syscall.NewCallback(completion_routine)
ret1 := syscall12(getAddrInfoEx, 10,
uintptr(unsafe.Pointer(name)),
uintptr(unsafe.Pointer(servname)),
uintptr(namespace),
uintptr(unsafe.Pointer(namespace_id)),
uintptr(unsafe.Pointer(hints)),
uintptr(unsafe.Pointer(result)),
uintptr(unsafe.Pointer(timeout)),
uintptr(unsafe.Pointer(overlapped)),
completion_routineCallback,
uintptr(unsafe.Pointer(handle)),
0,
0)
return int32(ret1)
}
func GetAddrInfoW(nodename string, servname string, hints /*const*/ *ADDRINFO, res *PADDRINFO) int32 {
nodenameStr := unicode16FromString(nodename)
servnameStr := unicode16FromString(servname)
ret1 := syscall6(getAddrInfoW, 4,
uintptr(unsafe.Pointer(&nodenameStr[0])),
uintptr(unsafe.Pointer(&servnameStr[0])),
uintptr(unsafe.Pointer(hints)),
uintptr(unsafe.Pointer(res)),
0,
0)
return int32(ret1)
}
func GetNameInfoW(sa /*const*/ *SOCKADDR, salen Socklen_t, host PWCHAR, hostlen DWORD, serv PWCHAR, servlen DWORD, flags INT) int32 {
ret1 := syscall9(getNameInfoW, 7,
uintptr(unsafe.Pointer(sa)),
uintptr(salen),
uintptr(unsafe.Pointer(host)),
uintptr(hostlen),
uintptr(unsafe.Pointer(serv)),
uintptr(servlen),
uintptr(flags),
0,
0)
return int32(ret1)
}
func InetNtopW(family INT, addr uintptr, buffer PWSTR, aLen SIZE_T) string {
ret1 := syscall6(inetNtopW, 4,
uintptr(family),
addr,
uintptr(unsafe.Pointer(buffer)),
uintptr(aLen),
0,
0)
return stringFromUnicode16((*uint16)(unsafe.Pointer(ret1)))
}
func InetPtonW(family INT, addr string, buffer uintptr) INT {
addrStr := unicode16FromString(addr)
ret1 := syscall3(inetPtonW, 3,
uintptr(family),
uintptr(unsafe.Pointer(&addrStr[0])),
buffer)
return INT(ret1)
}
func WPUCompleteOverlappedRequest(s SOCKET, overlapped LPWSAOVERLAPPED, error DWORD, transferred DWORD, errcode *int32) WSAEVENT {
ret1 := syscall6(wPUCompleteOverlappedRequest, 5,
uintptr(s),
uintptr(unsafe.Pointer(overlapped)),
uintptr(error),
uintptr(transferred),
uintptr(unsafe.Pointer(errcode)),
0)
return WSAEVENT(ret1)
}
func WSAAccept(s SOCKET, addr *Sockaddr, addrlen *int32, lpfnCondition LPCONDITIONPROC, dwCallbackData *uint32) SOCKET {
lpfnConditionCallback := syscall.NewCallback(func(lpCallerIdRawArg LPWSABUF, lpCallerDataRawArg LPWSABUF, lpSQOSRawArg LPQOS, lpGQOSRawArg LPQOS, lpCalleeIdRawArg LPWSABUF, lpCalleeDataRawArg LPWSABUF, gRawArg *GROUP, dwCallbackDataRawArg DWORD_PTR) uintptr {
ret := lpfnCondition(lpCallerIdRawArg, lpCallerDataRawArg, lpSQOSRawArg, lpGQOSRawArg, lpCalleeIdRawArg, lpCalleeDataRawArg, gRawArg, dwCallbackDataRawArg)
return uintptr(ret)
})
ret1 := syscall6(wSAAccept, 5,
uintptr(s),
uintptr(unsafe.Pointer(addr)),
uintptr(unsafe.Pointer(addrlen)),
lpfnConditionCallback,
uintptr(unsafe.Pointer(dwCallbackData)),
0)
return SOCKET(ret1)
}
func WSAAddressToString(sockaddr *SOCKADDR, aLen DWORD, info LPWSAPROTOCOL_INFO, string LPWSTR, lenstr *uint32) INT {
ret1 := syscall6(wSAAddressToString, 5,
uintptr(unsafe.Pointer(sockaddr)),
uintptr(aLen),
uintptr(unsafe.Pointer(info)),
uintptr(unsafe.Pointer(string)),
uintptr(unsafe.Pointer(lenstr)),
0)
return INT(ret1)
}
func WSAAsyncGetHostByAddr(hWnd HWND, uMsg UINT, addr /*const*/ LPCSTR, aLen INT, aType INT, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall9(wSAAsyncGetHostByAddr, 7,
uintptr(hWnd),
uintptr(uMsg),
uintptr(unsafe.Pointer(addr)),
uintptr(aLen),
uintptr(aType),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen),
0,
0)
return HANDLE(ret1)
}
func WSAAsyncGetHostByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall6(wSAAsyncGetHostByName, 5,
uintptr(hWnd),
uintptr(uMsg),
uintptr(unsafe.Pointer(name)),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen),
0)
return HANDLE(ret1)
}
func WSAAsyncGetProtoByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall6(wSAAsyncGetProtoByName, 5,
uintptr(hWnd),
uintptr(uMsg),
uintptr(unsafe.Pointer(name)),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen),
0)
return HANDLE(ret1)
}
func WSAAsyncGetProtoByNumber(hWnd HWND, uMsg UINT, number INT, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall6(wSAAsyncGetProtoByNumber, 5,
uintptr(hWnd),
uintptr(uMsg),
uintptr(number),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen),
0)
return HANDLE(ret1)
}
func WSAAsyncGetServByName(hWnd HWND, uMsg UINT, name /*const*/ LPCSTR, proto /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall6(wSAAsyncGetServByName, 6,
uintptr(hWnd),
uintptr(uMsg),
uintptr(unsafe.Pointer(name)),
uintptr(unsafe.Pointer(proto)),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen))
return HANDLE(ret1)
}
func WSAAsyncGetServByPort(hWnd HWND, uMsg UINT, port INT, proto /*const*/ LPCSTR, sbuf LPSTR, buflen INT) HANDLE {
ret1 := syscall6(wSAAsyncGetServByPort, 6,
uintptr(hWnd),
uintptr(uMsg),
uintptr(port),
uintptr(unsafe.Pointer(proto)),
uintptr(unsafe.Pointer(sbuf)),
uintptr(buflen))
return HANDLE(ret1)
}
func WSAAsyncSelect(s SOCKET, hWnd HWND, uMsg UINT, lEvent LONG) INT {
ret1 := syscall6(wSAAsyncSelect, 4,
uintptr(s),
uintptr(hWnd),
uintptr(uMsg),
uintptr(lEvent),
0,
0)
return INT(ret1)
}
func WSACancelAsyncRequest(hAsyncTaskHandle HANDLE) INT {
ret1 := syscall3(wSACancelAsyncRequest, 1,
uintptr(hAsyncTaskHandle),
0,
0)
return INT(ret1)
}
func WSACancelBlockingCall() INT {
ret1 := syscall3(wSACancelBlockingCall, 0,
0,
0,
0)
return INT(ret1)
}
func WSACleanup() INT {
ret1 := syscall3(wSACleanup, 0,
0,
0,
0)
return INT(ret1)
}
func WSACloseEvent(event WSAEVENT) bool {
ret1 := syscall3(wSACloseEvent, 1,
uintptr(event),
0,
0)
return ret1 != 0
}
func WSAConnect(s SOCKET, name /*const*/ *Sockaddr, namelen int32, lpCallerData LPWSABUF, lpCalleeData LPWSABUF, lpSQOS *QOS, lpGQOS *QOS) int32 {
ret1 := syscall9(wSAConnect, 7,
uintptr(s),
uintptr(unsafe.Pointer(name)),
uintptr(namelen),
uintptr(unsafe.Pointer(lpCallerData)),
uintptr(unsafe.Pointer(lpCalleeData)),
uintptr(unsafe.Pointer(lpSQOS)),
uintptr(unsafe.Pointer(lpGQOS)),
0,
0)
return int32(ret1)
}
func WSACreateEvent() WSAEVENT {
ret1 := syscall3(wSACreateEvent, 0,
0,
0,
0)
return WSAEVENT(ret1)
}
func WSADuplicateSocket(s SOCKET, dwProcessId DWORD, lpProtocolInfo LPWSAPROTOCOL_INFO) int32 {
ret1 := syscall3(wSADuplicateSocket, 3,
uintptr(s),
uintptr(dwProcessId),
uintptr(unsafe.Pointer(lpProtocolInfo)))
return int32(ret1)
}
func WSAEnumNameSpaceProviders(aLen *uint32, buffer LPWSANAMESPACE_INFO) INT {
ret1 := syscall3(wSAEnumNameSpaceProviders, 2,
uintptr(unsafe.Pointer(aLen)),
uintptr(unsafe.Pointer(buffer)),
0)
return INT(ret1)
}
func WSAEnumNetworkEvents(s SOCKET, hEvent WSAEVENT, lpEvent *WSANETWORKEVENTS) int32 {
ret1 := syscall3(wSAEnumNetworkEvents, 3,
uintptr(s),
uintptr(hEvent),
uintptr(unsafe.Pointer(lpEvent)))
return int32(ret1)
}
func WSAEnumProtocols(protocols *int32, buffer LPWSAPROTOCOL_INFO, aLen *uint32) INT {
ret1 := syscall3(wSAEnumProtocols, 3,
uintptr(unsafe.Pointer(protocols)),
uintptr(unsafe.Pointer(buffer)),
uintptr(unsafe.Pointer(aLen)))
return INT(ret1)
}
func WSAEventSelect(s SOCKET, hEvent WSAEVENT, lEvent LONG) int32 {
ret1 := syscall3(wSAEventSelect, 3,
uintptr(s),
uintptr(hEvent),
uintptr(lEvent))
return int32(ret1)
}
func WSAGetLastError() INT {
ret1 := syscall3(wSAGetLastError, 0,
0,
0,
0)
return INT(ret1)
}
func WSAGetOverlappedResult(s SOCKET, lpOverlapped LPWSAOVERLAPPED, lpcbTransfer *uint32, fWait bool, lpdwFlags *uint32) bool {
ret1 := syscall6(wSAGetOverlappedResult, 5,
uintptr(s),
uintptr(unsafe.Pointer(lpOverlapped)),
uintptr(unsafe.Pointer(lpcbTransfer)),
getUintptrFromBool(fWait),
uintptr(unsafe.Pointer(lpdwFlags)),
0)
return ret1 != 0
}
func WSAGetQOSByName(s SOCKET, lpQOSName LPWSABUF, lpQOS *QOS) bool {
ret1 := syscall3(wSAGetQOSByName, 3,
uintptr(s),
uintptr(unsafe.Pointer(lpQOSName)),
uintptr(unsafe.Pointer(lpQOS)))
return ret1 != 0
}
func WSAGetServiceClassInfo(provider *GUID, service *GUID, aLen *uint32, info LPWSASERVICECLASSINFO) INT {
ret1 := syscall6(wSAGetServiceClassInfo, 4,
uintptr(unsafe.Pointer(provider)),
uintptr(unsafe.Pointer(service)),
uintptr(unsafe.Pointer(aLen)),
uintptr(unsafe.Pointer(info)),
0,
0)
return INT(ret1)
}
func WSAGetServiceClassNameByClassId(class *GUID, service LPWSTR, aLen *uint32) INT {
ret1 := syscall3(wSAGetServiceClassNameByClassId, 3,
uintptr(unsafe.Pointer(class)),
uintptr(unsafe.Pointer(service)),
uintptr(unsafe.Pointer(aLen)))
return INT(ret1)
}
func WSAHtonl(s SOCKET, hostlong ULONG, lpnetlong *ULONG) int32 {
ret1 := syscall3(wSAHtonl, 3,
uintptr(s),
uintptr(hostlong),
uintptr(unsafe.Pointer(lpnetlong)))
return int32(ret1)
}
func WSAHtons(s SOCKET, hostshort uint16, lpnetshort *uint16) int32 {
ret1 := syscall3(wSAHtons, 3,
uintptr(s),
uintptr(hostshort),
uintptr(unsafe.Pointer(lpnetshort)))
return int32(ret1)
}
func WSAInstallServiceClass(info LPWSASERVICECLASSINFO) int32 {
ret1 := syscall3(wSAInstallServiceClass, 1,
uintptr(unsafe.Pointer(info)),
0,
0)
return int32(ret1)
}
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 {
completionCallback := syscall.NewCallback(completion)
ret1 := syscall9(wSAIoctl, 9,
uintptr(s),
uintptr(code),
uintptr(unsafe.Pointer(in_buff)),
uintptr(in_size),
uintptr(unsafe.Pointer(out_buff)),
uintptr(out_size),
uintptr(unsafe.Pointer(ret_size)),
uintptr(unsafe.Pointer(overlapped)),
completionCallback)
return INT(ret1)
}
func WSAIsBlocking() bool {
ret1 := syscall3(wSAIsBlocking, 0,
0,
0,
0)
return ret1 != 0
}
func WSAJoinLeaf(s SOCKET, addr /*const*/ *Sockaddr, addrlen int32, lpCallerData LPWSABUF, lpCalleeData LPWSABUF, lpSQOS *QOS, lpGQOS *QOS, dwFlags DWORD) SOCKET {
ret1 := syscall9(wSAJoinLeaf, 8,
uintptr(s),
uintptr(unsafe.Pointer(addr)),
uintptr(addrlen),
uintptr(unsafe.Pointer(lpCallerData)),
uintptr(unsafe.Pointer(lpCalleeData)),
uintptr(unsafe.Pointer(lpSQOS)),
uintptr(unsafe.Pointer(lpGQOS)),
uintptr(dwFlags),
0)
return SOCKET(ret1)
}
func WSALookupServiceBegin(lpqsRestrictions LPWSAQUERYSET, dwControlFlags DWORD, lphLookup *HANDLE) INT {
ret1 := syscall3(wSALookupServiceBegin, 3,
uintptr(unsafe.Pointer(lpqsRestrictions)),
uintptr(dwControlFlags),
uintptr(unsafe.Pointer(lphLookup)))
return INT(ret1)
}
func WSALookupServiceEnd(lookup HANDLE) INT {
ret1 := syscall3(wSALookupServiceEnd, 1,
uintptr(lookup),
0,
0)
return INT(ret1)
}
func WSALookupServiceNext(lookup HANDLE, flags DWORD, aLen *uint32, results LPWSAQUERYSET) INT {
ret1 := syscall6(wSALookupServiceNext, 4,
uintptr(lookup),
uintptr(flags),
uintptr(unsafe.Pointer(aLen)),
uintptr(unsafe.Pointer(results)),
0,
0)
return INT(ret1)
}
func WSANSPIoctl(hLookup HANDLE, dwControlCode DWORD, lpvInBuffer LPVOID, cbInBuffer DWORD, lpvOutBuffer LPVOID, cbOutBuffer DWORD, lpcbBytesReturned *uint32, lpCompletion *WSACOMPLETION) INT {
ret1 := syscall9(wSANSPIoctl, 8,
uintptr(hLookup),
uintptr(dwControlCode),
uintptr(unsafe.Pointer(lpvInBuffer)),
uintptr(cbInBuffer),
uintptr(unsafe.Pointer(lpvOutBuffer)),
uintptr(cbOutBuffer),
uintptr(unsafe.Pointer(lpcbBytesReturned)),
uintptr(unsafe.Pointer(lpCompletion)),
0)
return INT(ret1)
}
func WSANtohl(s SOCKET, netlong ULONG, lphostlong *ULONG) INT {
ret1 := syscall3(wSANtohl, 3,
uintptr(s),
uintptr(netlong),
uintptr(unsafe.Pointer(lphostlong)))
return INT(ret1)
}
func WSANtohs(s SOCKET, netshort uint16, lphostshort *uint16) INT {
ret1 := syscall3(wSANtohs, 3,
uintptr(s),
uintptr(netshort),
uintptr(unsafe.Pointer(lphostshort)))
return INT(ret1)
}
func WSAPoll(wfds *WSAPOLLFD, count ULONG, timeout int32) int32 {
ret1 := syscall3(wSAPoll, 3,
uintptr(unsafe.Pointer(wfds)),
uintptr(count),
uintptr(timeout))
return int32(ret1)
}
func WSAProviderConfigChange(handle *HANDLE, overlapped LPWSAOVERLAPPED, completion LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
completionCallback := syscall.NewCallback(completion)
ret1 := syscall3(wSAProviderConfigChange, 3,
uintptr(unsafe.Pointer(handle)),
uintptr(unsafe.Pointer(overlapped)),
completionCallback)
return INT(ret1)
}
func WSARecv(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, numberOfBytesReceived *uint32, lpFlags *uint32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) int32 {
lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
ret1 := syscall9(wSARecv, 7,
uintptr(s),
uintptr(unsafe.Pointer(lpBuffers)),
uintptr(dwBufferCount),
uintptr(unsafe.Pointer(numberOfBytesReceived)),
uintptr(unsafe.Pointer(lpFlags)),
uintptr(unsafe.Pointer(lpOverlapped)),
lpCompletionRoutineCallback,
0,
0)
return int32(ret1)
}
func WSARecvDisconnect(s SOCKET, disconnectdata LPWSABUF) INT {
ret1 := syscall3(wSARecvDisconnect, 2,
uintptr(s),
uintptr(unsafe.Pointer(disconnectdata)),
0)
return INT(ret1)
}
func WSARecvFrom(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesRecvd *uint32, lpFlags *uint32, lpFrom *Sockaddr, lpFromlen *int32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
ret1 := syscall9(wSARecvFrom, 9,
uintptr(s),
uintptr(unsafe.Pointer(lpBuffers)),
uintptr(dwBufferCount),
uintptr(unsafe.Pointer(lpNumberOfBytesRecvd)),
uintptr(unsafe.Pointer(lpFlags)),
uintptr(unsafe.Pointer(lpFrom)),
uintptr(unsafe.Pointer(lpFromlen)),
uintptr(unsafe.Pointer(lpOverlapped)),
lpCompletionRoutineCallback)
return INT(ret1)
}
func WSARemoveServiceClass(info *GUID) int32 {
ret1 := syscall3(wSARemoveServiceClass, 1,
uintptr(unsafe.Pointer(info)),
0,
0)
return int32(ret1)
}
func WSASend(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesSent *uint32, dwFlags DWORD, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
ret1 := syscall9(wSASend, 7,
uintptr(s),
uintptr(unsafe.Pointer(lpBuffers)),
uintptr(dwBufferCount),
uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
uintptr(dwFlags),
uintptr(unsafe.Pointer(lpOverlapped)),
lpCompletionRoutineCallback,
0,
0)
return INT(ret1)
}
func WSASendDisconnect(s SOCKET, lpBuffers LPWSABUF) INT {
ret1 := syscall3(wSASendDisconnect, 2,
uintptr(s),
uintptr(unsafe.Pointer(lpBuffers)),
0)
return INT(ret1)
}
func WSASendMsg(s SOCKET, msg *WSAMSG, dwFlags DWORD, lpNumberOfBytesSent *uint32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) int32 {
lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
ret1 := syscall6(wSASendMsg, 6,
uintptr(s),
uintptr(unsafe.Pointer(msg)),
uintptr(dwFlags),
uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
uintptr(unsafe.Pointer(lpOverlapped)),
lpCompletionRoutineCallback)
return int32(ret1)
}
func WSASendTo(s SOCKET, lpBuffers LPWSABUF, dwBufferCount DWORD, lpNumberOfBytesSent *uint32, dwFlags DWORD, to /*const*/ *Sockaddr, tolen int32, lpOverlapped LPWSAOVERLAPPED, lpCompletionRoutine LPWSAOVERLAPPED_COMPLETION_ROUTINE) INT {
lpCompletionRoutineCallback := syscall.NewCallback(lpCompletionRoutine)
ret1 := syscall9(wSASendTo, 9,
uintptr(s),
uintptr(unsafe.Pointer(lpBuffers)),
uintptr(dwBufferCount),
uintptr(unsafe.Pointer(lpNumberOfBytesSent)),
uintptr(dwFlags),
uintptr(unsafe.Pointer(to)),
uintptr(tolen),
uintptr(unsafe.Pointer(lpOverlapped)),
lpCompletionRoutineCallback)
return INT(ret1)
}
func WSASetBlockingHook(lpBlockFunc FARPROC) FARPROC {
lpBlockFuncCallback := syscall.NewCallback(func() uintptr {
ret := lpBlockFunc()
return uintptr(unsafe.Pointer(ret))
})
ret1 := syscall3(wSASetBlockingHook, 1,
lpBlockFuncCallback,
0,
0)
return func() INT_PTR {
ret2 := syscall3(ret1, 0,
0,
0,
0)
return (INT_PTR)(unsafe.Pointer(ret2))
}
}
func WSASetLastError(iError INT) {
syscall3(wSASetLastError, 1,
uintptr(iError),
0,
0)
}
func WSASetService(query LPWSAQUERYSET, operation WSAESETSERVICEOP, flags DWORD) INT {
ret1 := syscall3(wSASetService, 3,
uintptr(unsafe.Pointer(query)),
uintptr(operation),
uintptr(flags))
return INT(ret1)
}
func WSASocket(af int32, aType int32, protocol int32, lpProtocolInfo LPWSAPROTOCOL_INFO, g GROUP, dwFlags DWORD) SOCKET {
ret1 := syscall6(wSASocket, 6,
uintptr(af),
uintptr(aType),
uintptr(protocol),
uintptr(unsafe.Pointer(lpProtocolInfo)),
uintptr(g),
uintptr(dwFlags))
return SOCKET(ret1)
}
func WSAStartup(wVersionRequested WORD, lpWSAData *WSADATA) int32 {
ret1 := syscall3(wSAStartup, 2,
uintptr(wVersionRequested),
uintptr(unsafe.Pointer(lpWSAData)),
0)
return int32(ret1)
}
func WSAStringToAddress(addressString LPWSTR, addressFamily INT, lpProtocolInfo LPWSAPROTOCOL_INFO, lpAddress *SOCKADDR, lpAddressLength *int32) INT {
ret1 := syscall6(wSAStringToAddress, 5,
uintptr(unsafe.Pointer(addressString)),
uintptr(addressFamily),
uintptr(unsafe.Pointer(lpProtocolInfo)),
uintptr(unsafe.Pointer(lpAddress)),
uintptr(unsafe.Pointer(lpAddressLength)),
0)
return INT(ret1)
}
func WSAUnhookBlockingHook() INT {
ret1 := syscall3(wSAUnhookBlockingHook, 0,
0,
0,
0)
return INT(ret1)
}
func WSApSetPostRoutine(lpPostRoutine LPWPUPOSTMESSAGE) INT {
lpPostRoutineCallback := syscall.NewCallback(func(unnamed0RawArg HWND, unnamed1RawArg UINT, unnamed2RawArg WPARAM, unnamed3RawArg LPARAM) uintptr {
ret := lpPostRoutine(unnamed0RawArg, unnamed1RawArg, unnamed2RawArg, unnamed3RawArg)
return uintptr(ret)
})
ret1 := syscall3(wSApSetPostRoutine, 1,
lpPostRoutineCallback,
0,
0)
return INT(ret1)
}
func WSCDeinstallProvider(lpProviderId *GUID, lpErrno *int32) INT {
ret1 := syscall3(wSCDeinstallProvider, 2,
uintptr(unsafe.Pointer(lpProviderId)),
uintptr(unsafe.Pointer(lpErrno)),
0)
return INT(ret1)
}
func WSCEnableNSProvider(provider *GUID, enable bool) INT {
ret1 := syscall3(wSCEnableNSProvider, 2,
uintptr(unsafe.Pointer(provider)),
getUintptrFromBool(enable),
0)
return INT(ret1)
}
func WSCEnumProtocols(protocols *int32, buffer LPWSAPROTOCOL_INFO, aLen *uint32, err *int32) INT {
ret1 := syscall6(wSCEnumProtocols, 4,
uintptr(unsafe.Pointer(protocols)),
uintptr(unsafe.Pointer(buffer)),
uintptr(unsafe.Pointer(aLen)),
uintptr(unsafe.Pointer(err)),
0,
0)
return INT(ret1)
}
func WSCGetProviderPath(provider *GUID, path LPWSTR, aLen *int32, errcode *int32) INT {
ret1 := syscall6(wSCGetProviderPath, 4,
uintptr(unsafe.Pointer(provider)),
uintptr(unsafe.Pointer(path)),
uintptr(unsafe.Pointer(aLen)),
uintptr(unsafe.Pointer(errcode)),
0,
0)
return INT(ret1)
}
func WSCInstallNameSpace(identifier LPWSTR, path LPWSTR, namespace DWORD, version DWORD, provider *GUID) INT {
ret1 := syscall6(wSCInstallNameSpace, 5,
uintptr(unsafe.Pointer(identifier)),
uintptr(unsafe.Pointer(path)),
uintptr(namespace),
uintptr(version),
uintptr(unsafe.Pointer(provider)),
0)
return INT(ret1)
}
func WSCInstallProvider(lpProviderId /*const*/ *GUID, lpszProviderDllPath string, lpProtocolInfoList /*const*/ LPWSAPROTOCOL_INFO, dwNumberOfEntries DWORD, lpErrno *int32) INT {
lpszProviderDllPathStr := unicode16FromString(lpszProviderDllPath)
ret1 := syscall6(wSCInstallProvider, 5,
uintptr(unsafe.Pointer(lpProviderId)),
uintptr(unsafe.Pointer(&lpszProviderDllPathStr[0])),
uintptr(unsafe.Pointer(lpProtocolInfoList)),
uintptr(dwNumberOfEntries),
uintptr(unsafe.Pointer(lpErrno)),
0)
return INT(ret1)
}
func WSCUnInstallNameSpace(lpProviderId *GUID) INT {
ret1 := syscall3(wSCUnInstallNameSpace, 1,
uintptr(unsafe.Pointer(lpProviderId)),
0,
0)
return INT(ret1)
}
func WSCWriteProviderOrder(entry *uint32, number DWORD) INT {
ret1 := syscall3(wSCWriteProviderOrder, 2,
uintptr(unsafe.Pointer(entry)),
uintptr(number),
0)
return INT(ret1)
}
func Gethostname(name *CHAR, namelen INT) int32 {
ret1 := syscall3(gethostname, 2,
uintptr(unsafe.Pointer(name)),
uintptr(namelen),
0)
return int32(ret1)
}