Перечисление устройств (WMDM)
Windows Media диспетчер устройств поддерживает кэш подключенных устройств, который обновляется при запуске приложения диспетчер устройств Windows Media, при подключении или отключении устройства Plug and Play (PnP) или при вызове IWMDeviceManager2::Reinitialize. Этот кэш предоставляется приложению при вызове IWMDeviceManager::EnumDevices или IWMDeviceManager2::EnumDevices2. Каждое устройство предоставляется приложению в виде интерфейса IWMDMDevice . Если поставщик услуг зарегистрирован для обработки устройств PnP, диспетчер устройств Windows Media будет знать о текущем списке подключенных устройств. Если поставщик услуг зарегистрирован для обработки устройств, отличных от PnP, он отвечает за обнаружение подключенных устройств. Поставщик услуг может быть зарегистрирован только для устройств PnP или без PnP, но никогда не для обоих устройств.
Следующие действия показывают, как Windows Media диспетчер устройств поддерживает или обновляет свой кэш. Обратите внимание, что кэш никогда не обновляется при подключении или отключении устройства, отличного от PnP.
Запуск приложения диспетчер устройств Windows Media
- Windows Media диспетчер устройств извлекает список подключенных устройств PnP из подсистемы PnP и вызывает IMDServiceProvider2::CreateDevice в sp, зарегистрированном для каждого подключенного устройства. (Он обнаруживает правильного поставщика услуг, запрашивая параметр устройства WMDMSPCLSID для идентификатора класса поставщика услуг, ответственного за это устройство. Дополнительные сведения см. в разделе Параметры устройства.) Все возвращенные устройства добавляются в кэш диспетчер устройств устройств Windows Media.
- Windows Media диспетчер устройств находит всех поставщиков служб, не относящихся к PnP, зарегистрированных в ней, и вызывает IMDServiceProvider::EnumDevices для каждого поставщика услуг, чтобы получить список устройств из каждого из них. Все возвращенные устройства добавляются в кэш.
Приложение вызывает IWMDeviceManager/2::EnumDevices/2
- Диспетчер устройств Windows Media возвращает кэшированный список устройств.
Устройство PnP подключается
- Windows Media диспетчер устройств находит соответствующего поставщика услуг и вызывает IMDServiceProvider2::CreateDevice и добавляет устройство в кэш.
- Если приложение реализует IWMDMNotification, Windows Media диспетчер устройств вызывает IWMDMNotification::WMDMMessage с уведомлением о прибытии.
Устройство PnP отключается
- Windows Media диспетчер устройств удаляет элемент из кэша.
- Если приложение реализует IWMDMNotification, Windows Media диспетчер устройств вызывает IWMDMNotification::WMDMMessage с уведомлением об отъезде.
Приложение вызывает IWMDeviceManager2::Reinitialize
- Обновляет кэш со всеми подключенными устройствами.
Устройство, отличное от PnP, подключается или отключается
- Диспетчер устройств Windows Media не уведомляется о прибытии или отъезде и не предпринимает никаких действий.
Связанные темы