Fournisseurs d’appareils
Les fournisseurs d’appareils sont des objets inscrits que l’ordinateur démarre à chaque démarrage du système. Les fournisseurs d’appareils inscrivent et annulent l’inscription des appareils en cours d’exécution auprès de l’hôte de l’appareil en réponse à un événement. Ces appareils sont des appareils qui ont été automatiquement démarrés au moment du démarrage du système. Pour des raisons de sécurité, un fournisseur d’appareil doit généralement s’exécuter en tant que LocalService, plutôt que LocalSystem.
Les fournisseurs d’appareils peuvent être utilisés pour les appareils temporaires. Les fournisseurs d’appareils peuvent également être utilisés pour relier les appareils aux médias interrogés. Par exemple, un périphérique tel qu’un lecteur de musique numérique est connecté à un ordinateur via un port série. Pour exposer le lecteur de musique en tant qu’appareil UPnP, un objet de contrôle d’appareil et un ensemble d’objets de service sont nécessaires. Ces objets implémentent les actions du lecteur de musique UPnP en tant que commandes en série. Toutefois, le lecteur de musique doit être branché sur le port série et disponible pour le contrôle avant que ces objets soient enregistrés.
Étant donné que le port série n’offre pas de mécanisme de notification explicite lorsque les appareils sont connectés, le code d’interrogation est requis. Ce code peut être implémenté dans un objet fournisseur d’appareil, un service ou dans une application autonome. Lorsque l’ordinateur est démarré, l’hôte de l’appareil instancie l’objet fournisseur d’appareil, puis appelle sa méthode Start . Lorsque le fournisseur d’appareil détecte la présence d’un appareil de lecteur de musique, il instancie l’objet de contrôle d’appareil approprié et l’inscrit en appelant IUPnPRegistrar::RegisterRunningDevice. Cette méthode publie l’appareil et l’annonce sur le réseau UPnP.
La même fonctionnalité peut également être obtenue en implémentant un service qui interroge le port série. Toutefois, les fournisseurs d’appareils simplifient les choses en exigeant uniquement la fonctionnalité de base (l’interrogation), car les fournisseurs d’appareils s’appuient sur l’hôte de l’appareil pour les démarrer et les arrêter. L’utilisation de fournisseurs d’appareils est plus simple que l’implémentation d’un service.
Au moment de l’inscription et à chaque démarrage du système suivant, l’ordinateur instancie l’objet fournisseur d’appareil, puis appelle sa méthode IUPnPDeviceProvider::Start , en lui transmettant la chaîne d’initialisation spécifiée lors de l’inscription.
Une fois la méthode Start appelée, le fournisseur d’appareil effectue tout traitement nécessaire et, le cas échéant, il inscrit les appareils en appelant IUPnPRegistrar::RegisterRunningDevice, comme décrit dans la section Inscription d’un appareil hébergé auprès de l’hôte de l’appareil.
Lorsque l’ordinateur est arrêté, l’hôte de l’appareil appelle la méthode IUPnPDeviceProvider::Stop pour indiquer que le fournisseur d’appareil met fin à ses opérations.