41
Plug And Play For Plug And Play For Network Connected Network Connected Devices Devices Cameron Brodeur and Kristina Cameron Brodeur and Kristina Hotz Hotz Program Managers Program Managers Windows Device Experience Windows Device Experience Group Group Microsoft Corporation Microsoft Corporation

Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Embed Size (px)

Citation preview

Page 1: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Plug And Play For Network Plug And Play For Network Connected DevicesConnected Devices

Cameron Brodeur and Kristina HotzCameron Brodeur and Kristina HotzProgram ManagersProgram ManagersWindows Device Experience GroupWindows Device Experience GroupMicrosoft CorporationMicrosoft Corporation

Page 2: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Session OutlineSession Outline

Discusses generic resource discovery Discusses generic resource discovery and how to turn a Network Connected and how to turn a Network Connected Device (NCD) into a Plug and Play Device (NCD) into a Plug and Play (PnP) device (PnP) device

Windows Rally OverviewWindows Rally Overview

Function Discovery (FD)Function Discovery (FD)

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

DemoDemo

QuestionsQuestions

Page 3: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Windows® Rally™ ProgramWindows® Rally™ Program

Simple Unified License

Access to Technologies

Technical Guidance

Page 4: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Windows® Rally™ DevicesWindows® Rally™ Devices

Reliable and simple to manage

Effortless to configure and

maintain

More secure and provide rich

digital experiences

Page 5: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Windows Rally ExperiencesWindows Rally ExperiencesApplications

IP Network(IPv4, IPv6)

Wir

eles

s S

etu

p

Ethernet/Wireless

Qu

alit

y o

f S

ervi

ce

AV DevicesDis

cove

ry

Net

wo

rk M

ap

Windows Rally Experiences

Device Specific Drivers

Management Interfaces

NetworkedDevices

LL

TD

: Q

oS

Ext

ensi

on

s

LL

TD

: T

op

olo

gy

Map

Win

do

ws

Co

nn

ect

No

w

Fu

nct

ion

Dis

cove

ry

UPnPDevice Profile

for Web Services

Plug and Play Extensions

Windows Rally TechnologiesWindows Rally Technologies

Windows Rally Technologies

Page 6: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Function DiscoveryFunction DiscoveryGeneric resource detectionGeneric resource detection

Kristina HotzKristina HotzProgram ManagerProgram Manager

Page 7: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Why Function Discovery?Why Function Discovery?

Many flavors of devices and resourcesMany flavors of devices and resourcesUSBUSB

WSDWSD

UPnPUPnP

Different protocolsDifferent protocolsDifferent discoveryDifferent discovery

Different metadata acquisitionDifferent metadata acquisition

Need abstraction layer for unificationNeed abstraction layer for unification

NetBIOSNetBIOS

Etc.Etc.

Page 8: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Function Discovery (FD)Function Discovery (FD)

New feature in Windows Vista for New feature in Windows Vista for resource discoveryresource discovery

Provides uniform API for resource discovery Provides uniform API for resource discovery and metadata exchangeand metadata exchange

Is extensible allowing discovery via virtually Is extensible allowing discovery via virtually any protocolany protocol

Can aggregate results from multiple protocolsCan aggregate results from multiple protocolsFind NetBIOS and WSD shares with single queryFind NetBIOS and WSD shares with single query

Find all UPnP and WSD devices with same codeFind all UPnP and WSD devices with same code

Page 9: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

FD Architectural OverviewFD Architectural Overview

Function Discovery API

Client

Query Manager

WNet Provider

WNetAPIs

SSDP Provider

SSDP

WSD Provider

WSD

3rd Party Provider

NativeAPIs

Registry

PnP Provider

Registry Provider

SetupDI API

Category Manager

Registry

Legend:Legend:

ClientClient

Client InterfaceClient Interface

ProvidersProviders

Underlying APIsUnderlying APIs

Internal ComponentsInternal Components

