Inscription d’un appareil hébergé auprès de l’hôte de l’appareil
L’inscription d’un appareil hébergé signifie fournir à l’hôte de l’appareil la description de l’appareil et son objet de contrôle d’appareil. L’hôte de l’appareil construit ensuite une description complète de l’appareil UPnP, la publie et annonce l’appareil sur le réseau à l’aide du protocole de découverte UPnP. Une fois qu’un appareil est publié, il est disponible pour les points de contrôle.
Les appareils sont inscrits de deux manières :
- Une application crée une instance de l’objet de contrôle d’appareil et lui transmet un pointeur vers l’hôte de l’appareil.
- L’application transmet le ProgID d’un objet de contrôle d’appareil inscrit à l’hôte de l’appareil. L’hôte de l’appareil l’instancie lorsque l’hôte de l’appareil reçoit la première demande pour l’appareil.
Quelle que soit la méthode utilisée, l’hôte de l’appareil publie et annonce l’appareil dès qu’il est inscrit. La différence entre les deux approches est liée au moment où le code de l’appareil est chargé. Lorsque l’application passe un pointeur vers l’objet de contrôle d’appareil, le code de l’appareil est chargé et en cours d’exécution au moment de l’inscription. Lorsque l’application transmet un ProgID, le code de l’appareil est chargé uniquement lorsqu’une action est appelée, qu’une propriété est interrogée ou qu’une demande d’abonnement à un événement arrive. La deuxième approche est légèrement plus efficace. Toutefois, elle ne convient pas aux appareils qui doivent être en cours d’exécution avant l’arrivée de toute demande de contrôle ou d’abonnement aux événements, car cette approche permet de créer des objets de contrôle d’appareil uniquement lorsqu’ils sont nécessaires. Cette deuxième méthode peut également créer des problèmes de performances lorsqu’elle reçoit la première demande pour un type d’appareil.
Si vous souhaitez vous assurer qu’un appareil est automatiquement annoncé par l’hôte de l’appareil sur le réseau au démarrage de l’ordinateur, appelez IUPnPRegistrar::RegisterDevice. RegisterDevice garantit que le code de votre appareil est chargé uniquement lorsqu’une demande d’abonnement à un contrôle ou à un événement est reçue.
Si vos appareils sont temporaires ou pontés, appelez IUPnPRegistrar::RegisterRunningDevice, et l’appareil n’est pas automatiquement relancé lors du redémarrage de l’ordinateur.
Durée de vie de l’annonce de découverte
Chaque appareil inscrit auprès de l’hôte de l’appareil est associé à une durée de vie, qui est spécifiée par l’appareil lors de l’inscription. La durée de vie de l’appareil est la période pendant laquelle les annonces de découverte de l’appareil sont valides. La durée de vie est passée au point de contrôle en tant qu’en-tête dans l’annonce de découverte initiale. L’hôte de l’appareil actualise automatiquement l’annonce avant l’heure d’expiration. La durée de vie de l’annonce de découverte doit être de 15 minutes ou plus (la valeur par défaut est de 30 minutes).
Identificateurs d’appareil créés lors de l’inscription
Lors de la création d’un modèle de description d’appareil, le développeur de l’appareil doit fournir le chemin d’accès à la ressource à la description du service et aux icônes associées. Le chemin de la ressource est déterminé par l’application de l’appareil.
Étant donné que le même appareil peut être inscrit plusieurs fois sur le même ordinateur, l’UDN spécifié dans le modèle de description de l’appareil ne suffit pas pour identifier un appareil de manière unique. Par conséquent, lorsqu’un appareil est inscrit, l’hôte de l’appareil crée un identificateur d’appareil. Cet identificateur d’appareil, en association avec l’UDN dans le modèle de description de l’appareil, peut être utilisé pour identifier un appareil de manière unique.
Cet identificateur est également utilisé lorsque l’appareil est temporairement désinscrit, puis réinscrit. Lorsqu’un appareil est désinscrit temporairement, l’hôte de l’appareil ne supprime pas l’UDN. Les raisons de ne pas supprimer l’UDN sont les suivantes :
- L’appareil est en cours de mise à niveau.
- Vous modifiez les propriétés de l’appareil.
- Un service est temporairement indisponible.
- Vous ajoutez un nouveau service à un appareil.
- Vous mettez à jour la DLL.
- L’appareil est en mode veille.
Pour plus d’informations sur l’inscription, reportez-vous aux sections suivantes :
- Comment inscrire un appareil auprès de l’hôte de l’appareil
- Annulation de l’inscription d’un appareil
- IUPnPRegistrar::UnregisterDevice
- IUPnPReregistrar