38
Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program Managers Networking and Devices Microsoft Corporation

Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Embed Size (px)

Citation preview

Page 1: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer

Roland Ayala, Cameron Brodeur, and Aaron CunninghamProgram ManagersNetworking and DevicesMicrosoft Corporation

Page 2: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Session OutlineSession Outline

This session discusses how to turn a network connected device into a PnP device

Overview

Function Discovery (FD)

Plug and Play (PnP) Extensions for Network Connected Devices (PnP-X)

Network Explorer

Demo

Questions

Page 3: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Windows Connect NowWindows Connect NowThe Windows Networking and Device The Windows Networking and Device Connectivity PlatformConnectivity Platform

Effortless“It Just Works” experience for users

Simple protocols, APIs and DLLs for partnersand developers

Secure and ReliableBuilt-in security to enable higher user confidence

Make reliability a fundamental part of the solution

Foundation for the FutureContinue enabling compelling new user experiences

Page 4: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Windows Connect Now ProgramsWindows Connect Now Programs

Access to Windows Access to Windows Connect Now Connect Now TechnologiesTechnologies

TechnicalTechnicalGuidanceGuidance

ConsolidatedConsolidatedLicensing ProgramLicensing Program

Page 5: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Devices Class APIs(Digital Still Cameras,

Portable Media Players,Printers, etc.)

Windows Connect Now TechnologiesWindows Connect Now Technologies

IP Network(IPv4, IPv6)

WC

N C

on

fig

ura

tio

n

Ethernet/Wireless

qW

AV

E

WS-D, UPnPFu

nct

ion

Dis

cove

ry

Applications

WMC, MediaRenderers,

MCE

MTP/IP, RDP,other

Net

wo

rk T

op

olo

gy

Windows Connect Now Technologies

PnP-X

Page 6: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Device Connectivity OptionsDevice Connectivity Options

Wired bussesUSB 1.x and 2.0

IEEE 1394

WirelessBluetooth

Wireless USB over UWB

IP connected802.11x

Ethernet

Page 7: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Historically: Dual ApproachHistorically: Dual Approach

The IP “bus” is handled differently from other buses

Page 8: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Problems With The Dual ApproachProblems With The Dual Approach

No single end-user experienceThe device experience depends on the connector selected

Disparate programming models

Well-understood Well-understood experience when experience when

plugging into this portplugging into this port

Undefined experience Undefined experience when plugging into when plugging into

this portthis port

Fuels device adoptionFuels device adoption

Lowers support costsLowers support costs

A PnP deviceA PnP device

IP devices limited in adoptionIP devices limited in adoption

Custom solutions for integrating with WindowsCustom solutions for integrating with Windows

A non-PnP deviceA non-PnP device

Page 9: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

The Future: Single ModelThe Future: Single Model

Unification of IP and directly connected devicesUsers shouldn’t have to care about the bus

Page 10: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

BenefitsBenefits

NCDs are simple to discover and useInstalled and managed just like local, bus-attached devicesLower support costsBroader device adoption

NCDs can be enumerated and accessed using standard Windows application programming interfaces (APIs)

Increased utilizationImproved end-user experience

NCDs benefit from existing Windows assets for device management

Windows PnP and device management infrastructureWindows Update

Page 11: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Problems To SolveProblems To Solve

Goal: Make the NCD a PnP device

Problems to solveDiscovery

Association

Security

Page 12: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

DiscoveryDiscovery

Before a device can be installed, it must be discoveredNetwork protocols replace the bus-specific electrical signals used for physically connected devices

Metadata exchangeEnough information about the device must be retrieved for installation purposes

Hardware ID

Class ID

Friendly Name

Etc.

Page 13: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

AssociationAssociation

With physical connections, the cable itself establishes the association

For NCDs, the following questions apply:With which PC is the device associated?

Can the device be associated with more than one PC?

Page 14: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

SecuritySecurity

Physical connections (cables) are inherently secure

This is not the case for network connections

PnP-X provides a platform for:Establishing trust

Can the device be trusted?

Is the PC authorized to access the device?

Establishing a secure channelEncrypting the data path

Page 15: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Enabling A Single Model Through PnPEnabling A Single Model Through PnP

The framework for enabling a single connectivity model already exists today: It’s Windows PnP (Plug and Play)

An IP bus enumerator (IPBusEnum) enumerates NCDs

A PDO is created for each enumerated device

PnP handles the installation of the device like any other device

The enabling components are collectively called PnP-X: PnP Extensions for NCDs

PnP

PC

I

US

B

1394

PC

MC

IA

IPBusEnum

Class Drivers

Physical Discovery Network Discovery

Page 16: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

PnP-X ArchitecturePnP-X Architecture

Application

PnP

PC

I

US

B

1394

PC

MC

IA

IPBusEnum

PhysicalDiscovery

FunctionDiscovery

WS

-Dis

co

SS

DP

WC

N C

on

fig

ura

tio

nWCN

Config

WS

-Dis

co

SS

DP

Application

PC

Device

TCP/IP

NCD CIClass Installers

PnP-X Components

Page 17: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Function Discovery (FD)Function Discovery (FD)

FD is a new feature in Longhorn for resource discoveryProvides a uniform API

Utilizes a provider model for extensibility purposes“In-box” providers

PnP

SSDP (for UPnP devices)

WS-Discovery (for WSD devices)

Registry

Third-party providers supported

Aggregates results from multiple providersResources can be discovered based on their function as opposed to how they are connected to the PC

The PnP-X IPBus Enumerator depends on FD for discovering NCDs

Provides protocol independence for PnP-X

Page 18: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

FD Architectural OverviewFD Architectural Overview

Function Discovery API

Client

Pn

P

WS

-Dis

cove

ry

SS

DP

SD

P

Reg

istr

y

…FD Providers

Page 19: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Why FD?Why FD?

NCDs come in several different flavors…WSD UPnPBluetoothUltra-wide Band (UWB) coming soonOther

Each with their own protocols for discovery and metadata exchangeA general solution requires an abstraction layer

FD provides the necessary layer of abstractionPnP-X support for a new device protocol is enabled by writing an FD provider

Page 20: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

FD Feature OverviewFD Feature Overview

DiscoveryClients can query for devices by category

Devices of the same type can be mapped into the same category regardless of how they are discovered

For example, a pair of speakers, a Bluetooth headset, and a UPnP audio renderer can all be found in the “Audio endpoint” category

Supports a flexible category hierarchyCategories can be defined to suit virtually any type of resource categorization

For example, all network connected devices, all wireless devices, etc., or at an even higher level, “Devices near me”

Interface IDs and properties can be used to constrain the query

Page 21: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

FD Feature OverviewFD Feature Overview

NotificationsClients can register for notifications on a category

A notification is sent when an instance is added to or removed from the category

Asynchronous queries are implemented using notifications

ActivationSoftware objects associated with the resource can be instantiated and initialized through FD

Application provides the ClassID and interface desired

FD handles binding the object to the resource

Page 22: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

The Function Instance (FI)The Function Instance (FI)

The FI is the single unit of discovery in FDManufactured by the providers in response to a query

PropertiesFIs have properties exposed through IPropertyStoreProperties can be used to get and set (where supported) information about the device

MetadataConfiguration dataState data

PnP-X requires that NCDs define certain properties in order to be supported

Defined by the PnP-X Implementers GuideExamples include HardwareID, ClassID, FriendlyName, etc.

Page 23: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

PnP-X Drilldown

Cameron Brodeur

Page 24: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

How PnP-X Uses FDHow PnP-X Uses FD

Network Explorer queries “Qualified Devices”This results in 1+ discovery providers being queried

The results are cross-referenced with a query of the association database

Devices in the qualified devices category but not in the association database are presented to the user as “Installable”

The user can select to “associate” a deviceDevice entry made in the association database

Function Discovery API

IPBusEnumAssociation

Database

Association UI

QualifiedDevices

FD Categories

Network Discovery Providers

Page 25: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

How PnP-X Uses FDHow PnP-X Uses FD

IPBusEnum queries the association databaseRegisters for notifications

For each associated device, a PDO is created

IPBusEnum maintains device presenceQueries the qualified devices category to monitor presence

When IPBusEnum receives an FD notification about a device removal from the qualified category, the PDO for the device is removed from PnP

Function Discovery API

IPBusEnumAssociation

Database

Association UI

QualifiedDevices

FD Categories

Network Discovery Providers

Page 26: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

In-box SupportIn-box Support

Inbox support is provided for the following discovery protocols in Longhorn

Web Services Discovery Protocol (WS-Discovery)Part of the Web Services for Devices suite of protocols

Devices must support WS-Discovery as well as the Device Profile to be installable by PnP-X

Simple Services Discovery Protocol (SSDP)Used by UPnP for device discovery

Devices must support SSDP as well as Device Description to be installable by PnP-X

Support for additional protocols can be enabled through the installation of a FD provider

Must conform to the requirements in the PnP-X Implementers Guide