Page 10: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Discovery: PnPDiscovery: PnP hDevInfoSet = ::SetupDiGetClassDevs (hDevInfoSet = ::SetupDiGetClassDevs ( NULL,NULL, NULL,NULL, NULL,NULL, DIGCF_ALLCLASSES );DIGCF_ALLCLASSES ); bSuccess = ::SetupDiEnumDeviceInfo (bSuccess = ::SetupDiEnumDeviceInfo ( hDevInfoSet,hDevInfoSet, dwIndex++,dwIndex++, &sddInfoElement );&sddInfoElement );if (bSuccess) if (bSuccess) {{ pRootDevNode = new DevNode;pRootDevNode = new DevNode; pRootDevNode->guidClass = pRootDevNode->guidClass =

sddInfoElement.ClassGuid;sddInfoElement.ClassGuid; if (::SetupDiGetDeviceInstanceId(if (::SetupDiGetDeviceInstanceId( hDevInfoSet,hDevInfoSet, &sddInfoElement,&sddInfoElement, szDevId,szDevId, 2047,2047, &dwSizeNeeded ))&dwSizeNeeded )) { { pRootDevNode->pszName = newpRootDevNode->pszName = new WCHAR[dwSizeNeeded];WCHAR[dwSizeNeeded]; wcsncpy(wcsncpy( pRootDevNode->pszName,pRootDevNode->pszName, szDevId,szDevId, dwSizeNeeded );dwSizeNeeded ); }}pCurrDevNode = pRootDevNode;pCurrDevNode = pRootDevNode;pCurrDevNode->pNext = NULL;pCurrDevNode->pNext = NULL;

while (::SetupDiEnumDeviceInfo (while (::SetupDiEnumDeviceInfo ( hDevInfoSet,hDevInfoSet, dwIndex++,dwIndex++, &sddInfoElement ))&sddInfoElement )) {{ pCurrDevNode->pNext = new DevNode;pCurrDevNode->pNext = new DevNode; pCurrDevNode = pCurrDevNode->pNext; pCurrDevNode = pCurrDevNode->pNext;

pCurrDevNode->guidClass = pCurrDevNode->guidClass =

sddInfoElement.ClassGuid;sddInfoElement.ClassGuid; if (::SetupDiGetDeviceInstanceId(if (::SetupDiGetDeviceInstanceId( hDevInfoSet,hDevInfoSet, &sddInfoElement,&sddInfoElement, szDevId,szDevId, 2047,2047, &dwSizeNeeded ))&dwSizeNeeded )) { {

pCurrDevNode->pszName = newpCurrDevNode->pszName = new WCHAR[dwSizeNeeded];WCHAR[dwSizeNeeded]; wcsncpy( wcsncpy( pCurrDevNode->pszName,pCurrDevNode->pszName, szDevId,szDevId, dwSizeNeeded );dwSizeNeeded ); } } pCurrDevNode->pNext = NULL; pCurrDevNode->pNext = NULL; } } *ppDevNodes = pRootDevNode;*ppDevNodes = pRootDevNode;}}

Page 11: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Discovery: RegistryDiscovery: RegistrylResult = RegOpenKeyEx(lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE,HKEY_LOCAL_MACHINE, pwszSubKey,pwszSubKey, 0,0, KEY_READ,KEY_READ, &hKey);&hKey);

if( ERROR_SUCCESS == lResult )if( ERROR_SUCCESS == lResult ) lResult = RegQueryInfoKey(lResult = RegQueryInfoKey( hKey, NULL, NULL,hKey, NULL, NULL, NULL, &dwSubKeys, NULL,NULL, &dwSubKeys, NULL, NULL, &dwValues, NULL,NULL, &dwValues, NULL, NULL, NULL, NULL);NULL, NULL, NULL);

for( DWORD i = 0; ( i < dwValues ) && for( DWORD i = 0; ( i < dwValues ) && ( lResult == ERROR_SUCCESS ); i++ )( lResult == ERROR_SUCCESS ); i++ )

