What's New for Windows Sockets
Updated for Windows 8.1 and Windows Server 2012 R2
The following functions are supported for Windows Store apps on Windows 8.1, Windows Server 2012 R2, and later. Microsoft Visual Studio 2013 Update 3 or later is required for Windows Store apps.
- __WSAFDIsSet
- accept
- AcceptEx
- bind
- closesocket
- connect
- ConnectEx
- DisconnectEx
- freeaddrinfo
- FreeAddrInfoExW
- freeaddrinfoW
- GetAcceptExSockaddrs
- getaddrinfo
- GetAddrInfoExCancel
- GetAddrInfoExOverlappedResult
- GetAddrInfoExW
- GetAddrInfoW
- gethostbyaddr
- gethostbyname
- gethostname
- GetHostNameW
- getipv4sourcefilter
- getnameinfo
- GetNameInfoW
- getpeername
- getprotobyname
- getprotobynumber
- getservbyname
- getservbyport
- getsockname
- getsockopt
- getsourcefilter
- htond
- htonf
- htonl
- htonll
- htons
- inet_addr
- inet_ntoa
- inet_ntop
- inet_pton
- InetNtopW
- InetPtonW
- ioctlsocket
- listen
- ntohd
- ntohf
- ntohl
- ntohll
- ntohs
- recv
- recvfrom
- RIOCloseCompletionQueue
- RIOCreateCompletionQueue
- RIOCreateRequestQueue
- RIODequeueCompletion
- RIODeregisterBuffer
- RIONotify
- RIOReceive
- RIOReceiveEx
- RIORegisterBuffer
- RIOResizeCompletionQueue
- RIOResizeRequestQueue
- RIOSend
- RIOSendEx
- select
- send
- sendto
- SetAddrInfoExW
- setipv4sourcefilter
- setsockopt
- setsourcefilter
- shutdown
- socket
- TransmitFile
- TransmitPackets
- WSAAccept
- WSAAddressToStringW
- WSACleanup
- WSACloseEvent
- WSAConnect
- WSAConnectByList
- WSAConnectByNameW
- WSACreateEvent
- WSADuplicateSocketW
- WSAEnumNameSpaceProvidersExW
- WSAEnumNameSpaceProvidersW
- WSAEnumNetworkEvents
- WSAEnumProtocolsW
- WSAEventSelect
- WSAGetLastError
- WSAGetOverlappedResult
- WSAHtonl
- WSAHtons
- WSAIoctl
- WSAJoinLeaf
- WSALookupServiceBeginW
- WSALookupServiceEnd
- WSALookupServiceNextW
- WSANSPIoctl
- WSANtohl
- WSANtohs
- WSAPoll
- WSAProviderConfigChange
- WSARecv
- WSARecvFrom
- LPFN_WSARECVMSG (WSARecvMsg)
- WSAResetEvent
- WSASend
- WSASendMsg
- WSASendTo
- WSASetEvent
- WSASetLastError
- WSASetServiceW
- WSASocketW
- WSAStartup
- WSAStringToAddressW
- WSAWaitForMultipleEvents
Updated for Windows Phone 8
The following functions are supported for Windows Phone Store apps on Windows Phone 8 and later.
- __WSAFDIsSet
- AcceptEx
- bind
- closesocket
- connect
- ConnectEx
- DisconnectEx
- freeaddrinfo
- getaddrinfo
- gethostbyaddr
- gethostbyname
- gethostname
- GetHostNameW
- getipv4sourcefilter
- getnameinfo
- GetNameInfoW
- getpeername
- getprotobyname
- getprotobynumber
- getservbyname
- getservbyport
- getsockname
- getsockopt
- getsourcefilter
- htond
- htonf
- htonll
- inet_addr
- inet_ntoa
- ioctlsocket
- listen
- ntohd
- ntohf
- ntohll
- recv
- recvfrom
- RIOCloseCompletionQueue
- RIOCreateCompletionQueue
- RIOCreateRequestQueue
- RIODequeueCompletion
- RIODeregisterBuffer
- RIONotify
- RIOReceive
- RIOReceiveEx
- RIORegisterBuffer
- RIOResizeCompletionQueue
- RIOResizeRequestQueue
- RIOSend
- RIOSendEx
- select
- send
- sendto
- setipv4sourcefilter
- setsockopt
- setsourcefilter
- shutdown
- socket
- TransmitPackets
- WSAAccept
- WSAAddressToStringW
- WSACleanup
- WSACloseEvent
- WSAConnect
- WSAConnectByList
- WSAConnectByNameW
- WSACreateEvent
- WSAEnumNameSpaceProvidersW
- WSAEnumNetworkEvents
- WSAEnumProtocolsW
- WSAEventSelect
- WSAGetLastError
- WSAGetOverlappedResult
- WSAHtonl
- WSAHtons
- WSAIoctl
- WSAJoinLeaf
- WSALookupServiceBeginW
- WSALookupServiceEnd
- WSALookupServiceNextW
- WSANSPIoctl
- WSANtohl
- WSANtohs
- WSARecv
- WSARecvFrom
- LPFN_WSARECVMSG (WSARecvMsg)
- WSAResetEvent
- WSASend
- WSASendTo
- WSASetEvent
- WSASetLastError
- WSASetServiceW
- WSASocketW
- WSAStartup
- WSAStringToAddressW
- WSAWaitForMultipleEvents
Updated for Windows 8 and Windows Server 2012
Microsoft Windows 8 and Windows Server 2012 introduce new Windows Sockets programming elements.
A set of high-speed networking extensions are available for increased networking performance with lower latency and jitter. These extensions targeted primarily for server applications use pre-registered data buffers and completion queues to increase performance.
The following are new Windows Sockets functions added to support Winsock high-speed networking Registered I/O extensions:
- RIOCloseCompletionQueue
- RIOCreateCompletionQueue
- RIOCreateRequestQueue
- RIODequeueCompletion
- RIODeregisterBuffer
- RIONotify
- RIOReceive
- RIOReceiveEx
- RIORegisterBuffer
- RIOResizeCompletionQueue
- RIOResizeRequestQueue
- RIOSend
- RIOSendEx
The following are new Windows Sockets enumerations, structures, and typedefs added to support Winsock high-speed networking Registered I/O extensions:
- RIO_CQ
- RIO_RQ
- RIO_BUFFERID
- RIO_BUF
- RIO_NOTIFICATION_COMPLETION
- RIO_NOTIFICATION_COMPLETION_TYPE
- RIORESULT
A set of enhancements for asynchronous naming support are available.
The following are new Windows Sockets functions added to support asynchronous naming requests:
The following existing Winsock functions have been revised to support asynchronous naming requests:
A set of enhancements to add support for Internationalized Domain Name (IDN) parsing are available.
The following existing Winsock functions have been revised to support IDN parsing:
An enhancement for naming support in Winsock to support requesting both a canonical name and a fully qualified domain name are available.
The following existing Winsock function has been revised to support requesting both a canonical name and a fully qualified domain name:
The following new Winsock structure has been added to support requesting both a canonical name and a fully qualified domain name:
The following new Windows Sockets function has been added to retrieve the local host name in Unicode:
The following are new Windows Sockets Ioctls added to support the Windows Filtering Platform (WFP) redirect service:
- SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT
- SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS
- SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS
The following are new Windows IP socket options added to support the Windows Filtering Platform (WFP) redirect service:
The following are a new Windows Sockets Ioctl and an associated structure added to control the initial (SYN / SYN+ACK) retransmission characteristics of a TCP socket:
The following are a new Windows Sockets Ioctl and an associated structure added to retrieve the association between a socket and an RSS processor core and NUMA node:
The following new Windows Sockets Ioctls are added to apply and query transport settings on a socket:
The only transport setting currently defines is for the REAL_TIME_NOTIFICATION_CAPABILITY capability on a TCP socket. The following new structures and enumerations are added to support the REAL_TIME_NOTIFICATION_CAPABILITY:
- CONTROL_CHANNEL_TRIGGER_STATUS
- REAL_TIME_NOTIFICATION_SETTING_INPUT
- REAL_TIME_NOTIFICATION_SETTING_INPUT
- REAL_TIME_NOTIFICATION_SETTING_OUTPUT
- TRANSPORT_SETTING_ID
The following new Windows Sockets Ioctl is added to enable a fast path for loopback on a TCP socket. This feature can lower latency and improve performance for applications that use TCP loopback (applications used by the financial service industry, for example).:
An enhancement to support transferring streaming media that require quality of service (Voice over IP, for example).
The following new Windows Sockets function supports transferring streaming media that require quality of service:
The SetSocketMediaStreamingMode function is also supported for Windows Store apps on Windows 8, Windows Server 2012, and later.
A set of inline functions defined in the Winsock2.h header file for converting a float or an unsigned __int64 between host byte order and network byte order.
Updated for Windows 7 and Windows Server 2008 R2
Microsoft Windows 7 and Windows Server 2008 R2 introduce new Windows Sockets programming elements.
The following existing Windows Sockets functions were enhanced to support additional options:
The following are new Windows Sockets options:
Dynamic send buffering for TCP was added on Windows 7 and Windows Server 2008 R2. As a result, the use of the SIO_IDEAL_SEND_BACKLOG_CHANGE and SIO_IDEAL_SEND_BACKLOG_QUERY IOCTLs are needed only in special circumstances. For more information, see SIO_IDEAL_SEND_BACKLOG_QUERY.
Updated for Windows Server 2008 and Windows Vista with Service Pack 1 (SP1)
Microsoft Windows Server 2008 and Windows Vista with Service Pack 1 (SP1) introduce new Windows Sockets programming elements.
The following are new Windows Sockets Ioctls:
These new Ioctls can be used by an application using TCP to determine the ideal value for the amount of data outstanding to send in order to achieve the best throughput for a connection. This is called the ideal send backlog (ISB) size.
Updated for Windows Server 2008
Microsoft Windows Server 2008 introduce new Windows Sockets programming elements.
The following are new Windows Sockets options:
Updated for Windows Vista
Microsoft Windows Vista introduces new Windows Sockets programming elements. These elements extend the capability of Winsock to simplify programming and provide IPv6 compatibility. For more information about porting Winsock applications to IPv6, see IPv6 Guide for Windows Sockets Applications.
Windows sockets tracing is a new feature supported on Windows Vista and Windows Server 2008. This feature can be enabled in retail binaries to trace certain socket events with minimal overhead. For more information, see Winsock Tracing.
The following are new Windows Sockets functions:
- FreeAddrInfoEx
- GetAddrInfoEx
- InetNtop
- InetPton
- SetAddrInfoEx
- WSAConnectByList
- WSAConnectByName
- WSADeleteSocketPeerTargetName
- WSAEnumNameSpaceProvidersEx
- WSAImpersonateSocketPeer
- WSAPoll
- WSAQuerySocketSecurity
- WSARevertImpersonation
- WSASendMsg
- WSASetSocketPeerTargetName
- WSASetSocketSecurity
The following are new Windows Sockets structures and enumerations:
- addrinfoex
- BLOB
- GROUP_FILTER
- GROUP_REQ
- GROUP_SOURCE_REQ
- MULTICAST_MODE_TYPE
- NAPI_DOMAIN_DESCRIPTION_BLOB
- NAPI_PROVIDER_INSTALLATION_BLOB
- NAPI_PROVIDER_LEVEL
- NAPI_PROVIDER_TYPE
- SOCKET_PEER_TARGET_NAME
- SOCKET_SECURITY_PROTOCOL
- SOCKET_SECURITY_QUERY_INFO
- SOCKET_SECURITY_QUERY_TEMPLATE
- SOCKET_SECURITY_SETTINGS
- SOCKET_SECURITY_SETTINGS_IPSEC
- SOCKET_USAGE_TYPE
- WSAQUERYSET2
Microsoft Windows Vista introduces new Windows Sockets SPI functions to provide the ability to categorize applications for a layered service providers. New functions are also added for namespace providers.
The following are new Windows Sockets SPI functions:
- NSPv2Cleanup
- NSPv2ClientSessionRundown
- NSPv2LookupServiceBegin
- NSPv2LookupServiceEnd
- NSPv2LookupServiceNextEx
- NSPv2SetServiceEx
- NSPv2Startup
- WSAAdvertiseProvider
- WSAProviderCompleteAsyncCall
- WSAUnadvertiseProvider
- WSCEnumNameSpaceProvidersEx32
- WSCGetApplicationCategory
- WSCGetProviderInfo
- WSCInstallNameSpaceEx
- WSCInstallNameSpaceEx32
- WSCSetApplicationCategory
- WSCSetProviderInfo
- WSCSetProviderInfo32
The following are new Windows Sockets SPI structures:
Microsoft Windows Vista introduces new Windows Sockets programming elements.
The following are new Windows Sockets Ioctls:
- SIO_ACQUIRE_PORT_RESERVATION
- SIO_ASSOCIATE_PORT_RESERVATION
- SIO_SET_COMPATIBILITY_MODE
- SIO_RELEASE_PORT_RESERVATION
The following are new Windows Sockets options:
Updated for April 2005
The following functions have been added to the Windows Sockets SPI (ws2spi.h) to support 32-bit processes and catalogs on 64-bit platforms:
- WSCDeinstallProvider32
- WSCEnableNSProvider32
- WSCEnumNameSpaceProviders32
- WSCEnumProtocols32
- WSCGetProviderPath32
- WSCInstallNameSpace32
- WSCInstallProvider64_32
- WSCInstallProviderAndChains64_32
- WSCUnInstallNameSpace32
- WSCUpdateProvider32
Updated for Windows Server 2003
Microsoft Windows Server 2003 introduces new Windows Sockets programming elements. These elements extend the capability of Winsock to simplify programming and provide IPv6 compatibility. For more information about porting Winsock applications to IPv6, see IPv6 Guide for Windows Sockets Applications.
The following are new Windows Sockets functions:
- ConnectEx
- DisconnectEx
- freeaddrinfo
- gai_strerror
- getaddrinfo
- getnameinfo
- TransmitPackets
- WSANSPIoctl
- LPFN_WSARECVMSG (WSARecvMsg)
The following are new Windows Sockets structure definitions: