Windows Vista Networking Goodies, Part 2: Device & Service Discovery

In my first post of this series, I talked about Windows Connect Now (WCN) and how easy it is in Windows Vista to discover, configure, and securely connect devices to a wireless network. In this post, I’ll talk about how to discover PCs, devices, and services that are available on the network. In Windows XP, if you wanted to find other PCs (and a limited number of devices) on your network, you went to Network Neighborhood. This interface basically listed all network PCs and, if you enabled Universal Plug-n-Play (UPnP), a small subset of UPnP capable devices such as your router. It’s never a wonderful day in the neighborhood though because the best you can do here is see other networked PCs and browse their file shares. While UPnP eventually provided more service descriptions, those capabilities were not finalized until well after XP shipped, and were almost always disabled by default in devices such as routers and APs. Network Neighborhood doesn’t provide any clear indication of what you can do with a particular PC or device, so we did a bunch of work in Vista to improve.

Windows Vista drastically improves this story by supporting a new concept called function discovery. In Vista’s Network Explorer (the replacement to XP’s Network Neighborhood), devices are discovered using function discovery. Function discovery can find devices using much more efficient, diverse and robust protocols than were available in XP’s Network Neighborhood. These protocols include NetBios, UPnP/SSDP, and Web Services Discovery (WSD). Further, additional providers can be added via a flexible function discovery platform, which means software developers can plug their own discovery methods in for a consistent user experience through the Network Explorer. So how does this relate to Network Neighborhood? In Vista, you can access the Network Explorer by clicking Start\Network. The value of improved function discovery is experienced here. PCs, devices, and their respective services are displayed here in all their glory. In addition to the out-of-box high-resolution icons Vista provides for various device classes, Windows shell extensions can be defined (by the device maker, not the end user) for custom icons and actions (when you right-click or double-click the device). And, network connected devices requiring a device driver can be installed directly from the Network Explorer following a simple plug and play process (the same experience as installing a directly attached peripheral).

In the above snapshot of my Network folder, you’ll see PCs, a network projector, a media sharing service (pictures, music, video), and an un-configured device. In my next post, I’ll talk about IP as just another bus via the PnP-X framework, and how the experience of discovery, installation, and use of network devices is the same as directly attached peripherals. Stay tuned.

-- Gabe Frost