{{ WCHAR achValueName[MAX_PATH];WCHAR achValueName[MAX_PATH]; DWORD cchValueName = DWORD cchValueName =

ARRAY_SIZE( achValueName );ARRAY_SIZE( achValueName ); DWORD dwType;DWORD dwType; BYTE* pBuffer = new BYTE[MAX_PATH];BYTE* pBuffer = new BYTE[MAX_PATH]; DWORD dwBufSize = MAX_PATH;DWORD dwBufSize = MAX_PATH;

lResult = RegEnumValue(lResult = RegEnumValue( hKey, i, achValueName,hKey, i, achValueName, &cchValueName, NULL,&cchValueName, NULL, NULL, NULL, NULL );NULL, NULL, NULL );

if( ERROR_SUCCESS == lResult )if( ERROR_SUCCESS == lResult ) {{

lResult = RegQueryValueEx(lResult = RegQueryValueEx( hKey, achValueName, NULL,hKey, achValueName, NULL, &dwType, pBuffer, &dwBufSize );&dwType, pBuffer, &dwBufSize ); }} if ( pBuffer )if ( pBuffer ) delete pBuffer;delete pBuffer; }}

for( DWORD i = 0; ( i < dwSubKeys ) && for( DWORD i = 0; ( i < dwSubKeys ) && ( lResult == ERROR_SUCCESS ); i++ )( lResult == ERROR_SUCCESS ); i++ )

{{ WCHAR pwszNewSubKey[256];WCHAR pwszNewSubKey[256]; dwSize = MAX_PATH;dwSize = MAX_PATH; lResult = RegEnumKeyEx(lResult = RegEnumKeyEx( hKey, i, szName,hKey, i, szName, &dwSize, NULL, NULL,&dwSize, NULL, NULL, NULL, &ftWrite);NULL, &ftWrite); if( SUCCEEDED( StringCchPrintf(if( SUCCEEDED( StringCchPrintf( pwszNewSubKey, 256, L"%s\\%s",pwszNewSubKey, 256, L"%s\\%s", pwszSubKey, szName)))pwszSubKey, szName))) {{ Result = Result =

EnumerateSubKeys( pwszNewSubKey );EnumerateSubKeys( pwszNewSubKey ); }} }} if( hKey )if( hKey ) RegCloseKey( hKey );RegCloseKey( hKey );

return ERROR_SUCCESS;return ERROR_SUCCESS;

Page 12: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Discovery: FD PnPDiscovery: FD PnP

hr = spDiscovery->CreateInstanceCollectionQuery(hr = spDiscovery->CreateInstanceCollectionQuery(

FCTN_CATEGORY_PNP,FCTN_CATEGORY_PNP,

NULL,NULL,

TRUE,TRUE,

spNotify,spNotify,

&spFunQuery );&spFunQuery );

if ( SUCCEEDED( hr ))if ( SUCCEEDED( hr ))

hr = spFunQuery->Execute( &spFunInsts );hr = spFunQuery->Execute( &spFunInsts );

Page 13: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Discovery: FD RegistryDiscovery: FD Registry

hr = spDiscovery->CreateInstanceCollectionQuery(hr = spDiscovery->CreateInstanceCollectionQuery(

FCTN_CATEGORY_REGISTRY,FCTN_CATEGORY_REGISTRY,

NULL,NULL,

TRUE,TRUE,

spNotify,spNotify,

&spFunQuery );&spFunQuery );

if ( SUCCEEDED( hr ))if ( SUCCEEDED( hr ))

hr = spFunQuery->Execute( &spFunInsts );hr = spFunQuery->Execute( &spFunInsts );

Page 14: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Discovery: FD WSDDiscovery: FD WSD

