Compartir a través de


Enumeración de dispositivos (WMDM)

Windows Media Administrador de dispositivos mantiene una memoria caché de dispositivos conectados que se actualiza cuando se inicia una aplicación de Windows Media Administrador de dispositivos, cuando un dispositivo Plug and Play (PnP) se conecta o desconecta, o cuando la aplicación llama a IWMDeviceManager2::Reinitialize. Esta memoria caché se expone a la aplicación cuando llama a IWMDeviceManager::EnumDevices o IWMDeviceManager2::EnumDevices2. Cada dispositivo se expone a la aplicación como una interfaz IWMDMDevice . Si el proveedor de servicios está registrado para controlar dispositivos PnP, Windows Media Administrador de dispositivos conocerá la lista actual de dispositivos conectados. Si el proveedor de servicios está registrado para controlar dispositivos que no son PnP, el proveedor de servicios es responsable de detectar dispositivos conectados. Un proveedor de servicios solo se puede registrar para dispositivos PnP o no PnP, nunca ambos.

Las siguientes acciones muestran cómo Windows Media Administrador de dispositivos mantiene o actualiza su memoria caché. Tenga en cuenta que la memoria caché nunca se actualiza cuando un dispositivo que no es PnP se conecta o se desconecta.

Se inicia una aplicación de Administrador de dispositivos de Windows Media

  • Windows Media Administrador de dispositivos recupera una lista de dispositivos PnP conectados del subsistema PnP y llama a IMDServiceProvider2::CreateDevice en el SP registrado para cada dispositivo conectado. (Detecta el proveedor de servicios correcto consultando el parámetro de dispositivo WMDMSPCLSID para el identificador de clase del proveedor de servicios responsable de este dispositivo. Consulte Parámetros del dispositivo para obtener más información). Todos los dispositivos devueltos se agregan a windows Media Administrador de dispositivos caché de dispositivos.
  • Windows Media Administrador de dispositivos busca todos los proveedores de servicios que no son PnP registrados con él y llama a IMDServiceProvider::EnumDevices en cada proveedor de servicios para obtener una lista de dispositivos de cada uno. Todos los dispositivos devueltos se agregan a la memoria caché.

La aplicación llama a IWMDeviceManager/2::EnumDevices/2

  • Windows Media Administrador de dispositivos devuelve su lista de dispositivos almacenados en caché.

Un dispositivo PnP se conecta

  • Windows Media Administrador de dispositivos busca el proveedor de servicios pertinente y llama a IMDServiceProvider2::CreateDevice y agrega el dispositivo a su caché.
  • Si la aplicación implementa IWMDMNotification, Windows Media Administrador de dispositivos llama a IWMDMNotification::WMDMMessage con una notificación de llegada.

Un dispositivo PnP se desconecta

  • Windows Media Administrador de dispositivos quita el elemento de su memoria caché.
  • Si la aplicación implementa IWMDMNotification, Windows Media Administrador de dispositivos llama a IWMDMNotification::WMDMMessage con una notificación de salida.

La aplicación llama a IWMDeviceManager2::Reinitialize.

  • Actualiza la memoria caché con todos los dispositivos conectados.

Un dispositivo que no es PnP se conecta o desconecta

  • Windows Media Administrador de dispositivos no está informado de la llegada o salida y no realiza ninguna acción.

Creación de un proveedor de servicios