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 l'oggetto di controllo del dispositivo. L'host del dispositivo crea quindi una descrizione completa del dispositivo UPnP, la pubblica e annuncia il dispositivo in rete usando il protocollo di individuazione UPnP. Dopo la pubblicazione di un dispositivo, è disponibile per i punti di controllo.
I dispositivi vengono registrati in due modi:
- Un'applicazione crea un'istanza dell'oggetto controllo 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 crea un'istanza quando l'host del dispositivo 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 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.
Per assicurarsi che un dispositivo venga annunciato automaticamente dall'host del dispositivo nella rete all'avvio del computer, richiamare IUPnPRegistrar::RegisterDevice. RegisterDevice garantisce 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 collegati, richiamare IUPnPRegistrar::RegisterRunningDevice e il dispositivo non viene annunciato automaticamente al riavvio del computer.
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 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 15 minuti o più (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, il nome utente 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 del dispositivo. Questo identificatore di 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 annullata temporaneamente la registrazione, l'host del dispositivo non elimina il nome utente. I motivi per cui non si elimina il nome utente 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.
- Si aggiorna la DLL.
- Il dispositivo è in modalità stand-by.
Per altre informazioni sulla registrazione, vedere le sezioni seguenti:
- Come registrare un dispositivo con l'host del dispositivo
- Annullamento della registrazione di un dispositivo
- IUPnPRegistrar::UnregisterDevice
- IUPnPReregistrar