hr = spDiscovery->CreateInstanceCollectionQuery(hr = spDiscovery->CreateInstanceCollectionQuery(

FCTN_CATEGORY_WSDISCOVERY,FCTN_CATEGORY_WSDISCOVERY,

NULL,NULL,

TRUE,TRUE,

spNotify,spNotify,

&spFunQuery );&spFunQuery );

if ( SUCCEEDED( hr ))if ( SUCCEEDED( hr ))

hr = spFunQuery->Execute( &spFunInsts );hr = spFunQuery->Execute( &spFunInsts );

Page 15: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

FD Feature OverviewFD Feature Overview

DiscoveryDiscoveryQuery by protocol category insteadQuery by protocol category insteadof with protocol codeof with protocol code

Refine query using properties or constraints Refine query using properties or constraints (i.e., PnP Interface IDs)(i.e., PnP Interface IDs)

Define aggregate categories toDefine aggregate categories toTarget more than one providerTarget more than one provider

I.e., NetBIOS and WSDI.e., NetBIOS and WSD

Always apply constraintsAlways apply constraintsCategory will only return network printersCategory will only return network printers

Page 16: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

FD Feature OverviewFD Feature Overview

NotificationsNotificationsClients receive notifications from categoryClients receive notifications from category

Send on resource add/removeSend on resource add/remove

ActivationActivationInstantiate and initialize software objects Instantiate and initialize software objects associated with resourceassociated with resource

Application provides the ClassID Application provides the ClassID and interface desiredand interface desired

FD binds object to resourceFD binds object to resource

Page 17: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

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

Single unit of discoverySingle unit of discoveryRepresents the discovered resourceRepresents the discovered resource

Created by the provider in responseCreated by the provider in responseto a query to a query

Local resources returned as collectionLocal resources returned as collectionof Function Instancesof Function Instances

Network resources returned as discovered Network resources returned as discovered via notificationsvia notifications

Page 18: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

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

Store resource information as propertiesStore resource information as propertiesStore containsStore contains

MetadataMetadata

Configuration dataConfiguration data

State dataState data

Exposed through IPropertyStore interfaceExposed through IPropertyStore interface

Allow read and write (when supported)Allow read and write (when supported)of resource informationof resource information

Page 19: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

PnP-XPnP-XPlug and Play for networked devicesPlug and Play for networked devices

Cameron BrodeurCameron BrodeurProgram ManagerProgram Manager

Page 20: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Device Connectivity OptionsDevice Connectivity Options

Windows provides many different options Windows provides many different options for device connectivityfor device connectivity

Wired busesWired busesUSB 1.x and 2.0USB 1.x and 2.0

IEEE 1394IEEE 1394

Wireless personal area networkWireless personal area networkBluetoothBluetooth

Ultra-Wideband (UWB)Ultra-Wideband (UWB)

IP connectedIP connectedWi-FiWi-Fi

EthernetEthernet

Page 21: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

IP devices limited in adoptionIP devices limited in adoption

Custom solutions for integrating Custom solutions for integrating with Windowswith Windows

A non-PnP deviceA non-PnP device

HistoricallyHistoricallyDual approachDual approach

The IP “bus” is handled differently from other busesThe IP “bus” is handled differently from other buses

This presents several problemsThis presents several problemsDisparate programming modelsDisparate programming models

No single end-user experienceNo single end-user experience

The device experience depends on the connector selectedThe device experience depends on the connector selected

Well understood experiencewhen plugging into this port

Fuels device adoptionFuels device adoption

Lowers support costsLowers support costs

A PnP deviceA PnP device

Undefined experience whenplugging into this port

Page 22: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

The FutureThe FutureSingle modelSingle model

Unification of IP and directly connected devicesUnification of IP and directly connected devicesUsers should not have to care about the busUsers should not have to care about the bus

Directly Connected

IP Network

Page 23: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

BenefitsBenefits

NCDs are simple to discover and useNCDs are simple to discover and useInstalled and managed just like local, Installed and managed just like local, bus-attached devicesbus-attached devices

