Dela via


Registrera en värdbaserad enhet med enhetsvärden

Registrering av en värdbaserad enhet innebär att enhetsvärden får enhetsbeskrivningen och dess enhetskontrollobjekt. Enhetsvärden skapar sedan en fullständig UPnP-enhetsbeskrivning, publicerar den och meddelar enheten i nätverket med hjälp av UPnP-identifieringsprotokollet. När en enhet har publicerats är den tillgänglig för kontrollpunkter.

Enheter registreras på två sätt:

  • Ett program skapar en instans av enhetskontrollobjektet och skickar en pekare till enhetsvärden.
  • Programmet skickar ProgID för ett registrerat enhetskontrollobjekt till enhetsvärdenhet. Enhetsvärden instansierar den när enhetsvärden tar emot den första begäran på enheten.

Oavsett vilken metod som används, publicerar och meddelar värddatorn enheten så snart den har registrerats. Skillnaden mellan de två metoderna har att göra med när enhetskoden läses in. När programmet skickar en pekare till enhetskontrollobjektet läses enhetskoden in och körs vid tidpunkten för registreringen. När programmet skickar ett ProgID läses enhetskoden bara in när en åtgärd anropas, en egenskap efterfrågas eller en händelseprenumerationsbegäran kommer. Den andra metoden är något effektivare. Det är dock inte lämpligt för enheter som måste köras innan någon kontroll- eller händelseprenumerationsbegäran anländer, eftersom enhetskontrollobjekt endast skapas när de behövs med den här metoden. Den här andra metoden kan också skapa prestandaproblem när den tar emot den första begäran för en enhetstyp.

Om du vill se till att en enhet meddelas av enhetsvärden i nätverket automatiskt genom att du anropar IUPnPRegistrar::RegisterDevicenär datorn startas. RegisterDevice ser till att enhetskoden bara läses in när en kontroll- eller händelseprenumerationsbegäran tas emot.

Om enheterna är tillfälliga eller bryggda anropar du IUPnPRegistrar::RegisterRunningDeviceoch enheten annonseras inte automatiskt igen när datorn startas om.

Livslängd för upptäcktsmeddelande

Varje enhet som registrerats hos enhetshanteraren är associerad med en livslängd som anges av enheten vid registreringen. Enhetens livslängd är den tidsperiod för vilken enhetens identifieringsmeddelanden är giltiga. Livslängden skickas till styrpunkten som en rubrik i det inledande upptäcktsmeddelandet. Enhetsvärden uppdaterar automatiskt meddelandet före utgångstiden. Värdena för identifieringsmeddelandets livslängd bör vara 15 minuter eller mer (standardvärdet är 30 minuter).

Enhetsidentifierare som skapats vid registreringen

När du skapar en mall för enhetsbeskrivning måste enhetsutvecklaren ange resurssökvägen till tjänstbeskrivningen och tillhörande ikoner. Resurssökvägen bestäms av enhetsprogrammet.

Eftersom samma enhet kan registreras flera gånger på samma dator räcker det UDN som anges i mallen för enhetsbeskrivning inte för att unikt identifiera en enhet. Därför, när en enhet registreras, skapar värden för enheten en enhetsidentifierare. Den här enhetsidentifieraren, i samband med UDN i mallen för enhetsbeskrivning, kan användas för att unikt identifiera en enhet.

Den här identifieraren används också när enheten tillfälligt avregistreras och sedan registreras på nytt. När en enhet avregistreras tillfälligt tar värddatorn för enheten inte bort UDN. Orsaker till att udn inte tas bort är:

  • Enheten uppgraderas.
  • Du ändrar enhetens egenskaper.
  • En tjänst är inte tillgänglig för tillfället.
  • Du lägger till en ny tjänst till en enhet.
  • Du uppdaterar DLL:en.
  • Enheten är i stand-by-läge.

Mer information om registrering finns i följande avsnitt: