This article was previously published under Q323713
For a Microsoft Windows Millennium Edition version of this article, see 262458.
Universal Plug and Play (UPnP) is an architecture in Windows XP that supports peer-to-peer Plug and Play functionality for network devices. The UPnP specification is designed to simplify device and network service installation and management. UPnP performs device and service discovery and control through driverless, standards-based protocol mechanisms. Universal Plug and Play devices can automatically configure network addressing, announce their presence on a network subnet, and permit the exchange of device and service descriptions. A Windows XP-based computer can act as a UPnP control point to discover and control the devices through a Web or program interface.
You can install Universal Plug and Play support in Windows XP by using the Add or Remove Programs tool in Control Panel. If Universal Plug and Play support is installed, when a Universal Plug and Play device is added to the network, the Windows-based computer acts as a control point for that device, and notification is provided on the taskbar that a new device is available.
The following list defines key Universal Plug and Play terms:
Action: A command that is used to trigger services to perform a function.
Control point: Software that retrieves Universal Plug and Play service and device descriptions, sends actions to services, and receives events from services.
Device: A container object for one or more services, whether a physical device such as a camcorder, or a logical device such as a computer that is acting as a camcorder.
Event: A message from a device to a control point that is used to keep subscribed control points informed of device status.
Service: Device functionality that can be controlled by using control points.
Subscription: A relationship between a control point and a service.
Universal Plug and Play functionality involves five processes:
Discovery: A Universal Plug and Play device advertises its presence on the network to other devices and control points by using the Simple Service Discovery Protocol (SSDP). A new control point uses SSDP to discover Universal Plug and Play devices on the network. The information that is exchanged between the device and the control point is limited to discovery messages that provide basic information about the devices and their services, and a description URL, which can be used to gather additional information about the device.
Description: Using the URL that is provided in the discovery process, a control point receives XML information about the device, such as the make, model, and serial number. Additionally, the description process can include a list of embedded devices, embedded services, and URLs that are used to access device features.
Control: Control points use URLs that are provided during the description process to access additional XML information that describes actions to which the Universal Plug and Play device services respond, with parameters for each action. Control messages are formatted in XML and use SOAP.
Eventing: When a control point subscribes to a service, the service sends event messages to the control point to announce changes in device status. Event messages are formatted in XML and use General Event Notification Architecture (GENA).
Presentation: If a Universal Plug and Play device provides a presentation URL, a browser can be used to access interface control features, device or service information, or any device-specific abilities that are implemented by the manufacturer.
In Windows XP, Universal Plug and Play functionality is provided by the following files and services:
Upnpcont.exe Upnphost.dll - for hosting UPnP devices Upnp.dll - the main UPnP dynamic-link library (DLL) Upnpui.dll - used by Windows XP to create the interface
Ssdpaip.dll - the Application Programming Interface (API) DLL for SSDP Ssdpsrv.dll - used for SSDP messages as host
Services: The SSDP Discovery service permits discovery of UPnP devices on your home network.
Universal Plug and Play Device Host: Provides support to host Universal Plug and Play devices.