Lower support costsLower support costs

Broader device adoptionBroader device adoption

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

Allows use of FD API and legacy APIsAllows use of FD API and legacy APIs

Improved end-user experienceImproved end-user experience

Page 24: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

BenefitsBenefits

NCDs benefit from existing Windows NCDs benefit from existing Windows assets for device managementassets for device management

Windows PnP and device management Windows PnP and device management infrastructureinfrastructure

Windows UpdateWindows Update

Page 25: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

DiscoveryDiscovery

Before a device can be installed,Before a device can be installed,it must be discoveredit must be discovered

Network protocols replace the bus-specific electrical Network protocols replace the bus-specific electrical signals used for physically connected devicessignals used for physically connected devices

Metadata exchangeMetadata exchangeEnough information about the device mustEnough information about the device mustbe retrieved for installation purposesbe retrieved for installation purposes

Hardware IDHardware ID

Class IDClass ID

Friendly NameFriendly Name

Etc.Etc.

Page 26: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

AssociationAssociation

With physical connections, the cable itself With physical connections, the cable itself establishes the associationestablishes the association

For NCDs, the following questions applyFor NCDs, the following questions applyWith which PC is the device associated?With which PC is the device associated?

Can the device be associated with more than one PC?Can the device be associated with more than one PC?

Page 27: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Enabling A Single Model Through PnPEnabling A Single Model Through PnP

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

An IP bus enumerator (IPBusEnum) enumerates NCDsAn IP bus enumerator (IPBusEnum) enumerates NCDs

A PDO is created for each enumerated deviceA PDO is created for each enumerated device

PnP handles the installation of the device like any other devicePnP handles the installation of the device like any other device

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

PnP

PC

I

US

B

1394

PC

MC

IA

IPBusEnum

Class Drivers

Physical Discovery Network Discovery

Page 28: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

User opens Network ExplorerUser opens Network ExplorerMulticast sent by discovery providersMulticast sent by discovery providers

List of device FIs returned to Network ExplorerList of device FIs returned to Network Explorer

Network Explorer displays discovered devicesNetwork Explorer displays discovered devices

Devices respond to multicast requestDevices respond to multicast request

FD creates a Function Instance (FI)FD creates a Function Instance (FI)for each devicefor each device

PnP-X devices presented as “Installable”PnP-X devices presented as “Installable”

User selects device for installationUser selects device for installation

Network Explorer adds the FI to the Association Network Explorer adds the FI to the Association Database, which is maintained as a FD categoryDatabase, which is maintained as a FD categoryFD notifies IPBusEnum service that a new device FD notifies IPBusEnum service that a new device has been added to Association Databasehas been added to Association DatabaseIPBusEnum gathers data from FI and deviceIPBusEnum gathers data from FI and device

Creates PnP device node (DevNode)Creates PnP device node (DevNode)

PnP begins device installPnP begins device installFinds matching INF fileFinds matching INF file

Loads device driver and softwareLoads device driver and software

Function Discovery API

PnP

Network Discovery Providers

IPBusEnum

Association

Database

How PnP-X WorksHow PnP-X Works

Network Explorer UI

3rd PartyWSD SSDP

XboxFI

StorageFI

PrinterFI

WSD SSDP 3rd PartyWSD SSDP

PnP

DevNode

DeviceDriver

Legend:

PnP-X

Function

DiscoveryNetwork

Providers

Driver

Page 29: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Applications now see the device as unavailableApplications now see the device as unavailable

Queries to PnP reflect offline stateQueries to PnP reflect offline state

Device starts-upDevice starts-upSends WSD Hello or SSPD Alive messageSends WSD Hello or SSPD Alive message

FD creates FI for device; IPBusEnum notifiedFD creates FI for device; IPBusEnum notified

IPBusEnum checks association databaseIPBusEnum checks association databaseMatching device found in databaseMatching device found in database

