`
`United States Patent
`Zintel et al.
`
`(10) Patent No.:
`
`(45) Date of Patent:
`
`US 6,910,068 B2
`Jun. 21, 2005
`
`US006910068B2
`
`XML-BASED TEMPLATE IANGUAGE FOR
`DEVICES AND SERVICES
`
`(58) Field of Search
`
`709/218, 220,
`709/225, 229, 249
`
`(54)
`
`(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.
`Weian, Kirkland, WA (US); Donald
`R. Ryan, Redmond, WA (US); Paul J.
`Leach, Seattle, WA (US); Ting Cal,
`Redmond, WA (US); Holly N. Knight,
`Woodinville, WA (US); Peter S. Ford,
`Carnation, WA (US)
`
`(73)
`
`Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,394,556 A
`5,491,800 A
`
`2/1995 Oprescu ................... .. 395/8(1)
`2/1996 Goldsmith etal.
`395/200.12
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`W0
`
`WO 99/35856
`
`7/1999
`
`OTHER PUBLICATIONS
`
`A. Kung, B. Raither, S. McConnell, Electronic Commerce
`Services Expand Home Automation Capabilities, TRIA-
`LOG, EMMSEC ’99 Conference, Jun. 1999, pp. 1-7.
`
`(Continued)
`
`(“)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 1S4(b) by 841 days.
`
`Primary Examiner—JeErey Gaflin
`Assistant Examiner—Mohammad 0. Farooq
`(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
`
`(21)
`
`Appl. No.: 09/811,362
`
`(57)
`
`ABSTRACT
`
`(22)
`
`(65)
`
`Filed:
`
`Mar. 16, 2001
`
`Prior Publication Data
`
`US 2002/0029256 A1 Mar. 7, 2002
`
`(Under 37 CFR 1.47)
`
`Related U.S. Application Data
`
`(63)
`
`(60)
`
`Continuation-in-part of application No. 09/496,318, filed on
`Feb. 1, 2000.
`Provisional application No. 60/190,943, filed on Mar. 21,
`2000, provisional application No. 60/160,235, filed on Oct.
`18, 1999, and provisional application No. 60/139,137, filed
`on Jun. 11, 1999.
`
`(51)
`(52)
`
`Int. CL.’ ............................................ .. G06F 15/177
`U.S. Cl.
`709/220; 709/218; 709/225;
`709/229; 709/249
`
`Auniversal plug and play (UPnP) device makes itselfknown
`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-
`tion like the model name and number, serial number, manu-
`facturer name, URLs to vendor-specific Web sites, etc. The
`description also includes a list of any embedded devices or
`services, as well as URLs for control, eventing, and presen-
`tation. The description is written by a vendor, and is usually
`based on a device template produced by a UPnP forum
`working committee. The template is derived from a template
`language that is used to define elements to describe the
`device and any services supported by the device. The
`template language is written using an XML-based syntax
`that organizes and structures the elements.
`
`38 Claims, 48 Drawing Sheets
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`
`
`US 6,910,068 B2
`Page 2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`“Time for Smart Talk is Over, Sunbeam Trumps Small
`
`
`
`
`
`
`
`
`
`Appliance Industry With Smart Appliance Debut,” Sunbeam
`
`
`
`
`
`
`
`Corporation, pp. 1-4 (2000).
`
`
`
`
`“Lonworks Core Technology,” Echelon Corporation, pp.
`
`
`
`
`
`1-2 (2000).
`
`
`“Underlying Protocol of Echelon’s Lonworks® Network
`
`
`
`
`
`Adopted as New ANSI Standard, Free Reference Implemen-
`
`
`
`
`
`
`
`tation Available to Developers,” Echelon Corporation, pp.
`
`
`
`
`
`
`
`1-2 (2000).
`
`
`Handley et al., “SIP: Session Initiation Protocol,” The Inter-
`
`
`
`
`
`
`
`
`net Society, pp. 1-130 (Aug. 6. 2000).
`
`
`
`
`
`
`
`Rosenberg et al., “SIP Extensions for Instant Messaging,”
`
`
`
`
`
`
`
`
`Internet Engineering Task Force, pp. 1-30 (Jun. 15, 2000).
`
`
`
`
`
`
`
`
`
`Rosenberg et al., “SIP Extensions for Presence,” Internet
`
`
`
`
`
`
`
`
`Engineering Task Force, pp. 1-77 (Jun. 15, 2000).
`
`
`
`
`
`
`
`
`Tsang et al., “Requirements for Networked Appliances:
`
`
`
`
`
`
`
`Wide-Area Access, Control, and Interworking,” Internet
`
`
`
`
`
`
`Engineering Task Force, pp. 1-9 (Sep. 2000).
`
`
`
`
`
`
`
`Tsang et al., “SIP Extensions for Communicating with
`
`
`
`
`
`
`
`
`Networked Appliances,” Internet Engineering Task Force,
`
`
`
`
`
`
`pp. 1-9 (Nov. 2000).
`
`
`
`
`Moyer et 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,” SIP for
`
`
`
`
`
`
`
`
`Toaster, Telcordia Technologies (2000).
`
`
`
`
`“Networked Appliances,” AR Greenhouse, Telcordia Tech-
`
`
`
`
`
`nologies, pp. 1-2 (Dec. 15, 2000).
`
`
`
`
`
`
`Moyer et 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).
`
`
`
`
`Freeman et al., “JavaSpacesTMPrinciples, Patterns, and Prac-
`
`
`
`
`
`
`tice,” Addison-Wesley Longman, Inc., Reading, Massachu-
`
`
`
`
`
`setts (1999, Sun Microsystems, Inc.).
`
`
`
`
`
`Arnold et al., “The JiniTMSpecification,” Addison-Wesley
`
`
`
`
`
`Longman, Inc., Reading, Massachusetts (1999, Sun Micro-
`
`
`
`
`
`
`systems, Inc.).
`
`
`Edwards, “Core JiniTM, Second Edition,” Prentice Hall PTR,
`
`
`
`
`
`
`
`Upper Saddle River, New Jersey (2001).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`U.S. PATENT DOCUMENTS
`
`
`
`........... .. 395/285
`9/1996 Oprescu et al.
`5,559,967 A
`
`
`
`
`
`
`
`
`.... .. 395/183.22
`5/1997 Reynolds et al.
`5,627,964 A
`
`
`
`
`
`
`
`
`4/1998 Jain etal. ............. .. 382/154
`5,745,126 A *
`
`
`
`
`
`
`
`5/1998 Lipe et al.
`5,748,980 A
`395/828
`
`
`
`
`
`
`
`6/1998 Staats . . . . . . . . . . . . .
`. . . .. 395/287
`5,764,930 A
`
`
`
`
`
`7/1998 Lichtman et al.
`...... .. 395/200.5
`5,787,246 A
`
`
`
`
`
`
`
`7/1998 Haroun et al.
`....... .. 395/200.83
`5,787,259 A
`
`
`
`
`
`
`
`
`
`8/1998 Lichtman et al.
`.... .. 395/200.56
`5,793,979 A
`
`
`
`
`
`
`
`
`9/1998 Staats et al.
`.............. .. 395/830
`5,809,331 A
`
`
`
`
`
`
`
`3/1999 Christensen et al.
`395/200.33
`5,881,230 A
`
`
`
`
`
`
`
`5/1999 Semenzato ........... .. 395/200.47
`5,903,728 A
`
`
`
`
`
`
`
`
`5/1999 Reneris
`707/100
`5,903,894 A
`
`
`
`
`
`
`
`
`8/1999 Leung et al.
`............. .. 710/126
`5,938,752 A
`
`
`
`
`
`
`
`7/2000 Davidson et 211.
`6,083,276 A
`
`
`
`
`
`8/2000 Ford et al.
`.................. .. 707/10
`6,101,499 A
`
`
`
`
`
`
`
`12/2000 Hemphill et 211.
`6,167,448 A
`
`
`
`
`
`10/2002 Humpleman et 211.
`6,466,971 B1
`
`
`
`
`
`.............. .. 709/223
`6,477,566 B1 * 11/2002 Davis et al.
`
`
`
`
`
`
`
`6,507,856 B1 *
`1/2003 Chen et al.
`............... .. 715/513
`
`
`
`
`
`
`
`6,546,419 B1
`4/2003 Humpleman et 211.
`
`
`
`
`
`6,553,402 B1 *
`4/2003 Makarios et al.
`......... .. 709/201
`
`
`
`
`
`
`
`
`6,560,633 B1 *
`5/2003 Roberts et al.
`........... .. 709/202
`
`
`
`
`
`
`
`
`OTHER PUBLICATIONS
`
`
`
`
`
`
`
`
`Web Interface Definition Language (WIDL), NOTE-
`
`
`
`
`
`widl-970922, WebMethods, Inc. 1997, pp. 1-15.
`
`
`
`
`
`
`“Home Plug & PlayTM: CAL—based Interoperability for
`
`
`
`
`
`
`
`Home Systems,” HomePNPTMSpecification. Version 1.0, pp.
`
`
`
`
`
`
`1-111, (Apr. 9, 1998).
`
`
`
`
`White Paper, “HAVi, the A/V digital network revolution,”
`
`
`
`
`
`
`
`HAW Organization, pp. 1-7 (1999).
`
`
`
`
`
`“Specification of the Home Audio/Video Interoperability
`
`
`
`
`
`(HAVi) Architecture,” The HAW 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 (prior to 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
`
`
`
`
`
`
`
`
`Home a 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,” Sunbeam Corporation, pp. 1-2 (2000).
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`Jun 21 2005
`
`Sheet 1 of 48
`
`US 6,910,068 B2
`
`100 \
`
`MULTIPLE
`FUNCTION oevnce
`
`,—/102
`
`103
`
`MULTIPLE
`FUNCTION DEVICE
`
`USER
`CONTROL
`
`DEVICE CONTROL
`
`PROTOCOLS
`
`CONTROLLED
`DEVICE
`
`DEVICE CONTROL
`
`PROTOCOLS
`
`USER
`CONTROL
`
`BRIDGE ‘ BRIDGED
`
`DEVICE
`
`CONTROLLED
`DEVICE
`
`BRIDGED DEVICES
`
`CONTROLLED
`DEVICE
`
`BRIDGED
`DEVICE
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 2 of 48
`
`Us 6,910,068 B2
`
`220
`
`ROOT DEVICE
`
`210
`
`211
`
`SERVICE
`
`SERVICE
`
`21
`
`2
`
`2 1
`
`3
`
`SERVICE
`
`SERVICE
`
`21
`
`4
`
`21
`
`5
`
`seavnce
`
`SERVICE
`
`DESCR1P-
`TION
`DOCUMENT
`
`223
`
`PRESENTATION
`SERVER
`
`CONTROL
`SERVER
`
`SOURCE
`
`SERVICE
`STATE
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 3 of48
`
`US 6,910,068 B2
`
`CLOCK
`
`TVNCR
`
`DISCOVERY
`SERVER
`
`DESCRIPTION
`SERVER
`
`DESCRIPTION
`
`SERVER
`
`DESCRIP-
`TION
`DOCUMENT
`
`DESCRIP-
`TION
`DOCUMENT
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 4 of 48
`
`US 6,910,068 B2
`
`USER
`CONTROL
`POINT
`
`EVENT
`SUBSCRIBE
`
`USER
`CONTROL
`POINT
`
`CONTROLLED DEVICE
`
`232
`
`EVENT
`3U:3§3$'P-
`SERVER
`
`CONTROL
`SERVER
`
`EVENT
`SOURCE
`
`COMMAND
`
`FRONT
`PANEL
`CONTROL
`
`SERVICE
`STATE
`TABLE
`
`320
`
`INFRARED
`REMOTE
`
`COMMAND
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 5 of 48
`
`US 6,910,068 B2
`
`35o
`
`USAGE
`
`DESRIPTION
`
`DISCOVERY
`
`NAMING
`
`ADDRESSING
`
`35°
`
`358
`
`355
`
`354
`
`352
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 6 of 48
`
`Us 6,910,068 B2
`
`ROOT DEVICE
`
`220
`
`21°
`
`232
`
`PRESENT-
`ATION
`SERVER
`
`SERVICE
`
`/ CONTROL
`SERVER
`
`/
`
`PRESEN1-_
`
`230
`
`SERVICE
`
`°'§g§\‘,’§§Y
`
`DESCRIPTION
`SERVER
`
`205
`
`\
`
`EVENT
`SUB-
`SCRIP-
`TION
`SE RVER
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 7 of 48
`
`Us 6,910,068 B2
`
`CONTROLLED
`DEVICE
`
`USER
`CONTROL
`POINT
`
`COMMANDS
`
`SERVICE
`CONTROL
`
`SERVICE
`CONTROL
`PROTOCOL
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 3 of 43
`
`US 6,910,068 B2
`
`APPUCATIONS
`
`USER CONTROL POINT
`
`OBJECT INTEGRATION
`INTERFACES
`
`[CLOCK
`
`REHYDRATOR
`
`CONTRACT
`
`PACKETS
`0
`' REQUEST!
`RESPONSE
`PATTERNS
`PROTOCOLS
`
`NETWORK
`DATA
`PACKETS
`
`CONTROLLED DEVICE
`
`(E.G.. CLOCK)
`
`DESCRIP-
`
`CONTROL
`SERVER
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`Jun 21 2005
`
`Sheet 9 of 48
`
`US 6,910,068 32
`
`DEVICE
`
`FINDER
`
`CreateServiceObject()
`
`REHYDRATOR
`
`QueryStateVar‘rable()
`
`lnvokeAction()
`
`SERVICE OBJECT
`
`QueryStateVariabIe()
`
`lnvokeAction()
`
`'
`
`|UPNP-
`SERWCE
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 10 of 48
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`
`
`USER CONTROL POINT
`
`
`
`
`
`
`
`
`
`
`CONTROLLED DEVICE
`
`
`
`
`
`
`
`
`DISCOVERY
`SERVER
`
`
`
`
`
`
`
`
`DISCOVERY
`CLIENT
`
`
`
`
`
`
`DESCRIP-
`
`TION CLIENT
`
`
`
`
`VISUAL
`
`NAVIGATION
`
`
`
`BROWSER
`USER
`INTER-
`FACE
`
`
`BROWSER
`
`CONTROL
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`APPLICA-
`
`TION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DESCRIP H DET3[g§”°-
`
`
`
`
`TION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PRESENT-
`
`ATION
`
`SERVER
`
`
`
`
`
`
`WEB USER
`
`INTERFACE
`
`
`
`
`
`
`
`
`
`
`CONTROL
`SERVER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`DETS'8I:IP-
`
`
`DOCUMENT
`
`
`
`
`SERVER
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 11 of 48
`
`Us 6,910,068 B2
`
`USER CONTROL POINT
`
`CONTROLLED DEVICE
`
`DISCOVERY
`CLIENT
`
`DESCRlP-
`TION CLIENT
`
`SUBSCRIP
`—TION
`CLIENT
`
`DISCOVERY
`
`°E$lg§'P'
`SERVER
`
`EVENT
`SUBSCRIP
`-TION
`SERVER
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 12 of 48
`
`US 6,910,068 B2
`
`FIG. 13
`
`COMBINED BRIDGE AND
`USER CONTROL POINT
`
`230
`
`DESCR|p_
`
`CONTROL
`
`APPLICA-
`
`BRIDGE
`
`TION
`
`COVERY
`
`senvea
`
`DESCRIP-
`
`TION
`
`seavea
`
`s%VUE,§gE
`
`°s(l’5",£,R,%
`
`REHYDRATOR
`
`STATE CHANGE
`
`_3P'_
`
`PROVIDER
`
`USER
`CONTROL
`POINT
`
`USER
`CONTROL
`POINT
`
`BRIDGED
`DEVICE
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 13 of 48
`
`US 6,910,068 B2
`
`FIG. 14
`
`USER CONTROL POINT
`
`CONTROLLED DEVICE
`
`DISCOVERY
`CLIENT
`
`SSDP DISCOVERY REQUEST
`
`DISCOVERY RESPONSE (URL)
`
`DISCOVERY
`SERVER
`
`I
`(PARSE
`GET(DESCRIPTION URL)
`DE$CR'PT|0N- ISSUE
`RESPONSE(UPnP
`REQUESTS FOR
`’*°°”'°"’*L —
`INFORMATION)
`DEs°R'PT'°N
`GET ICON
`
`RESPONSE
`
`v
`DEVICE
`GET NAME
`DESCRIPTION
`SERWCE
`I
`<co~neuRe
`RE“*°““°“- SDEVICE ICON TO
`USER INTERFACE)
`I
`VISUAL
`NAVIGATION
`
`(USER SELECTS DEVIC =
`ICON)
`
`I
`
`GET(PRESENTATlON URL)
`
`3R°wsER
`
`(EMBEDD D SCRIPT IN
`WEB PAGE DISPLAYS
`DEVICE UI; SCRIPT
`CALLS REHYDRATOR
`TO INTERACT WITH
`
`DEVICE)
`I
`
`REHYDRATOR {
`
`°Eg.‘:f.':",F;ETF',°"
`
`PRESENTATION
`(wee) SERVER
`
`GET/PUT(CONTROL URL)
`
`CONTROLSERVER
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 14 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`FIG. 15
`
`
`
`root
`
`
`
`
`
`
`
`specVersionMajor
`specVersionMinor
`
`URLBase
`manufacturer
`
`modelName
`
`
`manufactu rerURL
`
`model Number
`
`
`mode|Description
`
`
`mode|URL
`
`UPC
`
`seriaiNumber
`
`device
`
`UDN
`friendiyName
`
`
`deviceType
`
`presentationURL
`
`
`iconList
`icon
`
`
`
`
`
`
`
`
`
`
`
`size
`
`
`color
`
`
`
`depth
`
`imageType
`
`imageURL
`
`
`
`
`
`
`
`
`
`icon
`
`service
`
`icon
`
`
`serviceType
`
`
`controlURL
`eventSubURL
`
`SCPD
`service
`
`
`
`Netflix, Inc. et al.
`
`Exhibit 1003
`
`
`
`service
`
`service
`
`
`
`device
`
`service
`
`service
`
`device
`
`
`
`device
`
`device
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 15 of 48
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 16
`
`<device>
`
`
`
`
`
`<icon List>
`
`<icon>
`
`<size>1 6</size>
`
`
`<color>0</coIor>
`
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http://device.Iocal/iconpath/icon16bw.png"</image>
`</icon>
`
`<icon>
`
`<size>32</size>
`
`<color>0</coIor>
`
`
`<depth>8</depth>
`
`<imageType>PNG<fimageType>
`<image>"http://device.1oca1/iconpath/icon32bw.png"</image>
`<1 icon>
`
`<icon>
`
`<size>48</size>
`
`<coIor>0</coIor>
`
`
`<depth>8<ldepth>
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon48bw.png"</image>
`</icon>
`
`<icon>
`
`<size>‘I 6</size>
`
`<co|or>1</coIor>
`
`
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http://device.focal/iconpath/icon16c.png"</image>
`</icon><device>
`
`<icon>
`
`<size>32</size>
`
`<color>O<lco1or>
`
`
`<depth >8 </depth>
`
`<imageType>PNG</imageType>
`<image>"http://device.Iocalliconpath/icon32c.png"</image>
`</icon>
`
`<icon>
`
`<size>48</size>
`
`<color>0</coIor>
`
`
`<depth>8</depth>
`
`
`
`<imageType>PNG</imageType>
`<image>"http://device.local/iconpath/icon48c.png"</image>
`</icon>
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`</iconList>
`
`
`
`
`‘ </device>
`
`
`
`Netflix, Inc. et al.
`
`Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 16 of 48
`
`
`
`
`
`
`
`US 6,910,063 32
`
`
`
`
`FIG. 17
`
`
`
`
`
`<?xm| version="1.0"?>
`
`
`
`<scpd xmlns="x-schemazscpdl-schema.xml">
`
`
`<sen/ice StateTable>
`
`
`<stateVariable>
`<name>currentChannel</name>
`
`
`
`
`
`<dataType>number</dataType>
`
`<al|owedValueRange>
`<minimum>D</minimum>
`
`
`<maximum>55</maximum>
`
`
`<step>1</step>
`</a||owedValueRange>
`
`
`</stateVariabIe>
`
`</serviceStateTab|e>
`
`
`
`
`
`
`
`
`
`
`<actionList>
`
`<action>
`<name>ChannelUp</name>
`
`</action>
`
`
`
`<action>
`
`
`<name>ChanneIDown</name>
`
`
`</action>
`
`
`
`<action>
`
`
`
`
`
`
`<name>SetChannel</name>
`
`<argument>
`<name>newChannel</name>
`
`
`<reIatedStateVariable>
`
`</relatedStateVariable>
`
`
`currentchannel
`
`</argument>
`
`</action>
`
`</actionList>
`
`
`
`
`</scpd>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`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>http://www.microsoftcom/protocols/ext/XOAP</MAN>
`</M-POST>
`
`
`
`
`<HEADER name="Content-Type" vaIue="text/xml" />
`
`
`
`
`
`
`
`
`<!-- Need to put in extension headers here —->
`</HTTP>
`
`
`
`
`
`
`</protoco|>
`
`
`
`
`<RequestResponse name="queryStateVariable“>
`
`
`<protocoI is="protoco|Def">
`
`
`<in is="queryStateVariable">
`
`
`<out is="querystatevariab!eResponse">
`
`
`<error is="queryStateVariableResponse">
`
`</RequestResponse>
`
`
`
`
`
`<RequestResponse name="invokeAction">
`
`
`<protocoI is="protoco|Def">
`<in is="SerializedStream">
`
`
`
`
`<out is="invokeActionResponse">
`
`<error is="invokeAc‘tionResponse“>
`
`</RequestResponse>
`
`
`
`
`
`
`
`<Schema name="upnp_scpd|"
`xmIns="urn:schemas-microsofl-comzxml-data"
`
`
`
`xmlns:dt="urnzschemas-microsoft-com:datatypes">
`
`
`
`<!-- Common -~>
`
`
`
`
`
`
`
`<ElementType name="_return" content="textOnIy" dt:type="string" />
`
`
`
`
`
`<E1ementType name="_fau|t" content="textOn!y" dt:type="string" />
`
`
`
`
`
`
`
`<!- Query State Variable Call -->
`
`
`
`
`
`
`
`<EIementType name="variableName" content="textOnly" dt:type="str‘1ng" />
`
`
`
`
`
`
`<ElementType name="queryStateVariable" content=“eltOnly" model="closed">
`
`
`
`<eIement type="variableName“ />
`
`</ElementType>
`
`
`
`
`
`
`
`<!-- Query State Variable Response -—>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 18 of 48
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`
`
`
`
`
`<ElementType name="querystatevariabieResponse“ content="eltOnly"
`mode|="cIosed">
`
`
`
`
`<group order="one">
`
`<eIement type="_return“>
`
`
`<element type="_fauIt">
`</grou p>
`</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" />
`
`</E|ementType>
`
`
`
`
`<E|ementType name="headers" content="eJtOn|y" mode[="c|0sed"
`
`
`
`
`<attribute type="id" required="yes" />
`
`
`
`<eIement type="sequenceNumber" />
`
`
`</E|ementType>
`
`
`
`
`
`
`
`<ElementType name="actionName" content="textOn|y" dt:type="string" />
`
`
`
`
`
`<ElementType name="actionArg" content="textOnIy" dt:type="string" />
`
`
`
`
`
`
`<ElementType name="invokeAction" content="eltOnIy" mode|="closed">
`
`
`
`
`<attribute type=“id" required="yes" />
`
`
`
`
`
`<element type="actionName">
`
`
`
`<element type="actionArg" minOccurs="O" maxOccurs="*">
`
`</E|ementType>
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 19 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 20
`
`
`
`
`<ElementType name="SeriaIizedStream" content="eltOnly" modeI="closed">
`
`
`
`
`<a’ttribute ‘rype="main" required="yes" />
`
`
`
`
`<attribute type="headers" required="yes" />
`
`
`
`
`
`<element type="headers">
`
`<e!ement type="invokeAction">
`
`
`
`</ElementType>
`
`
`
`
`
`
`<!- Invoke Action Response —->
`
`
`
`
`
`
`<E|ementType name="invokeActionResponse" content="eItOnly“ model="closed">
`
`
`<group order="one">
`
`<e|ement type="_retum">
`
`
`<eIement type="_fault">
`
`</group>
`</E|ementType>
`</Schema>
`
`</contract>
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`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:xm|—data"
`
`
`xm!ns:dt="urnzschemas-microsoft-com:datatypes">
`
`
`
`<!-- Common Etements and Attributes -->
`
`
`
`
`
`
`
`
`
`
`
`
`<ElementType name="name" content="textOnIy" dt:type="string" />
`
`<!-- Service State Table -->
`
`
`
`
`
`
`
`
`
`
`<E|ementType name="minimum" content="textOnly" dt:type="number" />
`
`
`
`
`<ElementType name="maximum" content="textOn|y" dt:type="numbe1" />
`
`
`
`
`
`<ElementType name="step" content="textOn|y" dt:type="number" />
`
`
`
`
`
`
`<E|ementType name="a|lowedValueRange" content="eltOn!y" mode|="closed">
`
`
`
`<element type="minimum" />
`
`
`
`<eIement type="maximum" />
`
`
`
`
`<element type="step" minOccurs="O" />
`
`</ElementType>
`
`
`
`
`
`
`
`<ElementType name="aHowedValue" content="textOn|y" />
`
`
`
`
`<E|ementType name="al|owedValueList" c0ntent="e|tOnly" m0del="c|osed">
`
`
`
`
`
`<element type="aHowedValue" minOccurs="1 " maxOccurs="*" />
`
`</ElementType>
`
`
`
`
`
`
`
`
`<ErementType name="dataType" content="textOn|y" dt:type="string" />
`
`
`
`
`<E|ementType name="stateVariable" content="eltOnly" model="closed">
`
`
`
`<e|ement type="name" />
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 21 0f 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 22
`
`
`
`<element type="dataType" />
`
`
`
`
`
`
`<group minOccurs="0" maxOccurs="1" order="one">
`
`
`
`<eIemeni type="a1I0wedValueRange" />
`
`
`
`<element type:"allowedVa{ueList" />
`
`</grou p>
`</E|ementType>
`
`
`
`
`
`
`
`
`<EIementType name="deviceStateTab|e" content="e|tOnly" mode!="cIosed">
`
`
`
`
`
`<element type="stateVariabIe" minOccurs="1" maxoccu rs="*" />
`
`</E|ementType>
`
`
`
`<!-- Action List ——>
`
`
`
`
`
`
`
`
`
`<EIementType name="relatedstatevariable" content="textOnly" dt:type="string" />
`
`
`
`
`<ElementType name=“argument" content="eltOnly" mode|="c|osed">
`
`
`
`<element type="name" />
`
`
`
`<eIement type=“relatedStateVariable" />
`
`</ElementType>
`
`
`
`
`
`
`<ElementType name="action" content="e|tOn|y" mode|="c|osed">
`
`
`
`<element type="name" />
`
`
`
`
`<e|ement type="argument" minOccurs="O" maxOccurs="*" />
`
`</ElementType>
`
`
`
`
`
`
`
`
`<E|ementType name="actionList" content="eItOn|y" model="ciosed“>
`
`
`
`
`
`<e|ement type="action" minOccurs="0" maxOccurs="*" />
`
`</ElementType>
`
`
`
`<!-- Root Element -->
`
`
`
`
`
`
`
`
`<EIementType name="dcpd" content="eltOnly" model="closed">
`
`
`
`<e|ement type=“deviceStateTable" />
`
`
`
`<element type="actionList" />
`
`</E|ementType>
`</Schema>
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`Jun. 21 2005
`
`Sheet 22 of 48
`
`US 6,910,068 B2
`
`FIG. 23
`
`°°°\
`
`602
`
`604
`
`SHELL FOLDER
`
`VBSCRIPTI
`JSCRIPT
`
`C APPLICATION
`
`UPNP API (RE HYDRATOR)
`
`DEVICE FINDER
`
`DESCRIPTION SERVICES
`
`DEVICE OBJECT
`
`SERVICE OBJECT
`
`i
`
`SSDP C API
`GENA SERVER API
`
`610
`
`SS DPIUDP
`
`630
`
`SSDP SERVICE
`GENA SERVER
`
`SSDP/UDP
`
`GENA/HTTP/TCP
`
`CONTROLLED DEVICE
`
`HTTP SERVER
`
`210
`
`SERVICE
`
`SERVICE
`
`GENA CLIENT API
`
`SERVICE
`
`SERVICE
`
`21 1
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`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
`
`
`
`
`
`CONTROLLED DEVICE
`
`
`
`
`
`
`
`RegisterEventSource()
`
`
`
`
`
`NOTIFY (SID)
`
`200 OK
`
`
`
`
`NOTIFY (SID)
`
`
`
`200 OK
`
`
`
`
`UNSUBSCRIBE (SID)
`
`
`
`
`
`
`
`
`
`SubmitUpnpProperty-
`
`Event()
`
`SubmitUpnpProperty—
`
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21,2005
`
`Sheet 24 of 48
`
`US 6,910,068 B2
`
`PROCESSING
`
`UNIT
`
`OPERATING
`SYSTEM
`
`INTERFACE
`
`.
`
`REMOTE
`COMPUTER
`
`MEMORY
`STORAGE
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 25 of 48
`
`
`
`
`
`
`
`
`US 6,910,063 B2
`
`
`
`
`
`
`
`EMBEDDED COMPUTING DEVICE
`
`
`
`
`
`MEMORY
`
`
`
`
`
`PROCESSING
`UNIT
`
`
`
`
`
`
`OPERATIONAL
`CIRCUITRY
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`NETWORK
`
`ADAPTER
`
`
`
`
`NETWORK
`MEDIA
`
`
`
`
`
`
`
`
`
`
`
`
`DNS
`MDNS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DISSIIIIIIJIT/LIERY
`
`
`
`
`
`
`DHCP
`AUTO”:
`
`
`
`
`
`924
`
`
`
`
`
`910
`
`
`DEVICE FUNCTIONS _
`
`
`
`
`
`
`
`
`EVENTING
`
`
`
`
`
`
`930
`
`TCF’/IF’ STACK
`
`
`
`
`PHYSICAL MEDIA
`
`
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`Jun 21 2005
`
`Sheet 26 of 48
`
`US 6,910,068 32
`
`FIG. 28
`
`
`
`T900 \
`
`934
`
`(TIMEOUT)
`
`EMBEDDED
`COMPUTING
`DE‘/[CE
`
`ASSIGN AUTOIP ADDRESS
`
`DNS NAME MU LTICAST
`
`ANNOUNCE SERVICE
`
`(TIMEOUT - WAIT FOR RESPONSE)
`
`DISCOVER SERVICE
`
`RESPONSE TO DISCOVER
`
`XML DEVICE DESCRIPTION
`
`940
`
`DHCP BROADCAST
`
`EMBEDDED
`COMPUTING
`DEWCE
`
`ADDRESS FROM DHCP SERVER
`
`DNS UNICAST TO DNS SERVER
`
`DISCOVER LISTENER
`RESPONSE TO DISCOVER
`
`ANNOUNCE SERVICE TO LISTENER
`
`DIRECTORY UPDATED BY
`LISTEN ER
`
`CLIENT
`°E"'°E
`
`DEVICE SPECIFIC NEGOTIATION
`LDAP QUERY DIRECTORY
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U S Patent
`
`
`
`
`Jun 21 2005
`
`
`
`Sheet 27 of 48
`
`
`
`
`
`
`
`US 6,910,063 32
`
`
`
`
`
`
`
`954
`
`958
`
`960
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SIMPLE DISCOVERY
`
`
`
`
`XML
`
`
`
`
`
`
`
`APPLICATIONS -
`
`
`
`
`ADSI
`
`WINSOCK
`
`NDIS
`
`
`
`TCP/JP STACK
`
`NIC
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`U.S. Patent
`
`Jun. 21, 2005
`
`Sheet 28 of 48
`
`US 6,910,068 B2
`
`FIG. 31
`
`NC
`POWER
`
`‘°{j
`
`1030
`
`1050
`
`105-
`
`E
`
`LGHTN
`‘
`' G
`
`TELEPHONE
`
`104,, -GAME
`
`104
`
`4042
`
`AUWO
`
`REMOTE
`CONTROL
`
`use
`
`10
`
`XDSL
`
`1012
`
`1011
`
`TELEPHONE
`
`AUDIO
`
`1014
`
`1010
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`Sheet 29 of 48
`
`
`
`
`
`
`
`
`US 6,910,068 B2
`
`
`
`FIG. 32
`
`
`
`
`
`bject,
`
`uuid(<foo>),
`dual,
`
`
`helpstring("lUPNPDevice interface"),
`
`pointer_default(unique)
`
`
`[ o
`
`
`
`interface lUPNPDevice : lDispatch
`
`
`
`
`
`l {
`
`
`
`
`
`[propget. id(D|SP|D_UPNPDEVlCE_DESCRlPTIONDOCUMENT),
`
`
`
`
`
`
`
`
`
`
`helpstring("returns the document from which the properties of this device are
`
`
`being read")]
`
`
`
`
`HRESULT DescriptionDocument([restricted, hidden, out, retval]
`
`
`
`lUPNPDescriptionDocument ** 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, ppuddDocument is a refernce to the device's
`description document.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`[propget, id(D|SPlD_UPNPDEVlCE_lSROOTDEVlCE),
`
`
`
`
`
`
`
`
`
`helpstring("denotes whether the physical location infonnation of this device can
`
`
`be set")]
`
`
`
`
`
`
`HRESULT lsRo0tDevice([out, retval] VARlANT_BOOL * pvarb);
`
`
`
`
`
`
`
`
`
`
`
`parameters: pvarb, the address of a VARlANT_BOOL that will receive the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`value of VARlANT_TRUE if the current device is the topmost device in the device
`
`
`
`
`
`
`
`
`tree, and will receive the value of VARlANT_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
`
`
`
`
`
`
`
`
`
`
`
`[propget, id(DlSP|D_UPNPDEVlCE_ROOT),
`
`
`
`
`
`
`
`
`helpstring("returns the top device in the device tree“)]
`
`
`
`
`
`HRESULT RootDevice([out, retval] |UPNPDevice ** ppudDeviceRoot);
`
`
`
`
`
`
`
`
`
`purpose: returns the top device in the device tree
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 30 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`if 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. *ppudDeviceRoot is null.
`
`
`
`
`
`lpropget, id(DlSPlD_UPNPDEV|CE_PARENT),
`
`
`
`
`
`
`
`helpstring("returns the parent of the current device")]
`
`
`
`
`
`
`HRESULT ParentDevice([out, retval] |UPNPDevice ** ppudDeviceParent);
`
`
`
`
`
`
`
`
`
`
`
`
`parameters: ppudDeviceParent, On return, if the device has a parent, this is
`
`
`
`
`
`
`
`
`
`
`
`
`
`the address of a |UPNPDevice 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.
`
`
`
`*ppudDeviceRoot is null.
`
`
`
`
`
`
`
`[propget. id(DISPID_UPNPDEVlCE_CHlLDREN),
`
`
`
`
`
`
`
`
`
`helpstring("returns a collection of the children of the current devlce")]
`
`
`
`
`
`
`
`HRESULT Children([out, retval] lUPNPDevices ** ppudChildren);
`
`
`
`
`
`
`
`
`
`parameters: ppudChildren,On return, this is the address of a newly—created
`lUPNPDevices collection that can enumerate this device's children. This must be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`released when no longer needed.
`lfthe device has no children, this method will
`
`
`
`
`
`
`
`
`
`return a collection object with a length of zero.
`
`
`
`
`
`
`
`
`
`
`
`return values: S_OK, ppudChi|dren contains a list of the device's children.
`
`
`
`
`
`
`
`
`
`[propget, id(DlSPlD_UPNPDEVlCE__UDN),
`
`
`
`
`
`
`helpstring("returns the UDN of the device")]
`
`
`
`
`
`HRESULT UniqueDeviceName([out, retval] BSTR * pbstrUDN);
`
`
`
`
`
`
`
`
`
`parameters: pbstrUDN, On return, 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
`pbstrUDN contains the UDN of the device
`
`
`
`Netflix, Inc. et al. Exhibit 1003
`
`Netflix, Inc. et al. Exhibit 1003
`
`
`
`
`U.S. Patent
`
`
`
`Jun. 21, 2005
`
`
`
`
`
`
`
`Sheet 31 of 48
`
`
`
`US 6,910,068 B2
`
`
`
`
`FIG. 34
`
`
`
`
`
`[propget, id(DlSPlD_UPNPDEVlCE_D|SPLAYNAME),
`
`
`
`
`
`
`
`
`he|pstring("returns the (optional) display name of the device")]
`
`
`
`
`
`HRESULT DisplayName([out, retval] BSTR * pbstrDisplayName);
`
`
`
`
`
`
`
`
`
`parameters: pbstrDisplayName, On return, this contains the address of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`device's display name. This value must be freed when no longer needed.
`if the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`device does not specify a display name, this parameter will be set to null.
`
`
`
`
`
`
`
`
`
`
`return values: S_OK, bstrDisplayName contains the display name of the
`
`
`
`
`
`
`
`
`
`
`
`device. pbstrDisplayName must be freed. S_FALSE, the device did not specify a
`
`
`
`
`
`
`
`display name. *pbstrDisplayName is set to null.
`
`
`
`
`
`
`
`
`
`
`
`
`
`note: it is possible for multiple devices to have the same display name.
`
`
`
`
`
`
`
`
`Applications should use UniqueDeviceName() to determine if two device objects
`refer to the same device.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`[propget, id(D|SPlD_UPNPDEVICE_CANSETDlSPLAYNAME).
`
`
`
`
`
`
`
`
`
`helpstring("denotes whether the physical location information of this device can
`
`
`be set")]
`
`
`
`
`
`HRESULT CanSetDisp|ayName({out, retval] VARlANT_BOOL * pvarb);
`
`
`
`
`
`
`
`
`
`
`
`parameters: pvarb, the address of a VARlANT_BOOL. This is true (!=0) on
`
`
`
`
`
`
`
`
`
`
`
`return when the device's display name can be set (via SetDisplayName)
`
`
`
`
`
`
`
`
`
`
`return values: S_OK
`verb is set to the appropria