Registrazione di un dispositivo ospitato con l'host del dispositivo
La registrazione di un dispositivo ospitato significa fornire all'host del dispositivo la descrizione del dispositivo e il relativo oggetto di controllo del dispositivo. L'host del dispositivo costruisce quindi una descrizione completa del dispositivo UPnP, la pubblica e annuncia il dispositivo in rete usando il protocollo di individuazione UPnP. Una volta che un dispositivo è stato pubblicato, diventa disponibile per i punti di controllo.
I dispositivi vengono registrati in due modi:
- Un'applicazione crea un'istanza dell'oggetto di controllo del dispositivo e passa un puntatore all'host del dispositivo.
- L'applicazione passa il ProgID per un oggetto di controllo del dispositivo registrato all'host del dispositivo. L'host del dispositivo istanzia il processo quando riceve la prima richiesta per il dispositivo.
Indipendentemente dal metodo usato, l'host del dispositivo pubblica e annuncia il dispositivo non appena viene registrato. La differenza tra i due approcci ha a che fare con quando viene caricato il codice del dispositivo. Quando l'applicazione passa un puntatore all'oggetto di controllo del dispositivo, il codice del dispositivo viene caricato ed eseguito al momento della registrazione. Quando l'applicazione passa un ProgID, il codice del dispositivo viene caricato solo quando viene richiamata un'azione, viene eseguita una query su una proprietà o arriva una richiesta di sottoscrizione di eventi. Il secondo approccio è leggermente più efficiente. Tuttavia, non è adatto per i dispositivi che devono essere in esecuzione prima dell'arrivo di qualsiasi richiesta di controllo o sottoscrizione di eventi, perché usando questo approccio, gli oggetti di controllo del dispositivo vengono creati solo quando sono necessari. Questo secondo metodo può anche creare problemi di prestazioni quando riceve la prima richiesta per un tipo di dispositivo.
Se si vuole assicurarsi che un dispositivo venga annunciato automaticamente dall'host del dispositivo in rete all'avvio del computer, richiamare IUPnPRegistrar::RegisterDevice. RegisterDevice assicura che il codice del dispositivo venga caricato solo quando viene ricevuta una richiesta di controllo o sottoscrizione di eventi.
Se i dispositivi sono temporanei o interconnessi, richiamare IUPnPRegistrar::RegisterRunningDevicee il dispositivo non viene nuovamente annunciato automaticamente quando il computer viene riavviato.
Durata degli annunci di individuazione
Ogni dispositivo registrato con l'host del dispositivo è associato a una durata, specificata dal dispositivo al momento della registrazione. La durata del dispositivo è il periodo di tempo per cui gli annunci di individuazione del dispositivo sono validi. La durata viene passata al punto di controllo come un'intestazione nell'annuncio di individuazione iniziale. L'host del dispositivo aggiorna automaticamente l'annuncio prima della scadenza. I valori della durata dell'annuncio di individuazione devono essere di almeno 15 minuti (il valore predefinito è 30 minuti).
Identificatori di dispositivo creati durante la registrazione
Quando si crea un modello di descrizione del dispositivo, lo sviluppatore del dispositivo deve fornire il percorso della risorsa alla descrizione del servizio e alle icone associate. Il percorso della risorsa è determinato dall'applicazione del dispositivo.
Poiché lo stesso dispositivo può essere registrato più volte nello stesso computer, l'UDN specificato nel modello di descrizione del dispositivo non è sufficiente per identificare in modo univoco un dispositivo. Pertanto, quando un dispositivo viene registrato, l'host del dispositivo crea un identificatore di dispositivo. Questo identificatore del dispositivo, in associazione con il nome utente nel modello di descrizione del dispositivo, può essere usato per identificare in modo univoco un dispositivo.
Questo identificatore viene usato anche quando il dispositivo viene temporaneamente annullato e quindi registrato nuovamente. Quando un dispositivo viene annullato temporaneamente dalla registrazione, l'host del dispositivo non elimina l'UDN. I motivi per cui non si elimina l'UDN includono:
- Il dispositivo viene aggiornato.
- Si stanno modificando le proprietà del dispositivo.
- Un servizio non è temporaneamente disponibile.
- Si aggiunge un nuovo servizio a un dispositivo.
- Stai aggiornando la DLL.
- Il dispositivo è in modalità stand-by.
Per altre informazioni sulla registrazione, vedere le sezioni seguenti:
- Come registrare un dispositivo con il dispositivo host
- Annullare la registrazione di un dispositivo
- IUPnPRegistrar::UnregisterDevice
- IUPnPReregistrar