PnP DevNode recreatedPnP DevNode recreated

Device driver loadedDevice driver loaded

Applications now see the device as availableApplications now see the device as available

Queries to PnP reflect online stateQueries to PnP reflect online state

Function Discovery API

PnP

Network Discovery Providers

IPBusEnum

How PnP-X WorksHow PnP-X WorksDevice goes offlineDevice goes offline

Sends WSD Bye or SSDP Bye-Bye messageSends WSD Bye or SSDP Bye-Bye message

Network Explorer UI

3rd PartyWSD SSDP

StorageFI

WSD SSDPWSD SSDP

PnP

DevNode

DeviceDriver

IPBusEnum calls PnPIPBusEnum calls PnPDriver unloaded Driver unloaded

PnP DevNode removedPnP DevNode removed

Device shutdown

Bye message sent

Status: OFFLINE

Device startupAlive message sent

Status: ONLINE

AssociationDatabase

StorageDevice

Legend:Legend:

PnP-XPnP-X

FunctionFunction

DiscoveryDiscoveryNetwork Network

ProvidersProviders

DriverDriver

3rd Party

Page 30: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Inbox Protocol SupportInbox Protocol Support

Inbox support is provided for the following discovery Inbox support is provided for the following discovery protocols in Windows Vistaprotocols in Windows Vista

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

Devices must support WS-Discovery as well as the Device ProfileDevices must support WS-Discovery as well as the Device Profilefor Web Services to be installable by PnP-Xfor Web Services to be installable by PnP-X

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

Devices must support SSDP as well as Device DescriptionDevices must support SSDP as well as Device Descriptionto be installable by PnP-Xto be installable by PnP-X

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

Must conform to the requirements in the PnP-XMust conform to the requirements in the PnP-Xand FD specificationsand FD specifications

See PnP-X and FD documentation for detailsSee PnP-X and FD documentation for details

Page 31: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Device RequirementsDevice Requirements

Devices must support one of the inbox Devices must support one of the inbox protocols or provide a custom providerprotocols or provide a custom provider

Devices must include additional XMLDevices must include additional XMLdata in the discovery metadatadata in the discovery metadata<HardwareId><HardwareId>

<CompatibleId><CompatibleId>

<DeviceCategory><DeviceCategory>

Allows PnP-X to recognize that the device Allows PnP-X to recognize that the device is “installable” and create a PnP DevNodeis “installable” and create a PnP DevNode

Page 32: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Device-Side XML Example (UPnP)Device-Side XML Example (UPnP)

<?xml version="1.0" ?> <?xml version="1.0" ?> <root xmlns="urn:schemas-upnp-org:device-1-0"><root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion><specVersion> <major>1</major> <major>1</major> <minor>0</minor> <minor>0</minor> </specVersion></specVersion> <URLBase>http://192.168.0.1:1234</URLBase> <URLBase>http://192.168.0.1:1234</URLBase> <device><device> <pnpx:X_hardwareId>MSFT_MediaPlayer_HWID</pnpx:X_hardwareId><pnpx:X_hardwareId>MSFT_MediaPlayer_HWID</pnpx:X_hardwareId> <pnpx:X_compatibleId>MSFT_MediaPlayer_CPID</pnpx:X_compatibleId><pnpx:X_compatibleId>MSFT_MediaPlayer_CPID</pnpx:X_compatibleId> <pnpx:X_deviceCategory>MediaDevices</pnpx:X_deviceCategory><pnpx:X_deviceCategory>MediaDevices</pnpx:X_deviceCategory> <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType> <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType> <friendlyName>Microsoft Advanced Media Player</friendlyName> <friendlyName>Microsoft Advanced Media Player</friendlyName> <manufacturer>Microsoft</manufacturer> <manufacturer>Microsoft</manufacturer> ...... </device></device></root></root>

Page 33: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

DevNode CreationDevNode Creation

