1 // Copyright © 2015, Peter Atashian 2 // Licensed under the MIT License <LICENSE.md> 3 //! FFI bindings to ws2_32. 4 #![cfg(windows)] 5 extern crate winapi; 6 use winapi::*; 7 extern "system" { FreeAddrInfoEx(pAddrInfoEx: PADDRINFOEXA)8 pub fn FreeAddrInfoEx(pAddrInfoEx: PADDRINFOEXA); FreeAddrInfoExW(pAddrInfoEx: PADDRINFOEXW)9 pub fn FreeAddrInfoExW(pAddrInfoEx: PADDRINFOEXW); FreeAddrInfoW(pAddrInfo: PADDRINFOW)10 pub fn FreeAddrInfoW(pAddrInfo: PADDRINFOW); GetAddrInfoExA( pName: PCSTR, pServiceName: PCSTR, dwNameSpace: DWORD, lpNspId: LPGUID, hints: *const ADDRINFOEXA, ppResult: *mut PADDRINFOEXA, timeout: *mut timeval, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE, ) -> INT11 pub fn GetAddrInfoExA( 12 pName: PCSTR, pServiceName: PCSTR, dwNameSpace: DWORD, lpNspId: LPGUID, 13 hints: *const ADDRINFOEXA, ppResult: *mut PADDRINFOEXA, timeout: *mut timeval, 14 lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, 15 lpNameHandle: LPHANDLE, 16 ) -> INT; GetAddrInfoExCancel(lpHandle: LPHANDLE) -> INT17 pub fn GetAddrInfoExCancel(lpHandle: LPHANDLE) -> INT; GetAddrInfoExOverlappedResult(lpOverlapped: LPOVERLAPPED) -> INT18 pub fn GetAddrInfoExOverlappedResult(lpOverlapped: LPOVERLAPPED) -> INT; GetAddrInfoExW( pName: PCWSTR, pServiceName: PCWSTR, dwNameSpace: DWORD, lpNspId: LPGUID, hints: *const ADDRINFOEXW, ppResult: *mut PADDRINFOEXW, timeout: *mut timeval, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE, ) -> INT19 pub fn GetAddrInfoExW( 20 pName: PCWSTR, pServiceName: PCWSTR, dwNameSpace: DWORD, lpNspId: LPGUID, 21 hints: *const ADDRINFOEXW, ppResult: *mut PADDRINFOEXW, timeout: *mut timeval, 22 lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, 23 lpNameHandle: LPHANDLE, 24 ) -> INT; GetAddrInfoW( pNodeName: PCWSTR, pServiceName: PCWSTR, pHints: *const ADDRINFOW, ppResult: *mut PADDRINFOW, ) -> INT25 pub fn GetAddrInfoW( 26 pNodeName: PCWSTR, pServiceName: PCWSTR, pHints: *const ADDRINFOW, 27 ppResult: *mut PADDRINFOW, 28 ) -> INT; GetHostNameW(name: PWSTR, namelen: c_int) -> c_int29 pub fn GetHostNameW(name: PWSTR, namelen: c_int) -> c_int; GetNameInfoW( pSockaddr: *const SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PWCHAR, NodeBufferSize: DWORD, pServiceBuffer: PWCHAR, ServiceBufferSize: DWORD, Flags: INT, ) -> INT30 pub fn GetNameInfoW( 31 pSockaddr: *const SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PWCHAR, 32 NodeBufferSize: DWORD, pServiceBuffer: PWCHAR, ServiceBufferSize: DWORD, Flags: INT, 33 ) -> INT; InetNtopW(Family: INT, pAddr: PVOID, pStringBuf: PWSTR, StringBufSize: size_t) -> PCWSTR34 pub fn InetNtopW(Family: INT, pAddr: PVOID, pStringBuf: PWSTR, StringBufSize: size_t) -> PCWSTR; InetPtonW(Family: INT, pszAddrString: PCWSTR, pAddrBuf: PVOID) -> INT35 pub fn InetPtonW(Family: INT, pszAddrString: PCWSTR, pAddrBuf: PVOID) -> INT; SetAddrInfoExA( pName: PCSTR, pServiceName: PCSTR, pAddresses: *mut SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: *mut timeval, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE, ) -> INT36 pub fn SetAddrInfoExA( 37 pName: PCSTR, pServiceName: PCSTR, pAddresses: *mut SOCKET_ADDRESS, dwAddressCount: DWORD, 38 lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: *mut timeval, 39 lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, 40 lpNameHandle: LPHANDLE, 41 ) -> INT; SetAddrInfoExW( pName: PCWSTR, pServiceName: PCWSTR, pAddresses: *mut SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: *mut timeval, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE, ) -> INT42 pub fn SetAddrInfoExW( 43 pName: PCWSTR, pServiceName: PCWSTR, pAddresses: *mut SOCKET_ADDRESS, dwAddressCount: DWORD, 44 lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: *mut timeval, 45 lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, 46 lpNameHandle: LPHANDLE, 47 ) -> INT; 48 // pub fn WEP(); WPUCompleteOverlappedRequest( s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, dwError: DWORD, cbTransferred: DWORD, lpErrno: LPINT, ) -> c_int49 pub fn WPUCompleteOverlappedRequest( 50 s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, dwError: DWORD, cbTransferred: DWORD, 51 lpErrno: LPINT, 52 ) -> c_int; 53 // pub fn WPUGetProviderPathEx(); WSAAccept( s: SOCKET, addr: *mut SOCKADDR, addrlen: LPINT, lpfnCondition: LPCONDITIONPROC, dwCallbackData: DWORD_PTR, ) -> SOCKET54 pub fn WSAAccept( 55 s: SOCKET, addr: *mut SOCKADDR, addrlen: LPINT, lpfnCondition: LPCONDITIONPROC, 56 dwCallbackData: DWORD_PTR, 57 ) -> SOCKET; WSAAddressToStringA( lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpszAddressString: LPSTR, lpdwAddressStringLength: LPDWORD, ) -> INT58 pub fn WSAAddressToStringA( 59 lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, 60 lpszAddressString: LPSTR, lpdwAddressStringLength: LPDWORD, 61 ) -> INT; WSAAddressToStringW( lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpszAddressString: LPWSTR, lpdwAddressStringLength: LPDWORD, ) -> INT62 pub fn WSAAddressToStringW( 63 lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, 64 lpszAddressString: LPWSTR, lpdwAddressStringLength: LPDWORD, 65 ) -> INT; WSAAdvertiseProvider( puuidProviderId: *const GUID, pNSPv2Routine: *const LPCNSPV2_ROUTINE, ) -> INT66 pub fn WSAAdvertiseProvider( 67 puuidProviderId: *const GUID, pNSPv2Routine: *const LPCNSPV2_ROUTINE, 68 ) -> INT; WSAAsyncGetHostByAddr( hWnd: HWND, wMsg: u_int, addr: *const c_char, len: c_int, _type: c_int, buf: *mut c_char, buflen: c_int, ) -> HANDLE69 pub fn WSAAsyncGetHostByAddr( 70 hWnd: HWND, wMsg: u_int, addr: *const c_char, len: c_int, _type: c_int, buf: *mut c_char, 71 buflen: c_int, 72 ) -> HANDLE; WSAAsyncGetHostByName( hWnd: HWND, wMsg: u_int, name: *const c_char, buf: *mut c_char, buflen: c_int, ) -> HANDLE73 pub fn WSAAsyncGetHostByName( 74 hWnd: HWND, wMsg: u_int, name: *const c_char, buf: *mut c_char, buflen: c_int, 75 ) -> HANDLE; WSAAsyncGetProtoByName( hWnd: HWND, wMsg: u_int, name: *const c_char, buf: *mut c_char, buflen: c_int, ) -> HANDLE76 pub fn WSAAsyncGetProtoByName( 77 hWnd: HWND, wMsg: u_int, name: *const c_char, buf: *mut c_char, buflen: c_int, 78 ) -> HANDLE; WSAAsyncGetProtoByNumber( hWnd: HWND, wMsg: u_int, number: c_int, buf: *mut c_char, buflen: c_int, ) -> HANDLE79 pub fn WSAAsyncGetProtoByNumber( 80 hWnd: HWND, wMsg: u_int, number: c_int, buf: *mut c_char, buflen: c_int, 81 ) -> HANDLE; WSAAsyncGetServByName( hWnd: HWND, wMsg: u_int, name: *const c_char, proto: *const c_char, buf: *mut c_char, buflen: c_int, ) -> HANDLE82 pub fn WSAAsyncGetServByName( 83 hWnd: HWND, wMsg: u_int, name: *const c_char, proto: *const c_char, buf: *mut c_char, 84 buflen: c_int, 85 ) -> HANDLE; WSAAsyncGetServByPort( hWnd: HWND, wMsg: u_int, port: c_int, proto: *const c_char, buf: *mut c_char, buflen: c_int, ) -> HANDLE86 pub fn WSAAsyncGetServByPort( 87 hWnd: HWND, wMsg: u_int, port: c_int, proto: *const c_char, buf: *mut c_char, buflen: c_int, 88 ) -> HANDLE; WSAAsyncSelect(s: SOCKET, hWnd: HWND, wMsg: u_int, lEvent: c_long) -> c_int89 pub fn WSAAsyncSelect(s: SOCKET, hWnd: HWND, wMsg: u_int, lEvent: c_long) -> c_int; WSACancelAsyncRequest(hAsyncTaskHandle: HANDLE) -> c_int90 pub fn WSACancelAsyncRequest(hAsyncTaskHandle: HANDLE) -> c_int; WSACancelBlockingCall() -> c_int91 pub fn WSACancelBlockingCall() -> c_int; WSACleanup() -> c_int92 pub fn WSACleanup() -> c_int; WSACloseEvent(hEvent: WSAEVENT) -> BOOL93 pub fn WSACloseEvent(hEvent: WSAEVENT) -> BOOL; WSAConnect( s: SOCKET, name: *const SOCKADDR, namelen: c_int, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, ) -> c_int94 pub fn WSAConnect( 95 s: SOCKET, name: *const SOCKADDR, namelen: c_int, lpCallerData: LPWSABUF, 96 lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, 97 ) -> c_int; WSAConnectByList( s: SOCKET, SocketAddress: PSOCKET_ADDRESS_LIST, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: *const timeval, Reserved: LPWSAOVERLAPPED, ) -> BOOL98 pub fn WSAConnectByList( 99 s: SOCKET, SocketAddress: PSOCKET_ADDRESS_LIST, LocalAddressLength: LPDWORD, 100 LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, 101 timeout: *const timeval, Reserved: LPWSAOVERLAPPED, 102 ) -> BOOL; WSAConnectByNameA( s: SOCKET, nodename: LPCSTR, servicename: LPCSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: *const timeval, Reserved: LPWSAOVERLAPPED, ) -> BOOL103 pub fn WSAConnectByNameA( 104 s: SOCKET, nodename: LPCSTR, servicename: LPCSTR, LocalAddressLength: LPDWORD, 105 LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, 106 timeout: *const timeval, Reserved: LPWSAOVERLAPPED, 107 ) -> BOOL; WSAConnectByNameW( s: SOCKET, nodename: LPWSTR, servicename: LPWSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: *const timeval, Reserved: LPWSAOVERLAPPED, ) -> BOOL108 pub fn WSAConnectByNameW( 109 s: SOCKET, nodename: LPWSTR, servicename: LPWSTR, LocalAddressLength: LPDWORD, 110 LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, 111 timeout: *const timeval, Reserved: LPWSAOVERLAPPED, 112 ) -> BOOL; WSACreateEvent() -> WSAEVENT113 pub fn WSACreateEvent() -> WSAEVENT; WSADuplicateSocketA( s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, ) -> c_int114 pub fn WSADuplicateSocketA( 115 s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, 116 ) -> c_int; WSADuplicateSocketW( s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, ) -> c_int117 pub fn WSADuplicateSocketW( 118 s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, 119 ) -> c_int; WSAEnumNameSpaceProvidersA( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA, ) -> INT120 pub fn WSAEnumNameSpaceProvidersA( 121 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA, 122 ) -> INT; WSAEnumNameSpaceProvidersExA( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA, ) -> INT123 pub fn WSAEnumNameSpaceProvidersExA( 124 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA, 125 ) -> INT; WSAEnumNameSpaceProvidersExW( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW, ) -> INT126 pub fn WSAEnumNameSpaceProvidersExW( 127 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW, 128 ) -> INT; WSAEnumNameSpaceProvidersW( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW, ) -> INT129 pub fn WSAEnumNameSpaceProvidersW( 130 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW, 131 ) -> INT; WSAEnumNetworkEvents( s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS, ) -> c_int132 pub fn WSAEnumNetworkEvents( 133 s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS, 134 ) -> c_int; WSAEnumProtocolsA( lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD, ) -> c_int135 pub fn WSAEnumProtocolsA( 136 lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD, 137 ) -> c_int; WSAEnumProtocolsW( lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, ) -> c_int138 pub fn WSAEnumProtocolsW( 139 lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, 140 ) -> c_int; WSAEventSelect(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: c_long) -> c_int141 pub fn WSAEventSelect(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: c_long) -> c_int; WSAGetLastError() -> c_int142 pub fn WSAGetLastError() -> c_int; WSAGetOverlappedResult( s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, lpcbTransfer: LPDWORD, fWait: BOOL, lpdwFlags: LPDWORD, ) -> BOOL143 pub fn WSAGetOverlappedResult( 144 s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, lpcbTransfer: LPDWORD, fWait: BOOL, 145 lpdwFlags: LPDWORD, 146 ) -> BOOL; WSAGetQOSByName(s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS) -> BOOL147 pub fn WSAGetQOSByName(s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS) -> BOOL; WSAGetServiceClassInfoA( lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOA, ) -> INT148 pub fn WSAGetServiceClassInfoA( 149 lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, 150 lpServiceClassInfo: LPWSASERVICECLASSINFOA, 151 ) -> INT; WSAGetServiceClassInfoW( lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOW, ) -> INT152 pub fn WSAGetServiceClassInfoW( 153 lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, 154 lpServiceClassInfo: LPWSASERVICECLASSINFOW, 155 ) -> INT; WSAGetServiceClassNameByClassIdA( lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD, ) -> INT156 pub fn WSAGetServiceClassNameByClassIdA( 157 lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD, 158 ) -> INT; WSAGetServiceClassNameByClassIdW( lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD, ) -> INT159 pub fn WSAGetServiceClassNameByClassIdW( 160 lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD, 161 ) -> INT; WSAHtonl(s: SOCKET, hostlong: u_long, lpnetlong: *mut u_long) -> c_int162 pub fn WSAHtonl(s: SOCKET, hostlong: u_long, lpnetlong: *mut u_long) -> c_int; WSAHtons(s: SOCKET, hostshort: u_short, lpnetshort: *mut u_short) -> c_int163 pub fn WSAHtons(s: SOCKET, hostshort: u_short, lpnetshort: *mut u_short) -> c_int; WSAInstallServiceClassA(lpServiceClassInfo: LPWSASERVICECLASSINFOA) -> INT164 pub fn WSAInstallServiceClassA(lpServiceClassInfo: LPWSASERVICECLASSINFOA) -> INT; WSAInstallServiceClassW(lpServiceClassInfo: LPWSASERVICECLASSINFOW) -> INT165 pub fn WSAInstallServiceClassW(lpServiceClassInfo: LPWSASERVICECLASSINFOW) -> INT; WSAIoctl( s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int166 pub fn WSAIoctl( 167 s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, 168 lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, 169 lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 170 ) -> c_int; WSAIsBlocking() -> BOOL171 pub fn WSAIsBlocking() -> BOOL; WSAJoinLeaf( s: SOCKET, name: *const SOCKADDR, namelen: c_int, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, dwFlags: DWORD, ) -> SOCKET172 pub fn WSAJoinLeaf( 173 s: SOCKET, name: *const SOCKADDR, namelen: c_int, lpCallerData: LPWSABUF, 174 lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, dwFlags: DWORD, 175 ) -> SOCKET; WSALookupServiceBeginA( lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE, ) -> INT176 pub fn WSALookupServiceBeginA( 177 lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE, 178 ) -> INT; WSALookupServiceBeginW( lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE, ) -> INT179 pub fn WSALookupServiceBeginW( 180 lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE, 181 ) -> INT; WSALookupServiceEnd(hLookup: HANDLE) -> INT182 pub fn WSALookupServiceEnd(hLookup: HANDLE) -> INT; WSALookupServiceNextA( hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETA, ) -> INT183 pub fn WSALookupServiceNextA( 184 hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, 185 lpqsResults: LPWSAQUERYSETA, 186 ) -> INT; WSALookupServiceNextW( hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETW, ) -> INT187 pub fn WSALookupServiceNextW( 188 hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, 189 lpqsResults: LPWSAQUERYSETW, 190 ) -> INT; WSANSPIoctl( hLookup: HANDLE, dwControlFlags: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpCompletion: LPWSACOMPLETION, ) -> INT191 pub fn WSANSPIoctl( 192 hLookup: HANDLE, dwControlFlags: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, 193 lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, 194 lpCompletion: LPWSACOMPLETION, 195 ) -> INT; WSANtohl(s: SOCKET, netlong: u_long, lphostlong: *mut c_long) -> c_int196 pub fn WSANtohl(s: SOCKET, netlong: u_long, lphostlong: *mut c_long) -> c_int; WSANtohs(s: SOCKET, netshort: u_short, lphostshort: *mut c_short) -> c_int197 pub fn WSANtohs(s: SOCKET, netshort: u_short, lphostshort: *mut c_short) -> c_int; WSAPoll(fdArray: LPWSAPOLLFD, fds: ULONG, timeout: INT) -> c_int198 pub fn WSAPoll(fdArray: LPWSAPOLLFD, fds: ULONG, timeout: INT) -> c_int; WSAProviderCompleteAsyncCall(hAsyncCall: HANDLE, iRetCode: INT) -> INT199 pub fn WSAProviderCompleteAsyncCall(hAsyncCall: HANDLE, iRetCode: INT) -> INT; WSAProviderConfigChange( lpNotificationHandle: LPHANDLE, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> INT200 pub fn WSAProviderConfigChange( 201 lpNotificationHandle: LPHANDLE, lpOverlapped: LPWSAOVERLAPPED, 202 lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 203 ) -> INT; WSARecv( s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int204 pub fn WSARecv( 205 s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, 206 lpFlags: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, 207 lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 208 ) -> c_int; WSARecvDisconnect(s: SOCKET, lpInboundDisconnectData: LPWSABUF) -> c_int209 pub fn WSARecvDisconnect(s: SOCKET, lpInboundDisconnectData: LPWSABUF) -> c_int; WSARecvFrom( s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpFrom: *mut SOCKADDR, lpFromlen: LPINT, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int210 pub fn WSARecvFrom( 211 s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, 212 lpFlags: LPDWORD, lpFrom: *mut SOCKADDR, lpFromlen: LPINT, lpOverlapped: LPWSAOVERLAPPED, 213 lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 214 ) -> c_int; WSARemoveServiceClass(lpServiceClassId: LPGUID) -> INT215 pub fn WSARemoveServiceClass(lpServiceClassId: LPGUID) -> INT; WSAResetEvent(hEvent: WSAEVENT) -> BOOL216 pub fn WSAResetEvent(hEvent: WSAEVENT) -> BOOL; WSASend( s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int217 pub fn WSASend( 218 s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, 219 dwFlags: DWORD, lpOverlapped: LPWSAOVERLAPPED, 220 lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 221 ) -> c_int; WSASendDisconnect(s: SOCKET, lpOutboundDisconnectData: LPWSABUF) -> c_int222 pub fn WSASendDisconnect(s: SOCKET, lpOutboundDisconnectData: LPWSABUF) -> c_int; WSASendMsg( Handle: SOCKET, lpMsg: LPWSAMSG, dwFlags: DWORD, lpNumberOfBytesSent: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int223 pub fn WSASendMsg( 224 Handle: SOCKET, lpMsg: LPWSAMSG, dwFlags: DWORD, lpNumberOfBytesSent: LPDWORD, 225 lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 226 ) -> c_int; WSASendTo( s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpTo: *const SOCKADDR, iToLen: c_int, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int227 pub fn WSASendTo( 228 s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, 229 dwFlags: DWORD, lpTo: *const SOCKADDR, iToLen: c_int, lpOverlapped: LPWSAOVERLAPPED, 230 lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, 231 ) -> c_int; WSASetBlockingHook(lpBlockFunc: FARPROC) -> FARPROC232 pub fn WSASetBlockingHook(lpBlockFunc: FARPROC) -> FARPROC; WSASetEvent(hEvent: WSAEVENT) -> BOOL233 pub fn WSASetEvent(hEvent: WSAEVENT) -> BOOL; WSASetLastError(iError: c_int)234 pub fn WSASetLastError(iError: c_int); WSASetServiceA( lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD, ) -> INT235 pub fn WSASetServiceA( 236 lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD, 237 ) -> INT; WSASetServiceW( lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD, ) -> INT238 pub fn WSASetServiceW( 239 lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD, 240 ) -> INT; WSASocketA( af: c_int, _type: c_int, protocol: c_int, lpProtocolInfo: LPWSAPROTOCOL_INFOA, g: GROUP, dwFlags: DWORD, ) -> SOCKET241 pub fn WSASocketA( 242 af: c_int, _type: c_int, protocol: c_int, lpProtocolInfo: LPWSAPROTOCOL_INFOA, g: GROUP, 243 dwFlags: DWORD, 244 ) -> SOCKET; WSASocketW( af: c_int, _type: c_int, protocol: c_int, lpProtocolInfo: LPWSAPROTOCOL_INFOW, g: GROUP, dwFlags: DWORD, ) -> SOCKET245 pub fn WSASocketW( 246 af: c_int, _type: c_int, protocol: c_int, lpProtocolInfo: LPWSAPROTOCOL_INFOW, g: GROUP, 247 dwFlags: DWORD, 248 ) -> SOCKET; WSAStartup(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int249 pub fn WSAStartup(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int; WSAStringToAddressA( AddressString: LPSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpAddress: LPSOCKADDR, lpAddressLength: LPINT, ) -> INT250 pub fn WSAStringToAddressA( 251 AddressString: LPSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOA, 252 lpAddress: LPSOCKADDR, lpAddressLength: LPINT, 253 ) -> INT; WSAStringToAddressW( AddressString: LPWSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpAddress: LPSOCKADDR, lpAddressLength: LPINT, ) -> INT254 pub fn WSAStringToAddressW( 255 AddressString: LPWSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOW, 256 lpAddress: LPSOCKADDR, lpAddressLength: LPINT, 257 ) -> INT; WSAUnadvertiseProvider(puuidProviderId: *const GUID) -> INT258 pub fn WSAUnadvertiseProvider(puuidProviderId: *const GUID) -> INT; WSAUnhookBlockingHook() -> c_int259 pub fn WSAUnhookBlockingHook() -> c_int; WSAWaitForMultipleEvents( cEvents: DWORD, lphEvents: *const WSAEVENT, fWaitAll: BOOL, dwTimeout: DWORD, fAlertable: BOOL, ) -> DWORD260 pub fn WSAWaitForMultipleEvents( 261 cEvents: DWORD, lphEvents: *const WSAEVENT, fWaitAll: BOOL, dwTimeout: DWORD, 262 fAlertable: BOOL, 263 ) -> DWORD; WSCDeinstallProvider(lpProviderId: LPGUID, lpErrno: LPINT) -> c_int264 pub fn WSCDeinstallProvider(lpProviderId: LPGUID, lpErrno: LPINT) -> c_int; 265 // pub fn WSCDeinstallProviderEx(); WSCEnableNSProvider(lpProviderId: LPGUID, fEnable: BOOL) -> INT266 pub fn WSCEnableNSProvider(lpProviderId: LPGUID, fEnable: BOOL) -> INT; WSCEnumProtocols( lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, lpErrno: LPINT, ) -> c_int267 pub fn WSCEnumProtocols( 268 lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, 269 lpErrno: LPINT, 270 ) -> c_int; 271 // pub fn WSCEnumProtocolsEx(); WSCGetApplicationCategory( Path: LPCWSTR, PathLength: DWORD, Extra: LPCWSTR, ExtraLength: DWORD, pPermittedLspCategories: *mut DWORD, lpErrno: LPINT, ) -> c_int272 pub fn WSCGetApplicationCategory( 273 Path: LPCWSTR, PathLength: DWORD, Extra: LPCWSTR, ExtraLength: DWORD, 274 pPermittedLspCategories: *mut DWORD, lpErrno: LPINT, 275 ) -> c_int; 276 // pub fn WSCGetApplicationCategoryEx(); WSCGetProviderInfo( lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: *mut size_t, Flags: DWORD, lpErrno: LPINT, ) -> c_int277 pub fn WSCGetProviderInfo( 278 lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: *mut size_t, 279 Flags: DWORD, lpErrno: LPINT, 280 ) -> c_int; WSCGetProviderPath( lpProviderId: LPGUID, lpszProviderDllPath: *mut WCHAR, lpProviderDllPathLen: LPINT, lpErrno: LPINT, ) -> c_int281 pub fn WSCGetProviderPath( 282 lpProviderId: LPGUID, lpszProviderDllPath: *mut WCHAR, lpProviderDllPathLen: LPINT, 283 lpErrno: LPINT, 284 ) -> c_int; WSCInstallNameSpace( lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, lpProviderId: LPGUID, ) -> INT285 pub fn WSCInstallNameSpace( 286 lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, 287 lpProviderId: LPGUID, 288 ) -> INT; WSCInstallNameSpaceEx( lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, lpProviderId: LPGUID, lpProviderSpecific: LPBLOB, ) -> INT289 pub fn WSCInstallNameSpaceEx( 290 lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, 291 lpProviderId: LPGUID, lpProviderSpecific: LPBLOB, 292 ) -> INT; 293 // pub fn WSCInstallNameSpaceEx2(); WSCInstallProvider( lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, ) -> c_int294 pub fn WSCInstallProvider( 295 lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, 296 lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, 297 ) -> c_int; 298 // pub fn WSCInstallProviderEx(); WSCSetApplicationCategory( Path: LPCWSTR, PathLength: DWORD, Extra: LPCWSTR, ExtraLength: DWORD, PermittedLspCategories: DWORD, pPrevPermLspCat: *mut DWORD, lpErrno: LPINT, ) -> c_int299 pub fn WSCSetApplicationCategory( 300 Path: LPCWSTR, PathLength: DWORD, Extra: LPCWSTR, ExtraLength: DWORD, 301 PermittedLspCategories: DWORD, pPrevPermLspCat: *mut DWORD, lpErrno: LPINT, 302 ) -> c_int; 303 // pub fn WSCSetApplicationCategoryEx(); WSCSetProviderInfo( lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: size_t, Flags: DWORD, lpErrno: LPINT, ) -> c_int304 pub fn WSCSetProviderInfo( 305 lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: size_t, 306 Flags: DWORD, lpErrno: LPINT, 307 ) -> c_int; WSCUnInstallNameSpace(lpProviderId: LPGUID) -> INT308 pub fn WSCUnInstallNameSpace(lpProviderId: LPGUID) -> INT; 309 // pub fn WSCUnInstallNameSpaceEx2(); WSCUpdateProvider( lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, ) -> c_int310 pub fn WSCUpdateProvider( 311 lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, 312 lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, 313 ) -> c_int; 314 // pub fn WSCUpdateProviderEx(); WSCWriteNameSpaceOrder(lpProviderId: LPGUID, dwNumberOfEntries: DWORD) -> c_int315 pub fn WSCWriteNameSpaceOrder(lpProviderId: LPGUID, dwNumberOfEntries: DWORD) -> c_int; WSCWriteProviderOrder(lpwdCatalogEntryId: LPDWORD, dwNumberOfEntries: DWORD) -> c_int316 pub fn WSCWriteProviderOrder(lpwdCatalogEntryId: LPDWORD, dwNumberOfEntries: DWORD) -> c_int; 317 // pub fn WSCWriteProviderOrderEx(); 318 // pub fn WahCloseApcHelper(); 319 // pub fn WahCloseHandleHelper(); 320 // pub fn WahCloseNotificationHandleHelper(); 321 // pub fn WahCloseSocketHandle(); 322 // pub fn WahCloseThread(); 323 // pub fn WahCompleteRequest(); 324 // pub fn WahCreateHandleContextTable(); 325 // pub fn WahCreateNotificationHandle(); 326 // pub fn WahCreateSocketHandle(); 327 // pub fn WahDestroyHandleContextTable(); 328 // pub fn WahDisableNonIFSHandleSupport(); 329 // pub fn WahEnableNonIFSHandleSupport(); 330 // pub fn WahEnumerateHandleContexts(); 331 // pub fn WahInsertHandleContext(); 332 // pub fn WahNotifyAllProcesses(); 333 // pub fn WahOpenApcHelper(); 334 // pub fn WahOpenCurrentThread(); 335 // pub fn WahOpenHandleHelper(); 336 // pub fn WahOpenNotificationHandleHelper(); 337 // pub fn WahQueueUserApc(); 338 // pub fn WahReferenceContextByHandle(); 339 // pub fn WahRemoveHandleContext(); 340 // pub fn WahWaitForNotification(); 341 // pub fn WahWriteLSPEvent(); __WSAFDIsSet(fd: SOCKET, _: *mut fd_set) -> c_int342 pub fn __WSAFDIsSet(fd: SOCKET, _: *mut fd_set) -> c_int; accept(s: SOCKET, addr: *mut SOCKADDR, addrlen: *mut c_int) -> SOCKET343 pub fn accept(s: SOCKET, addr: *mut SOCKADDR, addrlen: *mut c_int) -> SOCKET; bind(s: SOCKET, name: *const SOCKADDR, namelen: c_int) -> c_int344 pub fn bind(s: SOCKET, name: *const SOCKADDR, namelen: c_int) -> c_int; closesocket(s: SOCKET) -> c_int345 pub fn closesocket(s: SOCKET) -> c_int; connect(s: SOCKET, name: *const SOCKADDR, namelen: c_int) -> c_int346 pub fn connect(s: SOCKET, name: *const SOCKADDR, namelen: c_int) -> c_int; freeaddrinfo(pAddrInfo: PADDRINFOA)347 pub fn freeaddrinfo(pAddrInfo: PADDRINFOA); getaddrinfo( pNodeName: PCSTR, pServiceName: PCSTR, pHints: *const ADDRINFOA, ppResult: *mut PADDRINFOA, ) -> INT348 pub fn getaddrinfo( 349 pNodeName: PCSTR, pServiceName: PCSTR, pHints: *const ADDRINFOA, ppResult: *mut PADDRINFOA, 350 ) -> INT; gethostbyaddr(addr: *const c_char, len: c_int, _type: c_int) -> *mut hostent351 pub fn gethostbyaddr(addr: *const c_char, len: c_int, _type: c_int) -> *mut hostent; gethostbyname(name: *const c_char) -> *mut hostent352 pub fn gethostbyname(name: *const c_char) -> *mut hostent; gethostname(name: *mut c_char, namelen: c_int) -> c_int353 pub fn gethostname(name: *mut c_char, namelen: c_int) -> c_int; getnameinfo( pSockaddr: *const SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PCHAR, NodeBufferSize: DWORD, pServiceBuffer: PCHAR, ServiceBufferSize: DWORD, Flags: INT, ) -> INT354 pub fn getnameinfo( 355 pSockaddr: *const SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PCHAR, 356 NodeBufferSize: DWORD, pServiceBuffer: PCHAR, ServiceBufferSize: DWORD, Flags: INT, 357 ) -> INT; getpeername(s: SOCKET, name: *mut SOCKADDR, namelen: *mut c_int) -> c_int358 pub fn getpeername(s: SOCKET, name: *mut SOCKADDR, namelen: *mut c_int) -> c_int; getprotobyname(name: *const c_char) -> *mut protoent359 pub fn getprotobyname(name: *const c_char) -> *mut protoent; getprotobynumber(number: c_int) -> *mut protoent360 pub fn getprotobynumber(number: c_int) -> *mut protoent; getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent361 pub fn getservbyname(name: *const c_char, proto: *const c_char) -> *mut servent; getservbyport(port: c_int, proto: *const c_char) -> *mut servent362 pub fn getservbyport(port: c_int, proto: *const c_char) -> *mut servent; getsockname(s: SOCKET, name: *mut SOCKADDR, namelen: *mut c_int) -> c_int363 pub fn getsockname(s: SOCKET, name: *mut SOCKADDR, namelen: *mut c_int) -> c_int; getsockopt( s: SOCKET, level: c_int, optname: c_int, optval: *mut c_char, optlen: *mut c_int, ) -> c_int364 pub fn getsockopt( 365 s: SOCKET, level: c_int, optname: c_int, optval: *mut c_char, optlen: *mut c_int, 366 ) -> c_int; htonl(hostlong: u_long) -> u_long367 pub fn htonl(hostlong: u_long) -> u_long; htons(hostshort: u_short) -> u_short368 pub fn htons(hostshort: u_short) -> u_short; inet_addr(cp: *const c_char) -> c_ulong369 pub fn inet_addr(cp: *const c_char) -> c_ulong; inet_ntoa(_in: in_addr) -> *mut c_char370 pub fn inet_ntoa(_in: in_addr) -> *mut c_char; inet_ntop(Family: INT, pAddr: PVOID, pStringBuf: PSTR, StringBufSize: size_t) -> PCSTR371 pub fn inet_ntop(Family: INT, pAddr: PVOID, pStringBuf: PSTR, StringBufSize: size_t) -> PCSTR; inet_pton(Family: INT, pszAddrString: PCSTR, pAddrBuf: PVOID) -> INT372 pub fn inet_pton(Family: INT, pszAddrString: PCSTR, pAddrBuf: PVOID) -> INT; ioctlsocket(s: SOCKET, cmd: c_long, argp: *mut u_long) -> c_int373 pub fn ioctlsocket(s: SOCKET, cmd: c_long, argp: *mut u_long) -> c_int; listen(s: SOCKET, backlog: c_int) -> c_int374 pub fn listen(s: SOCKET, backlog: c_int) -> c_int; ntohl(netlong: u_long) -> u_long375 pub fn ntohl(netlong: u_long) -> u_long; ntohs(netshort: u_short) -> u_short376 pub fn ntohs(netshort: u_short) -> u_short; recv(s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int) -> c_int377 pub fn recv(s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int) -> c_int; recvfrom( s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int, from: *mut SOCKADDR, fromlen: *mut c_int, ) -> c_int378 pub fn recvfrom( 379 s: SOCKET, buf: *mut c_char, len: c_int, flags: c_int, from: *mut SOCKADDR, 380 fromlen: *mut c_int, 381 ) -> c_int; select( nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, exceptfds: *mut fd_set, timeout: *const timeval, ) -> c_int382 pub fn select( 383 nfds: c_int, readfds: *mut fd_set, writefds: *mut fd_set, exceptfds: *mut fd_set, 384 timeout: *const timeval, 385 ) -> c_int; send(s: SOCKET, buf: *const c_char, len: c_int, flags: c_int) -> c_int386 pub fn send(s: SOCKET, buf: *const c_char, len: c_int, flags: c_int) -> c_int; sendto( s: SOCKET, buf: *const c_char, len: c_int, flags: c_int, to: *const SOCKADDR, tolen: c_int, ) -> c_int387 pub fn sendto( 388 s: SOCKET, buf: *const c_char, len: c_int, flags: c_int, to: *const SOCKADDR, tolen: c_int, 389 ) -> c_int; setsockopt( s: SOCKET, level: c_int, optname: c_int, optval: *const c_char, optlen: c_int, ) -> c_int390 pub fn setsockopt( 391 s: SOCKET, level: c_int, optname: c_int, optval: *const c_char, optlen: c_int, 392 ) -> c_int; shutdown(s: SOCKET, how: c_int) -> c_int393 pub fn shutdown(s: SOCKET, how: c_int) -> c_int; socket(af: c_int, _type: c_int, protocol: c_int) -> SOCKET394 pub fn socket(af: c_int, _type: c_int, protocol: c_int) -> SOCKET; 395 } 396 #[cfg(any(target_arch = "x86", target_arch = "arm"))] 397 extern "system" { WSCInstallProviderAndChains( lpProviderId: LPGUID, lpszProviderDllPath: LPWSTR, lpszLspName: LPWSTR, dwServiceFlags: DWORD, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpdwCatalogEntryId: LPDWORD, lpErrno: LPINT, ) -> c_int398 pub fn WSCInstallProviderAndChains( 399 lpProviderId: LPGUID, lpszProviderDllPath: LPWSTR, lpszLspName: LPWSTR, 400 dwServiceFlags: DWORD, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, 401 lpdwCatalogEntryId: LPDWORD, lpErrno: LPINT, 402 ) -> c_int; 403 } 404 #[cfg(target_arch = "x86_64")] 405 extern "system" { WSCDeinstallProvider32(lpProviderId: LPGUID, lpErrno: LPINT) -> c_int406 pub fn WSCDeinstallProvider32(lpProviderId: LPGUID, lpErrno: LPINT) -> c_int; WSCEnableNSProvider32(lpProviderId: LPGUID, fEnable: BOOL) -> INT407 pub fn WSCEnableNSProvider32(lpProviderId: LPGUID, fEnable: BOOL) -> INT; WSCEnumNameSpaceProviders32( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW, ) -> INT408 pub fn WSCEnumNameSpaceProviders32( 409 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW, 410 ) -> INT; WSCEnumNameSpaceProvidersEx32( lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW, ) -> INT411 pub fn WSCEnumNameSpaceProvidersEx32( 412 lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW, 413 ) -> INT; WSCEnumProtocols32( lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, lpErrno: LPINT, ) -> c_int414 pub fn WSCEnumProtocols32( 415 lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD, 416 lpErrno: LPINT, 417 ) -> c_int; WSCGetProviderInfo32( lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: *mut size_t, Flags: DWORD, lpErrno: LPINT, ) -> c_int418 pub fn WSCGetProviderInfo32( 419 lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: *mut size_t, 420 Flags: DWORD, lpErrno: LPINT, 421 ) -> c_int; WSCGetProviderPath32( lpProviderId: LPGUID, lpszProviderDllPath: *mut WCHAR, lpProviderDllPathLen: LPINT, lpErrno: LPINT, ) -> c_int422 pub fn WSCGetProviderPath32( 423 lpProviderId: LPGUID, lpszProviderDllPath: *mut WCHAR, lpProviderDllPathLen: LPINT, 424 lpErrno: LPINT, 425 ) -> c_int; WSCInstallNameSpace32( lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, lpProviderId: LPGUID, ) -> INT426 pub fn WSCInstallNameSpace32( 427 lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, 428 lpProviderId: LPGUID, 429 ) -> INT; WSCInstallNameSpaceEx32( lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, lpProviderId: LPGUID, lpProviderSpecific: LPBLOB, ) -> INT430 pub fn WSCInstallNameSpaceEx32( 431 lpszIdentifier: LPWSTR, lpszPathName: LPWSTR, dwNameSpace: DWORD, dwVersion: DWORD, 432 lpProviderId: LPGUID, lpProviderSpecific: LPBLOB, 433 ) -> INT; WSCInstallProvider64_32( lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, ) -> c_int434 pub fn WSCInstallProvider64_32( 435 lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, 436 lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, 437 ) -> c_int; WSCInstallProviderAndChains64_32( lpProviderId: LPGUID, lpszProviderDllPath: LPWSTR, lpszProviderDllPath32: LPWSTR, lpszLspName: LPWSTR, dwServiceFlags: DWORD, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpdwCatalogEntryId: LPDWORD, lpErrno: LPINT, ) -> c_int438 pub fn WSCInstallProviderAndChains64_32( 439 lpProviderId: LPGUID, lpszProviderDllPath: LPWSTR, lpszProviderDllPath32: LPWSTR, 440 lpszLspName: LPWSTR, dwServiceFlags: DWORD, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, 441 dwNumberOfEntries: DWORD, lpdwCatalogEntryId: LPDWORD, lpErrno: LPINT, 442 ) -> c_int; WSCSetProviderInfo32( lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: size_t, Flags: DWORD, lpErrno: LPINT, ) -> c_int443 pub fn WSCSetProviderInfo32( 444 lpProviderId: LPGUID, InfoType: WSC_PROVIDER_INFO_TYPE, Info: PBYTE, InfoSize: size_t, 445 Flags: DWORD, lpErrno: LPINT, 446 ) -> c_int; WSCUnInstallNameSpace32(lpProviderId: LPGUID) -> INT447 pub fn WSCUnInstallNameSpace32(lpProviderId: LPGUID) -> INT; WSCUpdateProvider32( lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, ) -> c_int448 pub fn WSCUpdateProvider32( 449 lpProviderId: LPGUID, lpszProviderDllPath: *const WCHAR, 450 lpProtocolInfoList: LPWSAPROTOCOL_INFOW, dwNumberOfEntries: DWORD, lpErrno: LPINT, 451 ) -> c_int; WSCWriteNameSpaceOrder32(lpProviderId: LPGUID, dwNumberOfEntries: DWORD) -> c_int452 pub fn WSCWriteNameSpaceOrder32(lpProviderId: LPGUID, dwNumberOfEntries: DWORD) -> c_int; WSCWriteProviderOrder32(lpwdCatalogEntryId: LPDWORD, dwNumberOfEntries: DWORD) -> c_int453 pub fn WSCWriteProviderOrder32(lpwdCatalogEntryId: LPDWORD, dwNumberOfEntries: DWORD) -> c_int; 454 } 455 extern { 456 // pub static AddressFamilyInformation; 457 // pub static eui48_broadcast; 458 // pub static in4addr_alligmpv3routersonlink; 459 // pub static in4addr_allnodesonlink; 460 // pub static in4addr_allroutersonlink; 461 // pub static in4addr_allteredohostsonlink; 462 // pub static in4addr_any; 463 // pub static in4addr_broadcast; 464 // pub static in4addr_linklocalprefix; 465 // pub static in4addr_loopback; 466 // pub static in4addr_multicastprefix; 467 // pub static in6addr_6to4prefix; 468 // pub static in6addr_allmldv2routersonlink; 469 // pub static in6addr_allnodesonlink; 470 // pub static in6addr_allnodesonnode; 471 // pub static in6addr_allroutersonlink; 472 // pub static in6addr_any; 473 // pub static in6addr_linklocalprefix; 474 // pub static in6addr_loopback; 475 // pub static in6addr_multicastprefix; 476 // pub static in6addr_solicitednodemulticastprefix; 477 // pub static in6addr_teredoinitiallinklocaladdress; 478 // pub static in6addr_teredoprefix; 479 // pub static in6addr_teredoprefix_old; 480 // pub static in6addr_v4mappedprefix; 481 // pub static scopeid_unspecified; 482 // pub static sockaddr_size; 483 } 484