Page 27: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Device Description/ Metadata Device Description/ Metadata Exchange Phase Exchange Phase

Occurs after the user selects and chooses to install the device

WS DevicesDevice must support the Device Profile for Web Services

Retrieve the Metadata for the device

Extract XML elements

Create a series of Hardware IDs and Compatible IDs from the XML

UPnP DevicesDevice must support the UPnP Description Phase

Retrieve the Device Description document

Extract XML elements

Create a series of Hardware IDs and Compatible IDs from the XML

Page 28: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

ExampleExampleCreate a device-specific Hardware ID and Compatible ID

New devices will be able to explicitly define the Hardware ID and Compatible ID with new XML tags

Microsoft/Laser_Printer_2000/1.0.34/urn-schemas-upnp-org:device:Printer:1

<?xml version="1.0" ?> <root xmlns="urn:schemas-upnp-org:device-1-0">

<specVersion><major>1</major> <minor>0</minor>

</specVersion><URLBase>http://192.168.0.1:1234</URLBase> <device>

<deviceType>urn:schemas-upnp-org:device:Printer:1</deviceType> <friendlyName>Microsoft Laser Printer 2000</friendlyName> <manufacturer>Microsoft</manufacturer> <manufacturerURL>www.microsoft.com</manufacturerURL> <modelDescription>B&W Laser Printer</modelDescription> <modelName>Laser Printer 2000</modelName> <modelNumber>1.0.34</modelNumber> <UDN>uuid:upnp-Microsoft_LaserPrinter-00045A0F79D6</UDN>

...</device>

</root>

Example Hardware ID from the above XML:

Page 29: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

DevNode CreationDevNode Creation

IPBusEnum creates a PnP DevNode for the device

Information discovered about the device during the Description Phase is stored in the DevNode property store, including

IP Address

Hardware IDs and Compatible IDs for the device

Device UUID - GUID

PnP installs a driver using the “standard” processSearch driver packages (INF files) looking for the best match based on hardware and compatible IDs

Invoke the specified class installer and optional coinstaller to carry out the installation process

Page 30: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Driver InstallationDriver Installation

Manufacturer can supply a kernel-mode or user-mode driver for the device

Driver can be a class driver supplied by Microsoft

Sample kernel mode driver supplied – umpass.sysSupports retrieval of persisted and dynamic properties using pass-through IOCTLs in the driver

For proprietary devices or devices that are tied to a single application, the install process can simply install the application or service, with no driver

Page 31: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Communicating With Your DeviceCommunicating With Your Device

Base-level functionality for an associated network connected device simply returns the IP address of the device

Communication with network connected devices will go through existing network stacks

.NET Framework

Windows Services for Devices Application Programming Interfaces (WSDAPI)

UPnP

WinSock

Protocol choice left up to the vendor

Page 32: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Network ExplorerNetwork Explorer

User interface for discovering computers and network-connected devicesPublishing

Use Function Discovery Platform to announce computer’s presence on the networkContinue to announce presence using NetBIOS Master Browser to support down-level computers and devices

DiscoveryRetrieve list of discovered computers and network-connected devices from Function Discovery PlatformNetBIOS Provider for Function Discovery to enable discovery of down-level computers

Page 33: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Device Presentation In Network Device Presentation In Network ExplorerExplorer

A manufacturer will be able to customize the presentation of its device in Network Explorer through

Custom actions

Custom icon

Register Shell verbs and icons for devices using the same implementation as exists today for file extensions

Consult PnP-X Implementer’s Guide for details

Page 34: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program
Page 35: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Call To ActionCall To Action

Evaluate PnP-X for your NCDsReview the PnP-X Implementers Guide

For Windows Server and UPnP devices, update your device to provide the information specified by the implementers guide

For other devices, write an FD provider that conforms to requirements specified by the implementers guide

Provide feedback to Microsoft

Page 36: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program
Page 37: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

Windows Hardware & Driver Central (WHDC)www.microsoft.com/whdc/default.mspx

Technical Communitieswww.microsoft.com/communities/products/default.mspx

Non-Microsoft Community Siteswww.microsoft.com/communities/related/default.mspx

Microsoft Public Newsgroupswww.microsoft.com/communities/newsgroups

Technical Chats and Webcastswww.microsoft.com/communities/chats/default.mspx

www.microsoft.com/webcasts

Microsoft Blogswww.microsoft.com/communities/blogs

Community ResourcesCommunity Resources

Page 38: Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer Roland Ayala, Cameron Brodeur, and Aaron Cunningham Program

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.