Condividi tramite


Provider di dispositivi

I provider di dispositivi sono oggetti registrati avviati dal computer in ogni avvio del sistema. I provider di dispositivi registrano e annullano la registrazione dei dispositivi in esecuzione con l'host del dispositivo in risposta ad alcuni eventi. Questi dispositivi sono dispositivi che sono stati avviati automaticamente all'avvio del sistema. Per motivi di sicurezza, un provider di dispositivi deve in genere essere eseguito come LocalService, anziché LocalSystem.

I provider di dispositivi possono essere usati per i dispositivi temporanei. I provider di dispositivi possono anche essere usati per collegare i dispositivi ai supporti di polling. Ad esempio, un dispositivo periferico, ad esempio un lettore di musica digitale, è connesso a un computer tramite una porta seriale. Per esporre il lettore musicale come dispositivo basato su UPnP, sono necessari un oggetto controllo dispositivo e un set di oggetti servizio. Questi oggetti implementano le azioni del lettore musicale basato su UPnP come comandi seriali. Tuttavia, il lettore musicale deve essere collegato alla porta seriale e disponibile per il controllo prima che questi oggetti vengano registrati.

Poiché la porta seriale non offre un meccanismo di notifica esplicito quando i dispositivi sono connessi, è necessario eseguire il polling del codice. Questo codice può essere implementato in un oggetto provider di dispositivi, in un servizio o in un'applicazione autonoma. Quando il computer viene avviato, l'host del dispositivo crea un'istanza dell'oggetto provider del dispositivo e quindi richiama il relativo metodo Start . Quando il provider di dispositivi rileva la presenza di un dispositivo lettore musicale, crea un'istanza dell'oggetto controllo dispositivo appropriato e lo registra chiamando IUPnPRegistrar::RegisterRunningDevice. Questo metodo pubblica il dispositivo e lo annuncia nella rete basata su UPnP.

È anche possibile ottenere la stessa funzionalità implementando un servizio che esegue il polling della porta seriale. Tuttavia, i provider di dispositivi semplificano le operazioni richiedendo solo la funzionalità di base, ovvero il polling, da implementare perché i provider di dispositivi si basano sull'host del dispositivo per avviarli e arrestarli. L'uso dei provider di dispositivi è più semplice rispetto all'implementazione di un servizio.

Al momento della registrazione e in ogni avvio del sistema successivo, il computer crea un'istanza dell'oggetto provider del dispositivo e quindi richiama il metodo IUPnPDeviceProvider::Start , passando la stringa di inizializzazione specificata durante la registrazione.

Dopo aver chiamato il metodo Start , il provider di dispositivi esegue qualsiasi elaborazione necessaria e, quando necessario, il provider di dispositivi registra i dispositivi chiamando IUPnPRegistrar::RegisterRunningDevice, come descritto nella sezione Registrazione di un dispositivo ospitato con l'host del dispositivo.

Quando il computer viene arrestato, l'host del dispositivo richiama il metodo IUPnPDeviceProvider::Stop per indicare che il provider di dispositivi termina le operazioni.