Winsock 2.2 (Windows Embedded CE 6.0)

1/6/2010

The Windows Sockets (Winsock) interface provides a general-purpose networking application programming interface (API) based on the socket interface from the University of California at Berkeley. Winsock is designed to run efficiently on Windows operating systems while maintaining compatibility with the Berkeley Software Distribution (BSD) standard, known as Berkeley Sockets. Most Windows Embedded CE network communication passes through the Winsock interface. Windows Embedded CE implements the Winsock 2.2 and is fully backward compatible with the Winsock 1.1.

Winsock provides a protocol-independent interface fully capable of supporting emerging networking capabilities, such as real-time multimedia communications. It is used to discover and use communications capabilities of underlying transport protocols. Because it is not a protocol, it does not in any way affect the bits on the wire, and does not need to be used on both ends of a communications link.

Winsock provides access to multiple transport protocols allowing you to create applications that support multiple socket types. Winsock's support of multiple protocols also includes IPv6. Following the Windows Open System Architecture (WOSA) model, Winsock defines a standard service provider interface (SPI) between the application programming interface (API), with its functions exported from the Winsock DLL, Ws2.dll, and the protocol stacks. You can use the Winsock SPI to create your own transport service provider.

Winsock is divided into layers with flexible, installable providers that do the majority of the work. This alleviates the need to replace the winsock.dll with a custom version when a new protocol or modifier is needed. The following table shows the transport service providers for Winsock 2.2:

Transport service provider Description

Base Service Provider

A Base Service Provider fully implements a protocol. For example, TCPv4 is fully implemented by the WSPM provider that ships with Windows Embedded CE.

For more information about the built-in service providers that Windows Embedded CE provides, see Winsock Service Provider Interface (SPI).

Layered Service Provider (LSP)

An LSP modifies a transport service provider, and therefore the protocol that it implements, to expand, restrict, or redirect its capabilities. For example, the SSL LSP is in the layer above the WSPM provider in what is called a provider chain. This LSP encrypts and decrypts data before it calls into WSPM. WSPM then sends and receives data using the TCP protocol.

You can implement an LSP to extend an existing transport service provider.

Ee495263.note(en-US,WinEmbedded.60).gifNote:
Because the following protocols and technologies do not use the Winsock LSP model, you cannot modify them by writing an LSP:
  • DHCP, ICMP, and IGMP and other layer 3 protocols
  • DNS proxy
  • Redirector
  • SMB server

For more information, see Layered Protocols and Provider Chains.

For information about how these transport service providers work with Winsock, see Winsock Architecture.

Windows Embedded CE also supports socket-based infrared communications called Infrared.

Sockets (IrSock) by using industry standard Infrared Data Association (IrDA) Protocols. Applications implement Infrared Sockets in the same way as conventional Winsock, although several Winsock functions are used differently. Windows Embedded CE also supports Private Communication Technology 1.0 and Secure Sockets Layer (SSL) versions 2.0 and 3.0 security protocols. These protocols are available either directly from Winsock or through WinInet.

In This Section

Winsock Support in Windows Embedded CE

See Also

Concepts

Installing an LSP
Windows Sockets Support for IPv6
Winsock Secure Sockets
Backward Compatibility for Windows Sockets 1.1 Applications

Other Resources

Winsock Application Development
Creating an Infrared Winsock Application