`Zintel et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,910,068 B2
`Jun. 21, 2005
`
`US006910068B2
`
`(54) XML-BASED TEMPLATE LANGUAGE FOR
`DEVICES AND SERVICES
`
`(58) Field of Search ..0.........0..:ccceeeeeeees 709/218, 220,
`709/225, 229, 249
`
`(75)
`
`Inventors: William M. Zintel, Kenmore, WA
`(US); Amar S. Gandhi, Redmond, WA
`(US); Ye Gu, Seattle, WA (US);
`Shyamalan Pather, Redmond, WA
`(US); Jeffrey C. Schlimmer, Redmond,
`WA (US); Christopher M. Rude,
`Redmond, WA (US); Daniel R.
`Weisman, Kirkland, WA (US); Donald
`R. Ryan, Redmond, WA (US); Paul J.
`Leach, Seattle, WA (US); Ting Cai,
`Redmond, WA (US); Holly N. Knight,
`Woodinville, WA (US); Peter S. Ford,
`Carnation, WA (US)
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,394,556 A
`2/1995 Oprescur
`......esceseeceeeee 395/800
`5,491,800 A
`2/1996 Goldsmith et al.
`..... 395/200.12
`.
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`wo
`
`7A999
`WO 99/35856
`OTHER PUBLICATIONS
`
`A. Kung, B. Raither, S. McConnell, Electronic Commerce
`Services Expand Home Automation Capabilities, TRIA-
`LOG, EMMSEC 799 Conference, Jun. 1999, pp. 1-7.
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(Continued)
`(US)
`
`(*) Notice:—Subject to any disclaimer, the termofthis primary Examiner—Jeffrey Gaffin
`patent is extended or adjusted under 35
`Assistant Examiner—Mohammad O.Farooq
`U.S.C. 154(b) by 841 days.
`(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
`
`(21) Appl. No.: 09/811,362
`
`Bled:
`Filed:
`
`>)
`(22)
`(65)
`
`Mar. 16, 2001
`Prior Publication Data
`
`ABSTRACT
`(57)
`Auniversal plug and play (UPnP) device makesitself known
`through a set of processes-discovery, description, control,
`eventing, and presentation. Following discovery of a UPnP
`device, an entity can learn more about the device and its
`capabilities by retrieving the device’s description. The
`description includes vendor-specific manufacturer informa-
`US2002/0029256 A1 Mar. 7, 2002
`tion like the model name and number, serial number, manu-
`Under
`37 C
`AT
`
`(Under37CFR 1.47) facturer name, URLsto vendor-specific Web sites, etc. The
`Related U.S. Application Data
`description also includesa list of any embedded devices or
`services, as well as URLsfor control, eventing, and presen-
`(63) Continuation-in-part of application No. 09/496,318,filed on
`tation. The descriptionis written by a vendor,andis usually
`Feb. 1. 2000.
`based on a device template produced by a UPnP forum
`(60)
`Provisional application No. 60/190,943,filed on Mar. 21,
`working committee. The template is derived from a template
`2000, provisional application No. 60/160,235,filed on Oct.
`language that
`is used to define elements to describe the
`18, 1999, and provisional application No. 60/139,137,filed
`device and any services supported by the device. The
`oa Jun. 11, 1999.
`template language is written using an XML-based syntax
`Tmt. C0? cieceececcccecsessessessesseeseeseeseeseeees GO06F 15/177
`that organizes and structures the elements.
`(SL)
`
`(52) U.S. Che oes, 709/220; 709/218; 709/225;
`709/229; 709/249
`
`38 Claims, 48 Drawing Sheets
`
`
`
`] PERSONAL COMPUTER]___895
`PROCESSING
`my
`[
`ur +
`ic
`‘CRERATING |__- 5
`SYSTEN
`-
`iy
`aaa
`Fe
`uTEM
`-
`a
`“ awu yo
`row
`
`
`
`
`Poel er}
`
`|
`
`ei2~
`
`Netflix, Inc. et al. Exhibit 1003
`Page 1 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 1 of 91
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`“Time for Smart Talk is Over, Sunbeam Trumps Small
`
`
`
`
`
`
`
`Appliance Industry With Smart Appliance Debut,” Sunbeam
`
`
`
`
`
`
`
`
`
`9/1996 Oprescu et al... 395/285
`5,559,967 A
`
`
`
`
`Corporation, pp. 1-4 (2000).
`
`
`
`
`
`
`
`
`
`5/1997 Reynolds et al.
`5,627,964 A
`...... 395/183.22
`
`
`
`
`
`“Lonworks Core Technology,” Echelon Corporation, pp.
`
`
`
`
`
`
`
`
`4/1998 Jain et al. wee 382/154
`5,745,126 A *
`
`
`
`1-2 (2000).
`
`
`
`
`
`
`
`
`
`5/1998 Lipe et al. wo... 395/828
`5,748,980 A
`
`
`
`
`
`
`
`
`
`
`
`
`6/1998 Staats... eee 395/287
`5,764,930 A
`“Underlying Protocol of Echelon’s Lonworks® Network
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`7/1998 Lichtman etal. ........ 395/200.5
`5,787,246 A
`Adopted as New ANSIStandard, Free Reference Implemen-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`7/1998 Haroun et al.
`5,787,259 A
`......... 395/200.83
`tation Available to Developers,” Echelon Corporation, pp.
`
`
`
`
`
`
`
`
`
`8/1998 Lichtmanet al.
`5,793,979 A
`...... 395/200.56
`
`
`1-2 (2000).
`
`
`
`
`
`
`
`
`9/1998 Staats et al. oe. 395/830
`5,809,331 A
`
`
`
`
`
`
`
`
`Handleyet al., “SIP: Session Initiation Protocol,” The Inter-
`
`
`
`
`
`
`
`
`3/1999 Christensen et al.
`5,881,230 A
`.... 395/200.33
`
`
`
`
`
`
`
`net Society, pp. 1-130 (Aug. 6. 2000).
`
`
`
`
`
`
`
`
`
`5/1999 Semenzato ..........0... 395/200.47
`5,903,728 A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Rosenberg et al., “SIP Extensions for Instant Messaging,”
`
`
`5,903,894 A 5/1999 Renerisou...eeeeeeeeeee 707/100
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Internet Engineering Task Force, pp. 1-30 Jun. 15, 2000).
`5,938,752 A
`8/1999 Leung etal. oe. 710/126
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,083,276 A
`7/2000 Davidsonetal.
`Rosenberg et al., “SIP Extensions for Presence,” Internet
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,101,499 A
`8/2000 Ford et al. oo... eee eee 707/10
`Engineering Task Force, pp. 1-77 (Jun. 15, 2000).
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,167,448 A
`12/2000 Hemphillet al.
`Tsang et al., “Requirements for Networked Appliances:
`
`
`
`
`
`
`6,466,971 B1
`10/2002 Humplemanetal.
`
`
`
`
`
`
`Wide-Area Access, Control, and Interworking,” Internet
`
`
`
`
`
`
`
`
`6,477,566 B1 * 11/2002 Davis et al. oe. 709/223
`
`
`
`
`
`
`
`Engineering Task Force, pp. 1-9 (Sep. 2000).
`
`
`
`
`
`
`
`
`6,507,856 Bl *
`1/2003 Chenetal. we. 715/513
`
`
`
`
`
`
`
`
`Tsang et al., “SIP Extensions for Communicating with
`
`
`
`
`
`
`6,546,419 B1
`4/2003 Humplemanetal.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Networked Appliances,” Internet Engineering Task Force,
`6,553,402 B1 *
`4/2003 Makarioset al.
`........... 709/201
`
`
`
`
`
`
`
`
`
`
`
`
`6,560,633 B1 *
`5/2003 Roberts et al... 709/202
`pp. 1-9 (Nov. 2000).
`
`
`
`
`
`
`
`Moyeret al., “Framework Draft for Networked Appliances
`
`
`
`
`
`
`Using the Session Initiation Prtocol,” Internet Engineering
`
`
`
`
`
`
`Task Force, pp. 1-31 (Nov. 2000).
`
`
`
`
`
`
`Marples,“Naming and Accessing Network Appliances using
`
`
`
`
`
`
`
`
`extensions to the Session Initiation Protocol,” SZP for
`
`
`
`
`Toaster, Telcordia Technologies (2000).
`
`
`
`
`
`“Networked Appliances,” AR Greenhouse, Telcordia Tech-
`
`
`
`
`
`
`nologies, pp. 1-2 (Dec. 15, 2000).
`
`
`
`
`
`
`
`
`
`
`Moyeret al., “SIP for Light Bulbs, Using SIP to Support
`
`
`
`
`Communication with Networked Appliances,” Telcordia
`
`
`
`
`Technologies (Aug. 2, 2000).
`
`
`
`
`
`
`Bennett et al., “Integrating Presence with Multi-media
`
`
`
`
`
`Communications,” White Paper, Dynamicsoft., pp. 1-18
`
`(2000).
`
`
`
`
`
`
`
`
`Rosenberg et al., “An Application Server Architecture for
`
`
`
`
`
`
`Communications Services,” White Paper, Dynamicsoft., pp.
`
`
`1-13 (2000).
`
`
`
`
`“EIB Technology,” EIB (2000).
`
`
`
`
`
`
`Freemanetal., “JavaSpaces™ Principles, Patterns, and Prac-
`
`
`
`
`
`tice,” Addison—Wesley Longman,Inc., Reading, Massachu-
`
`
`
`
`
`setts (1999, Sun Microsystems,Inc.).
`
`
`
`
`
`Arnold et al., “The Jini™Specification,’ Addison—Wesley
`
`
`
`
`
`
`Longman,Inc., Reading, Massachusetts (1999, Sun Micro-
`
`
`systems, Inc.).
`
`
`
`
`
`
`
`Edwards, “Core Jini™, Second Edition,” Prentice Hall PTR,
`
`
`
`
`
`
`Upper Saddle River, New Jersey (2001).
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`Web Interface Definition Language (WIDL), NOTE-
`
`
`
`
`
`
`widl—970922, WebMethods, Inc. 1997, pp. 1-15.
`
`
`
`
`
`
`
`“Home Plug & Play™: CAL-based Interoperability for
`
`
`
`
`
`
`HomeSystems,” HomePNP™Specification. Version 1.0, pp.
`
`
`
`
`1-111, (Apr. 9, 1998).
`
`
`
`
`
`
`
`White Paper, “HAVi, the A/V digital network revolution,”
`
`
`
`
`
`HAVi Organization, pp. 1-7 (1999).
`
`
`
`
`
`“Specification of the Home Audio/Video Interoperability
`
`
`
`
`
`
`
`(HAVi) Architecture,” The HAVi Specification. Version 1.0
`
`
`
`(Jan. 18, 2000).
`
`
`
`
`
`
`Anderson, “FireWire System Architecture: Second Edition,
`
`
`
`
`
`IEEE 1394a,” chapters 1-4 (1999).
`
`
`
`
`
`
`Technical White Paper, “Jini Architectural Overview,” Sun
`
`
`
`Microsystems, Inc. (1999).
`
`
`
`
`
`
`“Salutation Consortium Frequently Asked Questions,” The
`
`
`
`
`
`
`
`
`Salutation Consortium, pp. 1-6 (priorto filing date).
`
`
`
`
`“Salutation Architecture Specification (Part-I), Version
`
`
`
`
`
`
`
`2.0c,” The Salutation Consortium, (Jun. 1, 1999).
`
`
`
`
`
`
`
`
`
`
`“How it works,” Thalia, pp. 1-3 (prior to filing date).
`
`
`
`
`
`
`
`“Sun Microsystems and Thalia Productions Inc. to Collabo-
`
`
`
`
`
`
`
`
`
`rate to Co—Develop Network Software and Protocols for the
`
`
`
`
`
`
`
`
`Home, Results to Make Networked Appliances for the
`
`
`
`
`
`
`
`
`Homea Reality,” Sunbeam Corporation, pp. 1-2 (2000).
`
`
`
`
`
`
`
`
`“Sunbeam Joins Microsoft in the Universal Plug and Play
`
`
`
`
`
`
`
`Forum to Establish A ‘Universal’ Smart Appliance Technol-
`
`
`
`
`
`
`
`ogy Standard,” Sumbeam Corporation, pp. 1-2 (2000).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 2 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 2 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 1 of 48
`
`US 6,910,068 B2
`
`FIG. 1
`
`100 \
`—~— 102
`
`MULTIPLE
`FUNCTION DEVICE
`
`493
`
`MULTIPLE
`FUNCTION DEVICE
`
`DEVICE
`
`DEVICE
`
`
`104
`
`106
`
`conOL i
`POINT
`
`DEVICE CONTROL
`PROTOCOLS
`
`EVENTS
`
`CONTROLLED
`DEVICE
`
`CONTROLLED
`
`DEVICE CONTROL
`PROTOCOLS
`
`EVENTS
`
`107
`
`105
`
`USER CONTROL
`POINT
`
`
`
`
`
`FIG.2
`100x
`
`
`
`USER CONTROL
`POINT
`105
`
` 120
`NS
`
`oe BRIDGED
`
`DEVICE
`
`CONTROLLED
`
`DEVICE
`
` CONTROLLED
`
`BRIDGED DEVICES
`
`107
`
`BRIDGED
`DEVICE
`
`Netflix, Inc. et al. Exhibit 1003
`Page 3 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 3 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 2 of 48
`
`US 6,910,068 B2
`
`200
`\
`210
`211
`220=ROOT DEVICE
`
`FIG. 3
`
`202
`
`\
`234
`
`DISCOVERY
`
`PRESENTATION
`
`
`DESCRIPTION}|DEVICE é
`21
`212
`213
`SERVER
`
`PRESENTATION
`SERVER
`
`SERVICE
`
`SERVICE
`
`214
`
`215
`
`DESCRIP-
`TION
`DOCUMENT
`
`PRESENTATION
`
`223
`
`216
`
`217
`
`PRESENTATION
`SERVER
`
`SERVICE
`
`SERVICE
`
`CONTROL
`LOGIC
`
`232
`
`CONTROL
`SERVER
`
`SERVICE
`STATE
`TABLE
`
`EVENT
`SOURCE
`
`Netflix, Inc. et al. Exhibit 1003
`Page 4 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 4 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 3 of 48
`
`US 6,910,068 B2
`
`FIG. 4
`
`251
`
`250
`
`CLOCK
`
`CLOCK
`
`TV/VCR
`
`DISCOVERY
`
`DOCUMENT
`
`DISCOVERY
`SERVER
`
`DESCRIPTION
`SERVER
`
`DESCRIPTION
`SERVER
`
`DESCRIP-
`TION
`
`DESCRIP-
`TION
`DOCUMENT
`
`Netflix, Inc. et al. Exhibit 1003
`Page 5 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 5 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 4 of 48
`
`US 6,910,068 B2
`
`FIG. 5
`
`300 “s
`
`SUBSCRIBE
`
`COMMAND
`
`104 EVENT
`
`
`
` CONTROLLED DEVICE
`
`
`
`
`EVENT
`
`SUBSCRIP-
`
`
`
`TION
`
`SERVER
`
`232
`
`CONTROL
`SERVER
`
`
`
`
` FRONT
`
`
`
`
`TABLE
`
`PANEL
`CONTROL
`
`
`
`SERVICE
`STATE
`
`
`
`
`
`
`
`320
`
`INFRARED
`REMOTE
`
`COMMAND
`
`Netflix, Inc. et al. Exhibit 1003
`Page 6 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 6 of 91
`
`
`
`U.S. Patent
`
`Jun.21, 2005
`
`Sheet 5 of 48
`
`US 6,910,068 B2
`
`FIG. 6
`
`350
`
`USAGE
`
`DESRIPTION
`
`DISCOVERY
`
`NAMING
`
`ADDRESSING
`
`360
`
`358
`
`356
`
`354
`
`382
`
`Netflix, Inc. et al. Exhibit 1003
`Page 7 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 7 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 6 of 48
`
`US 6,910,068 B2
`
`200
`
`202
`
`eyinial
`
`
`
`PRESENT-
`
`SERVICE
`
`/\ CONTROL
`
`SERVER
`
`DESCRIP-
`TION
`URL
`
`FIG. 7
`
`
`
`ROOT DEVICE
`
`
`220
`
`
`
`
`ATION
`205
`
`
`
`SERVER
`
`
`DESCRIPTION
`
`SERVER
`ATION serveRVICE
`
`
`PRESENT-
`
`
`
`
`
`-_—
`SOURCE 234
`
`
` EVENT
`SUB-
`SCRIP-
`TION
`SERVER
`
`EVENT
`
`Netflix, Inc. et al. Exhibit 1003
`Page 8 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 8 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 7 of 48
`
`US 6,910,068 B2
`
`406
`
`Jf
`
`106
`
`104
`
`USER
`CONTROL
`POINT
`
`PROTOCOL
`
`CONTROLLED
`DEVICE
`
`COMMANDS
`
`DRATOR
`
`SERVICE
`CONTROL
`
`CONTROL
`SERVER
`
`Netflix, Inc. et al. Exhibit 1003
`Page 9 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 9 of 91
`
`
`
`U.S. Patent
`
`Jun.21, 2005
`
`Sheet 8 of 48
`
`US 6,910,068 B2
`
`FIG. 9
`
`APPLICATIONS
`
`USER CONTROL POINT
`
`OBJECT INTEGRATION
`INTERFACES
`
`ICLOCK
`
`104
`
`DESCRIP-
`
`CONTRACT
`PACKETS
`REQUEST/
`RESPONSE
`PATTERNS
`PROTOCOLS
`
`NETWORK
`DATA
`PACKETS
`
`CONTROL
`SERVER
`
`CONTROLLED DEVICE
`(E.G., CLOCK)
`
`Netflix, Inc. et al. Exhibit 1003
`Page 10 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 10 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 9 of 48
`
`US 6,910,068 B2
`
`FIG.10
`
` 450
`
` DEVICE
`
`FINDER
`
`9\ C
`
`reateServiceObject()
`
`
`REHYDRATOR
`
`410
`
`
`
`
`
`
`
` InvokeAction()
`
`QueryStateVariable()
`
`InvokeAction()
`
`SERVICE OBJECT
`
`460
`
`QueryStateVariable()
`
`9 {UPNP-
`SERVICE
`
`Netflix, Inc. et al. Exhibit 1003
`Page 11 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 11 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 10 of 48
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`104
`FIG. 11
`
`
`USER CONTROL POINT
`
`
`
`
`
`
`
`
`DISCOVERY
`CLIENT
`
`
`
`
`
`
`
`
`
`106
`
`
`CONTROLLED DEVICE
`
`
`
`
`
`
`
`
`
`
`DISCOVERY
`SERVER
`
`
`
`
`
`TION
`
`
`
`
`
`
`
`
`DESCRIP-||DESCRIP-
`
`
`
`DESCRIP-
`
`
`TION
`TION
`TION CLIENT
`SERVER
`DOCUMENT
`
`
`
`
`
`
`VISUAL
`NAVIGATION
`
`
`
`
`
`
`
`
`
`
`
`
`APPLICA-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PRESENT-
`
`ATION
`SERVER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CONTROL
`SERVER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 12 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 12 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 11 of 48
`
`US 6,910,068 B2
`
`FIG. 12
`
`104
`
`106
`
`USER CONTROLPOINT
`
`CONTROLLED DEVICE
`
`TION
`
`DISCOVERY
`CLIENT
`
`DISCOVERY
`SERVER
`
`cere. |__| se
`TION CLIENT
`TION
`SERVER
`
`SUBSCRIP
`-TION
`CLIENT
`
`APPLICA-
`
`EVENT
`SUBSCRIP
`-TION
`SERVER
`
`Netflix, Inc. et al. Exhibit 1003
`Page 13 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 13 of 91
`
`
`
`U.S. Patent
`
`Jun.21, 2005
`
`Sheet 12 of 48
`
`US 6,910,068 B2
`
`FIG, 13
`
`COMBINED BRIDGE AND
`USER CONTROL POINT
`
`DESCRIP-
`
`DESCRIP-
`
`COVERY
`
`SERVER
`
`
`
`TION
`
`SERVER
`
`EVENTS
`
`SOURCE eee REHYDRATOR
`
`_SPL
`
`SERVICE
`PROVIDER
`
`BRIDGED
`DEVICE
`
`Netflix, Inc. et al.
`
`Exhibit 1003
`Page 14 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 14 of 91
`
`
`
`U.S. Patent
`
`Jun.21, 2005
`
`Sheet 13 of 48
`
`US 6,910,068 B2
`
`USER CONTROLPOINT
`
`CONTROLLED DEVICE
`
`cues { DISCOVERYRESPONSE(URL) \ SERVER
`
`SSDP DISCOVERY REQUEST
`
`DISCOVERY
`
`DISCOVERY
`
`Pakse
`DESCRIPTION, ISSUE
`REQUESTS FOR
`ADDITIONAL
`INFORMATION)
`
`GET(DESCRIPTION URL)
`RESPONSE(UPnP
`DESCRIPTION
`
`y
`DEVICE
`DESGRIPTION
`SERVICE
`
`RESPONSE
`GET NAME
`
`DESCRIPTION
`SERVER
`
`RESPONSE
`
`REHYDRATOR, ADD
`DEVICE ICON TO
`USER INTERFACE)
`’
`VISUAL
`NAVIGATION
`|
`(USER SELECTS DEVICE
`ICON)
`GET(PRESENTATION URL)
`’
`wser{|neSpONSE
`
`RESPONSE
`
`BROWSE {
`
`(EMBEDDED SCRIPTIN
`WEB PAGE DISPLAYS
`DEVICE Ul; SCRIPT
`CALLS REHYDRATOR
`TO INTERACT WITH
`
`} (WEB)SERVER
`
`PRESENTATION
`
`} CONTROLSERVER
`
`DEVICE)
`
`REHYDRATOR {
`
`GET/PUT(CONTROLURL)
`
`Netflix, Inc. et al. Exhibit 1003
`Page 15 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 15 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 14 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`FIG. 15
`
`
`
`root
`
`
`
`
`
`
`
`
`
`
`specVersionMajor
`specVersionMinor
`
`URLBase
`
`manufacturer
`manufacturerURL
`
`modelName
`
`modeiNumber
`modelDescription
`
`
`modelURL
`
`UPC
`
`serialNumber
`
`device
`
`UDN
`friendlyName
`
`
`deviceType
`
`presentationURL
`
`
`iconList
`icon
`
`
`
`
`
`
`
`
`
`
`size
`
`color
`
`depth
`
`imageType
`
`imageURL
`
`
`
`
`
`
`
`
`icon
`icon
`
`service
`
`serviceType
`
`
`control|URL
`eventSubURL
`
`SCPD
`
`service
`
`service
`
`device
`
`service
`
`service
`
`device
`service
`
`
`
`Netflix, Inc. et al.
`,
`
`Exhibit 1003
`Page 16 of 91
`
`
`
`
`device
`
`device
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 16 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 15 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 16
`
`<device>
`
`
`
`
`
`
`<iconList>
`
`<icon>
`
`
`<size> 16</size>
`
`<colar>0</color>
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon1 6bw.png"</image>
`
`</icon>
`
`<icon>
`
`<size>32</size>
`
`<color>0</color>
`
`<dapth>B</depth>
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon32bw.png”</image>
`
`</icon>
`
`<icon>
`
`<size>48</size>
`
`<color>0</color>
`
`<depth>8</depth>
`
`<imageType>PNG</imageType>
`<image>"hitp://device.local/iconpath/icon48bw.png"</image>
`
`</icon>
`
`<icon>
`
`<size>16</size>
`
`
`<color>1</cojor>
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon16c.png"</image>
`
`</icon><device>
`
`<icon>
`
`<size>32</size>
`
`<color>0</color>
`
`<depth>8</depth>
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon32c.png"</image>
`
`</icon>
`
`<icon>
`
`<size>48</size>
`
`<color>0</color>
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http-//device local/iconpath/icon48c.png"</image>
`
`<ficon>
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`<ficonList>
`
`
`
`_ <device>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 17 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 17 of 91
`
`
`
`U.S. Patent
`
`
`
`
`Jun.21, 2005
`
`
`
`Sheet 16 of 48
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`FIG. 17
`
`
`
`
`
`
`
`<?xml version="1.0"?>
`
`
`
`<scpd xmins="x-schema:scpdl-schema.xml">
`
`
`<service StateTable>
`
`
`<stateVariable>
`
`<name>currentChannel</name>
`
`<dataType>number</dataType>
`
`<allowedValueRange>
`
`<minimum>0</minimum>
`<maximum>55</maximum>
`
`
`<step>1</step>
`</allowedValueRange>
`
`
`</stateVariable>
`
`</serviceStateTable>
`
`
`
`
`
`
`
`
`
`
`<actionList>
`
`<action>
`<name>ChannelUp</name>
`
`</action>
`
`
`
`
`<action>
`<name>ChannelDown</name>
`
`</action>
`
`
`
`
`
`
`
`
`<action>
`<name>SetChannel</name>
`
`<argument>
`<name>newChannel</name>
`
`<relatedStateVariable>
`
`currentChannel
`</relatedStateVariable>
`
`</argument>
`
`</action>
`
`</actionList>
`
`</scpd>
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 18 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 18 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 17 of 48
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG, 18
`
`
`
`
`
`<contract>
`
`<protocol id="protocolDef">
`
`
`
`<HTTP version="1.1">
`
`<URL> </URL>
`
`<M-POST>
`<MAN>hitp:/Awww. microsoft.com/protocels/ex/XOAP</MAN>
`
`</M-POST>
`
`
`
`<HEADER name="Content-Type" value="text/xmi" />
`
`
`
`
`
`
`
`
`<!-- Need to put in extension headers here -->
`
`</HTTP>
`
`
`
`
`
`</protocol>
`
`
`
`
`<RequestResponse name="queryStateVariable">
`
`
`<protoco} is="protocolDef">
`
`<in is="queryStateVariable">
`
`<out is="queryStateVariableResponse">
`
`
`<error is="queryStateVariableResponse">
`
`</RequestResponse>
`
`
`
`
`
`
`
`
`
`
`
`<RequesiResponse name="invokeAction">
`
`
`<protocol is="protocolDef'>
`
`
`<in is="SerializedStream">
`
`<out is="invokeActionResponse”>
`
`<error is="invokeActionResponse">
`
`</RequestResponse>
`
`
`
`
`
`
`
`<Schema name="upnp_scpdl"
`
`
`xmlins="urn:schemas-microsoft-com:xml-data”
`xmins:dt="urn:schemas-microsoft-com:datatypes">
`
`
`<!-- Common -->
`
`
`
`
`
`
`
`
`
`<ElementType name="_return" content="textOnly"dt:type="string” />
`
`
`
`
`
`<ElementType name="_fault" content="textOnly" di:type="string" />
`
`
`
`
`
`
`
`<!-- Query State Variable Call -->
`
`
`
`
`
`
`
`<ClementType name="variableName" content="textOnly” dt:iype="string” />
`
`
`
`
`
`
`<ElementType name="queryStateVariable" content="eltOnly” model="closed">
`
`
`
`<element type="variableName” />
`
`</ElementType>
`
`
`
`
`
`
`
`<!-- Query State Variable Response —>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 19 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 19 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 18 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`FIG. 19
`
`
`
`
`
`
`
`<ElementType name="queryStateVariableResponse" content="eltOnly"
`
`
`model="closed">
`
`<group order="one">
`
`<element type="_return">
`
`
`<element type="_fault">
`
`</group>
`
`</ElementType>
`
`
`
`
`
`
`
`
`
`<!-- Invoke Action Call —>
`
`
`
`
`
`
`
`<AttributeType name="main" dt:type="idref” />
`
`
`
`<AttributeType name="headers"dt:type="idref”/>
`
`
`
`
`<AttributeType name="id" dt:type="id" />
`
`
`
`
`
`
`<ElementType name="sequenceNumber" content="textOnly" dt:type="int">
`
`
`
`
`
`
`
`
`<AttrbuteType name="dt" dt:type="string" dt:values="int" />
`
`
`
`
`
`
`<attribute type="dt" />
`
`</ElementType>
`
`
`
`
`<ElementType name="headers" content="eltOnly" model="closed"
`
`
`
`
`<attribute type="id" required="yes"/>
`
`
`
`<element type="sequenceNumber" />
`
`
`</ElementType>
`
`
`
`
`
`
`
`<ElementType name="actionName" content="textOnly” dt:type="string”/>
`
`
`
`
`
`<ElementType name="actionArg" content="textOnly" dt:type="string” />
`
`
`
`
`
`
`<ElementType name="invokeAction" content="eltOnly” model="closed">
`
`
`
`
`<attribute type="id" required="yes" />
`
`
`
`
`<element type="actionName">
`
`
`
`<element type="actionArg"” minOccurs="0" maxOccurs="*">
`
`</ElementType>
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 20 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 20 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 19 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG, 20
`
`
`
`
`<ElementType name="SerializedStream" content="eltOnly” model="closed">
`
`
`
`
`<attribute type="main” required="yes"/>
`
`
`
`
`<attribute type="headers" required="yes” />
`
`
`
`
`
`<element type="headers">
`
`<element type="invokeAction">
`
`
`
`</ElementType>
`
`
`
`
`
`
`<!— Invoke Action Response -->
`
`
`
`
`
`
`<ElementType name="invokeActionResponse” content="eltOnly” model="closed">
`
`
`<group order="one">
`
`<element type="_return">
`
`
`<element type="_fault">
`
`</group>
`</ElementType>
`
`</Schema>
`
`</contract>
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 21 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 21 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 20 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 21
`
`
`
`<?xml version="1.0"?>
`
`
`<Schema name="upnp_scpdl"
`
`xmins="urn:schemas-microsoft-com:xml-data”
`xmins:dt="urn:schemas-microsoft-com:datatypes">
`
`
`
`
`
`
`
`<!-- Common Elements and Attributes -->
`
`
`
`
`
`
`
`
`<ElementType name="name" content="textOnly" dt:type="string” />
`
`
`
`<]-- Service State Table -->
`
`
`
`
`
`
`
`
`<ElementType name="minimum"”content="textOnly" dt:type="number"/>
`
`
`
`
`<ElementType name="maximum"content="textOnly" dt:type="number"/>
`
`
`
`
`
`<ElementType name="step" content="textOnly" dt:type="number”/>
`
`
`
`
`
`
`<ElementType name="allowedValueRange” content="eltOnly"” model="closed">
`
`
`
`<element type="minimum"/>
`
`
`
`<element type="maximum"/>
`
`
`
`
`<element type="step" minOccurs="0"/>
`
`</ElementType>
`
`
`
`
`
`
`
`<ElementType name="allowedValue” content="textOnly" />
`
`
`
`
`<ElementType name="allowedValueList" content="eltOnly” model="closed">
`
`
`
`
`
`<element type="allowedValue" minOccurs="1" maxOccurs=""" />
`
`</ElementType>
`
`
`
`
`
`
`
`
`<ElementType name="dataType” content="textOnly" dt:type="string"/>
`
`
`
`
`<ElementType name="stateVariable” content="eltOnly" model="closed">
`
`
`
`<element type="name"/>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 22 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 22 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 21 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG, 22
`
`
`
`<element type="dataType" />
`
`
`
`
`
`
`<group minOccurs="0" maxOccurs="1" order="one">
`
`
`
`<element type="allowedValueRange”/>
`
`
`
`<element type="allowedVaiueList" />
`
`</group>
`</ElementType>
`
`
`
`
`
`
`
`
`<ElementType name="deviceStateTable” content="eltOnly" mode!="closed">
`
`
`
`
`
`<element type="stateVariable" minOccurs="1" maxOccurs="*" />
`
`</ElementType>
`
`
`
`
`<!-- Action List -->
`
`
`
`
`
`
`
`
`<ElementType name="relatedStateVariable" content="textOnly"dt:type="string"/>
`
`
`
`
`<ElementType name="argument" content="eltOnly” model="closed">
`
`
`
`<element type="name"/>
`
`
`
`<element type="relatedStateVariable" />
`
`</ElementType>
`
`
`
`
`
`
`<ElementType name="action” content="eltOnly" model="closed">
`
`
`
`<element type="name"/>
`
`
`
`
`<element type="argument” minOccurs="0" maxOccurs="*" />
`
`</ElementType>
`
`
`
`
`
`
`
`
`<ElementType name="actionList" content="eltOnly” model="closed">
`
`
`
`
`
`<element type="action" minOccurs="0" maxOccurs=""" />
`
`</ElementType>
`
`
`
`
`
`<!-- Root Element -->
`
`
`
`
`
`
`<ElementType name="dcepd" content="eltOnly" model="ciosed">
`
`
`
`<element type="deviceStateTable" />
`
`
`
`<element type="actionList® />
`
`</ElementType>
`
`</Schema>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 23 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 23 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 22 of 48
`
`US 6,910,068 B2
`
`VBSCRIPT/
`JSCRIPT
`
`UPNP AP] (REHYDRATOR)
`
`604
`ON 602
`FIG. 23
`
`
`
`C APPLICATION
`SHELL FOLDER
`
`
`
`
`
`
`
`
`[eeroairfe
`SSDP/UDP GENA/HTTP/TCP
` SSDP SERVICE
`
`GENA SERVER
`
`
`
`CONTROLLED DEVICE
`
`21 4
`
`
`
`
`620
`
`
`
`626
`210|service||SERVICE
`HTTP SERVER
`
`
`
`
`
`
`
`
`GENA CLIENT API
`
`SERVICE
`
`SERVICE
`
`Netflix, Inc. et al. Exhibit 1003
`Page 24 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 24 of 91
`
`
`
`
`U.S. Patent
`
`
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`Sheet 23 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`FIG. 24
`
`
`
`
`
`
`USER CONTROL POINT
`
`
`
`RegisterNotification()
`
`
`
`
`
`
`
`SUBSCRIBE (Callback + Timeout)
`
`
`
`
`
`
`
`RESPONSE; SID + TIMEOUT
`
`
`
`NOTIFY (SID)
`
`
`200 OK
`
`NOTIFY (SID)
`
`
`
`
`
`
`
`
`200 OK UNSUBSCRIBE(SID)
`
`
`
`DeRegisterNotification()
`
`
`
`
`
`
`
`
`
`
`
`CONTROLLED DEVICE
`
`
`
`
`
`RegisterEventSource()
`
`
`SubmitUpnpProperty-
`Event()
`
`
`SubmitUpnpProperty-
`Event()
`
`Netflix, Inc. et al. Exhibit 1003
`Page 25 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 25 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 24 of 48
`
`US 6,910,068 B2
`
`FIG. 25
`
`
`
`PROCESSING|_--82fe
`UNIT
`|
`|
`OPERATING
`|
`835
`|
`|
`SYSTEM
`| ——— J
`TTT TTT
`|) APPLICATIONS |~— 86
`— eee eee al
`cro Cr eee _
`
`
`
`MODULES
`
`
`SERIAL
`
`PORT
`
`
`INTERFACE
`REMOTE
`COMPUTER
`
`
`
`
`ca MEMORY
`STORAGE NETWORK
`
`
`
`
`ADAPTER
`
`GATEWAY
`
`Netflix, Inc. et al. Exhibit 1003
`Page 26 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 26 of 91
`
`
`
`U.S. Patent
`
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 25 of 48
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`
`
`
`ADAPTER NETWORK
`
`
`
`FIG. 26
`900 EMBEDDED COMPUTING DEVICE
`
`
`
`
`
`
`
`
`
`
`
` OPERATIONAL
`PROCESSING
`UNIT MEMORY
`
`
`
`
`CIRCUITRY
`
`
` NETWORK
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`MEDIA
`
`
`
`
`922
`
`924
`
`928
`
`
`
`
`926
`
`910
`
`
`
`FIG, 27
`920
`
`Ne
`925
`
`
`
`
`DEVICE FUNCTIONS foo|
`
`
`
`
`
`
`TCP/IP STACK
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SIMPLE
`
`DISCOVERY
`
`
`
`
`DHCP
`AUTOIP
`
`
`
`EVENTING
`
`
`
`
`
`
`930
`
`DNS
`MDNS
`
`
`
`PHYSICAL MEDIA
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 27 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 27 of 91
`
`
`
`U.S. Patent
`
`Jun.21, 2005
`
`Sheet 26 of 48
`
`US 6,910,068 B2
`
`FIG. 28
`
`934
`
`«(CX
`
`oo
`
`
`
`
`
`EMBEDDED
`
`
`COMPUTING
`
`DEVICE
`
`
`
`
`
`
`(TIMEOUT
`
`ASSIGN AUTO!P ADDRESS
`
`DNS NAME MULTICAST
`
`
`
`
`
`ANNOUNCE SERVICE
`
`
`(TIMEOUT - WAIT FOR RESPONSE)
`
`DISCOVER SERVICE
`
`RESPONSE TO DISCOVER
`
`XML DEVICE DESCRIPTION
`
`900
`
`
`
`
`
`EMBEDDED
`
`
`COMPUTING
`
`DEVICE
`
`DISCOVER LISTENER
`
`940
`
`DHCP BROADCAST
`
`\ ADDRESS FROM DHCP SERVER
`
`
`
`
`
`
`
`RESPONSE TO DISCOVER
`
`ANNOUNCE SERVICE TO LISTENER
`
`DIRECTORY UPDATED BY
`LISTENER
`
`DEVICE SPECIFIC NEGOTIATION
`
`
`
`
`
`LDAP QUERY DIRECTORY
`
`
`
`CLIENT
`DEVICE
`
`Netflix, Inc. et al. Exhibit 1003
`Page 28 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 28 of 91
`
`
`
`U.S. Patent
`
`
`
`
`Jun.21, 2005
`
`
`
`Sheet 27 of 48
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`FIG. 30
`
`
`
`952
`
`
`
`950
`
`
`
`\
`
`
`
`
`
`
`
`
`955
`
`
`
`
`956
`
`
`
`
`
`
`
`
`APPLICATIONS fof
`
`
`
` 954
`
`
`
`
`SIMPLE DISCOVERY
`
`
`
`
`
`
`
`
`ADSI
`
`WINSOCK
`
`958
`
`960
`
`TCP/IP STACK
`
`NIC
`
`
`
`NDIS
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 29 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 29 of 91
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 28 of 48
`
`US 6,910,068 B2
`
`FIG. 31 1°
`‘ 1050
`
`AIC
`POWER
`
`1030
`
`1054
`
`iS}
`
`LIGHTING
`
`sass
`
`1043
`
`4042
`
`CONTROL
`
`
` 1041
`
`DVD
`
`1010
`
`USB
`
`MODEM
`
`XDSL
`
`TELEPHONE
`
`1006
`
`USB
`
`1016
`
`1017
`
`1012
`
`1011
`
`Netflix, Inc. et al. Exhibit 1003
`Page 30 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 30 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 29 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG, 32
`
`
`
`
`
`bject,
`
`uuid(<foo>),
`
`duai,
`
`helpstring("IUPNPDevice interface"),
`
`pointer_default(unique)
`
`
`[ o
`
`
`
`interface JUPNPDevice: (Dispatch
`
`
`
`
`
`] {
`
`
`
`
`
`[propget, id(DISPID_UPNPDEVICE_DESCRIPTIONDOCUMENT),
`
`
`
`
`
`
`
`
`
`
`helpstring("returns the document from which the properties of this device are
`
`
`being read")]
`
`
`
`
`HRESULT DescriptionDocumeni([restricted, hidden, out, retval]
`
`
`
`[UPNPDescriptionDocument ** ppuddDocument);
`
`
`
`
`
`
`
`
`
`
`
`purpose: returns the document from which the properties of this device are
`
`
`being read.
`
`
`
`
`
`
`
`
`parameters: ppuddDocument, A reference to the description document
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`object from which data about the device is being read. This must be freed when no
`
`
`longer needed.
`
`
`
`
`
`
`
`
`
`return values: S_OK, ppuddDocumentis a refernce to the device's
`
`
`description document.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`[propget, id(DISPID_UPNPDEVICE_ISROOTDEVICE),
`
`
`
`
`
`
`
`
`
`helpstring(“denotes whetherthe physical location information of this device can
`
`
`be set")}
`
`
`
`
`
`
`HRESULT IsRootDevice([out, retval] VARIANT_BOOL* pvarb);
`
`
`
`
`
`
`
`
`
`
`
`parameters: pvarb, the address of a VARIANT_BOOLthatwill receive the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`value of VARIANT_TRUEif the current device is the topmost device in the device
`
`
`
`
`
`
`
`
`tree, and will receive the value of VARIANT_FALSE otherwise.
`
`
`
`
`
`
`
`
`
`
`return values: S_OK, varb is set to the appropriate value
`
`
`
`
`
`
`
`
`
`
`
`note: if a device is a root device, calls RootDevice() or ParentDevice() will
`
`
`return NULL
`
`
`
`
`
`
`
`
`
`fpropget, id(DISPID_UPNPDEVICE_ROOT),
`
`
`
`
`
`
`
`
`helpstring("returns the top device in the device tree")]
`
`
`
`
`
`HRESULT RootDevica(fout, retval] IUPNPDevice ** ppudDeviceRoot);
`
`
`
`
`
`
`
`
`
`purpose:returns the top device in the device tree
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 31 of 91
`
`Netflix, Inc. et al. Exhibit 1003
`
`Page 31 of 91
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 30 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`FIG. 33
`
`
`
`
`
`
`
`
`
`
`
`
`
`parameters: ppudDeviceRoot, On return, this refers to the "root" device of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the current device tree. The root device is the topmost parent of the current device.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`lf the current device is the root device this method will set *ppudDeviceRoot to null,
`
`
`
`and return S_FALSE.
`
`
`
`
`
`
`
`
`
`
`return values: S_OK, *ppudDeviceRoot contains a reference to the root
`
`
`
`
`
`
`
`
`
`
`
`
`device. S_FALSE, the current device is the root device. *ppudDeviceRootis null.
`
`
`{propget, id(DISPID_UPNPDEVICE_PARENT),
`
`
`
`
`
`
`
`helpstring(“returns the parent of the current device")|
`
`
`
`
`
`
`HRESULT ParentDevice({out, retval] IUPNPDevice ** ppudDeviceParent);
`
`
`
`
`
`
`
`
`
`
`
`
`parameters: ppudDeviceParent, On return, if the device has a parent, this is
`
`
`
`
`
`
`
`
`
`
`
`
`
`the address of a IUPNPDevice object which can describe the parent. This must be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`released when no longer needed.
`If the device has no parent(it is a "root" device),
`
`
`
`
`
`
`
`
`than this value will be set to null.
`
`
`
`
`
`
`
`
`
`return values: S_OK, ppudDeviceParent contains a reference to the device's
`
`
`
`
`
`
`
`
`
`
`
`
`
`parent. S_FALSE, the current device is the root device, which has no parent.
`
`
`
`*ppudDeviceRootis null.
`
`
`
`[propget, id(DISPID_UPNPDEVICE_CHILDREN),
`
`
`
`
`
`
`
`
`
`helpstring("returns a collection of the children of the current device")|
`
`
`
`
`
`
`
`HRESULT Children([out, retval] IUPNPDevices ** ppudChildren);
`
`
`
`
`
`
`
`
`
`parameters: ppudChildren, On retum, this is the address of a newly-created
`
`
`
`
`
`
`
`
`
`
`
`IUPNPDevices collection that can enumerate this device's children. This must be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`released when no longer needed.
`If the device has no children, this method will
`
`
`
`
`
`
`
`
`
`return a collection object with a length of zero.
`
`
`
`
`
`
`
`
`
`
`
`return values: S_OK, ppudChildren containsa list of the device's children.
`
`
`[propget, id(DISPID_LUPNPDEVICE_UDN),
`
`
`
`
`
`helpstring("returns the UDN of the device")]
`
`
`
`
`HRESULT UniqueDeviceName((out, retval] BSTR * pbstrUDN);
`
`
`
`
`
`
`
`
`
`parameters: pbstrUDN, On retum, this contains the address of a newly-
`
`
`
`
`
`
`
`
`
`
`
`
`allocated string which contains the device's Unique Device Name (UDN). The UDN
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is globally unique across all devices - no two devices will ever have the same UDN.
`
`
`
`
`
`
`
`
`
`This value must be freed when no longer needed.
`
`
`
`
`
`
`
`
`
`
`
`return values: S_OK
`pbstrUDNcontains the UDNofthe device
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`Page 32