IPBusEnum creates a PnP DevNode IPBusEnum creates a PnP DevNode for the devicefor the device

Information discovered about the device is stored Information discovered about the device is stored in the DevNode property store, includingin the DevNode property store, including

IP AddressIP Address

Hardware IDs and Compatible IDs for the deviceHardware IDs and Compatible IDs for the device

Device UUID (GUID)Device UUID (GUID)

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

Invoke the specified class installer and optional Invoke the specified class installer and optional co-installer to carry out the installation processco-installer to carry out the installation process

Page 34: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Device Driver DetailsDevice Driver Details

Manufacturer can supply a kernel-modeManufacturer can supply a kernel-modeor user-mode driver for the deviceor user-mode driver for the device

Driver can also be a class driver supplied Driver can also be a class driver supplied by Microsoftby Microsoft

For proprietary devices or devices that are tiedFor proprietary devices or devices that are tiedto a single application, the install process can to a single application, the install process can simply install the application or servicesimply install the application or service

Page 35: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

CommunicatingCommunicating With Your Device With Your Device

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

Communication with network connected devices Communication with network connected devices will go through existing network stackswill go through existing network stacks

.NET Framework.NET Framework

WSDWSD

UPnPUPnP

WinSockWinSock

Protocol choice left up to the vendorProtocol choice left up to the vendor

Page 36: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Industry AdoptionIndustry Adoption

PnP-X adoption is growingPnP-X adoption is growingWSD-based printersWSD-based printers

Wi-Fi digital camerasWi-Fi digital cameras

Media Center Extender devices, including Media Center Extender devices, including the Xbox 360the Xbox 360

Network Attached Storage devicesNetwork Attached Storage devices

Adoption is acceleratingAdoption is accelerating

The time to consider PnP-X for your networked The time to consider PnP-X for your networked devices is nowdevices is now

Page 37: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

MaxtorMaxtorNetwork Attached StorageNetwork Attached Storage

Page 38: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Call To ActionCall To Action

Evaluate PnP-X and Function Discovery Evaluate PnP-X and Function Discovery for your NCDsfor your NCDs

Review the PnP-X and Function Discovery Review the PnP-X and Function Discovery documentation on MSDNdocumentation on MSDN

For WSD and UPnP devices, update your For WSD and UPnP devices, update your device to provide the information specifieddevice to provide the information specifiedby the PnP-X documentationby the PnP-X documentation

For other devices, write a Function Discovery For other devices, write a Function Discovery provider that conforms to requirements provider that conforms to requirements specified by the FD documentationspecified by the FD documentation

Page 39: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

Additional ResourcesAdditional Resources

Web ResourcesWeb ResourcesFunction Discovery SpecsFunction Discovery Specshttp://msdn.microsoft.com/library/default.asp?url=/library/en-ushttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fundisc/ncd/portal.asp/fundisc/ncd/portal.aspPnP-X SpecsPnP-X SpecsSee the Windows Rally SDK at See the Windows Rally SDK at http://www.microsoft.com/rallyhttp://www.microsoft.com/rallyFunction Discovery SDK Documentation Function Discovery SDK Documentation http://http://windowssdk.msdn.microsoft.com/library/default.asp?urlwindowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/=/library/en-us/fundisc/ncd/about_function_discovery.aspfundisc/ncd/about_function_discovery.aspWhitepapersWhitepapershttp://www.microsoft.com/rallyhttp://www.microsoft.com/rally

Related SessionsRelated SessionsWeb Services on devices in Windows VistaWeb Services on devices in Windows VistaWeb Services on devices: The protocol now and for the futureWeb Services on devices: The protocol now and for the future

Email address for more informationEmail address for more information rally @ microsoft.comrally @ microsoft.com

Page 40: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 41: Plug And Play For Network Connected Devices Cameron Brodeur and Kristina Hotz Program Managers Windows Device Experience Group Microsoft Corporation