Compartir a través de


Proveedores de dispositivos

Los proveedores de dispositivos son objetos registrados que el equipo inicia en cada inicio del sistema. Los proveedores de dispositivos registran y anulan el registro de los dispositivos en ejecución con el host de dispositivo en respuesta a algún evento. Estos dispositivos son dispositivos que se han iniciado automáticamente en el momento de inicio del sistema. Por motivos de seguridad, un proveedor de dispositivos suele ejecutarse como LocalService, en lugar de LocalSystem.

Los proveedores de dispositivos se pueden usar para dispositivos transitorios. Los proveedores de dispositivos también se pueden usar para conectar dispositivos a medios sondados. Por ejemplo, un dispositivo periférico como un reproductor de música digital está conectado a un equipo a través de un puerto serie. Para exponer el reproductor de música como un dispositivo basado en UPnP, se requieren un objeto de control de dispositivo y un conjunto de objetos de servicio. Estos objetos implementan las acciones del reproductor de música basado en UPnP como comandos serie. Sin embargo, el reproductor de música debe conectarse al puerto serie y estar disponible para el control antes de que se registren estos objetos.

Dado que el puerto serie no ofrece un mecanismo de notificación explícito cuando los dispositivos están conectados, se requiere código de sondeo. Este código se puede implementar en un objeto de proveedor de dispositivos, un servicio o en una aplicación independiente. Cuando se inicia el equipo, el host del dispositivo crea una instancia del objeto de proveedor de dispositivos y, a continuación, invoca su método Start . Cuando el proveedor de dispositivos detecta la presencia de un dispositivo de reproductor de música, crea una instancia del objeto de control de dispositivo adecuado y lo registra llamando a IUPnPRegistrar::RegisterRunningDevice. Este método publica el dispositivo y lo anuncia en la red basada en UPnP.

También se puede lograr la misma funcionalidad mediante la implementación de un servicio que sondea el puerto serie. Sin embargo, los proveedores de dispositivos simplifican las cosas al requerir que solo se implemente la funcionalidad básica (el sondeo), ya que los proveedores de dispositivos dependen del host del dispositivo para iniciarlos y detenerlos. El uso de proveedores de dispositivos es más sencillo que implementar un servicio.

En el momento del registro, y en cada inicio posterior del sistema, el equipo crea una instancia del objeto de proveedor de dispositivos y, a continuación, invoca su método IUPnPDeviceProvider::Start , pasando la cadena de inicialización especificada durante el registro.

Una vez que se llama al método Start , el proveedor de dispositivos realiza cualquier procesamiento necesario y, cuando sea necesario, el proveedor de dispositivos registra los dispositivos llamando a IUPnPRegistrar::RegisterRunningDevice, como se describe en la sección Registro de un dispositivo hospedado con el host de dispositivo.

Cuando se apaga el equipo, el host del dispositivo invoca el método IUPnPDeviceProvider::Stop para indicar que el proveedor de dispositivos finaliza sus operaciones.