Upload
ernest-jenkins
View
219
Download
0
Tags:
Embed Size (px)
Citation preview
Device And PC Integration With Discovery, Plug And Play, Publication, And Network Explorer
Roland Ayala, Cameron Brodeur, and Aaron CunninghamProgram ManagersNetworking and DevicesMicrosoft Corporation
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
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
Windows Connect Now ProgramsWindows Connect Now Programs
Access to Windows Access to Windows Connect Now Connect Now TechnologiesTechnologies
TechnicalTechnicalGuidanceGuidance
ConsolidatedConsolidatedLicensing ProgramLicensing 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
Device Connectivity OptionsDevice Connectivity Options
Wired bussesUSB 1.x and 2.0
IEEE 1394
WirelessBluetooth
Wireless USB over UWB
IP connected802.11x
Ethernet
Historically: Dual ApproachHistorically: Dual Approach
The IP “bus” is handled differently from other buses
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
The Future: Single ModelThe Future: Single Model
Unification of IP and directly connected devicesUsers shouldn’t have to care about the bus
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
Problems To SolveProblems To Solve
Goal: Make the NCD a PnP device
Problems to solveDiscovery
Association
Security
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.
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?
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
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
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
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
FD Architectural OverviewFD Architectural Overview
Function Discovery API
Client
Pn
P
WS
-Dis
cove
ry
SS
DP
SD
P
Reg
istr
y
…FD Providers
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
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
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
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.
PnP-X Drilldown
Cameron Brodeur
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
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
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
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
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:
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
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
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
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
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
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
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
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.