Enumerando dispositivos (WMDM)
O Gestor de Dispositivos do Windows Media mantém uma cache de dispositivos ligados que é atualizada quando uma aplicação do Gestor de Dispositivos do Windows Media é iniciada, quando um dispositivo Plug and Play (PnP) liga ou desliga ou quando a aplicação chama IWMDeviceManager2::Reinitialize. Esse cache é exposto ao aplicativo quando ele chama IWMDeviceManager::EnumDevices ou IWMDeviceManager2::EnumDevices2. Cada dispositivo é exposto ao aplicativo como um interface de IWMDMDevice. Se o fornecedor de serviços estiver registado para lidar com dispositivos PnP, o Gestor de Dispositivos do Windows Media estará ciente da lista atual de dispositivos ligados. Se o provedor de serviços estiver registrado para lidar com dispositivos não PnP, o provedor de serviços será responsável por descobrir dispositivos conectados. Um provedor de serviços só pode ser registrado para dispositivos PnP ou não-PnP, nunca ambos.
As ações seguintes mostram como o Gestor de Dispositivos do Windows Media mantém ou atualiza a sua cache. Observe que o cache nunca é atualizado quando um dispositivo não-PnP se conecta ou desconecta.
É iniciada uma aplicação do Gestor de Dispositivos do Windows Media
- O Gestor de Dispositivos do Windows Media recupera uma lista de dispositivos PnP anexados do subsistema PnP e chama IMDServiceProvider2::CreateDevice no controlador SP registado para cada dispositivo conectado. (Ele descobre o provedor de serviços correto consultando o parâmetro de dispositivo WMDMSPCLSID para a ID de classe do provedor de serviços responsável por esse dispositivo. Consulte Parâmetros do dispositivo para obter mais informações.) Todos os dispositivos devolvidos são adicionados à cache de dispositivos do Gestor de Dispositivos do Windows Media.
- O Gestor de Dispositivos do Windows Media encontra todos os fornecedores de serviços não-PnP registados com ele e chama IMDServiceProvider::EnumDevices em cada fornecedor de serviços para obter uma lista de dispositivos de cada um. Todos os dispositivos retornados são adicionados ao cache.
O aplicativo chama IWMDeviceManager/2::EnumDevices/2
- O Gestor de Dispositivos do Windows Media devolve a respetiva lista de dispositivos em cache.
Um dispositivo PnP se conecta
- O Gestor de Dispositivos do Windows Media localiza o fornecedor de serviços relevante e chama IMDServiceProvider2::CreateDevicee adiciona o dispositivo à sua cache.
- Se o aplicativo implementar IWMDMNotification, o Gerenciador de Dispositivos do Windows Media chamará IWMDMNotification::WMDMMessage com uma notificação de chegada.
Um dispositivo PnP desconecta
- O Gestor de Dispositivos do Windows Media remove o item da cache.
- Se o aplicativo implementar IWMDMNotification, o Gerenciador de dispositivos do Windows Media chamará IWMDMNotification::WMDMMessage com uma notificação de partida.
O aplicativo chama IWMDeviceManager2::Reinitialize
- Atualiza o cache com todos os dispositivos conectados.
Um dispositivo não-PnP conecta ou desconecta
- O Gestor de Dispositivos do Windows Media não é informado da chegada ou partida e não toma qualquer medida.
Tópicos relacionados