Создание поставщика услуг
Поставщик услуг — это компонент, который выступает в качестве посредника между приложением и устройством. Windows Media диспетчер устройств направляет запросы от приложения к поставщику услуг, который затем отвечает за обмен данными с устройством или выполнение запрошенного действия. Поставщик услуг обычно взаимодействует с драйвером, чтобы обеспечить связь с устройством. Поставщик услуг — это com-компонент, реализующий интерфейсы, вызываемые диспетчер устройств Windows Media. Корневой интерфейс объекта поставщика услуг — IMDServiceProvider. После получения этого интерфейса Диспетчер устройств Windows Media может получить другие интерфейсы с помощью реализации поставщиком услуг различных методов. Интерфейсы, которые должен реализовать поставщик услуг, перечислены в разделе Обязательные и необязательные интерфейсы. Иерархия интерфейсов показана в разделе Интерфейсы для поставщиков услуг.
Примечание
Не следует пытаться создать поставщика услуг MTP; Вместо этого следует использовать поставщик услуг MTP и драйверы, предоставляемые корпорацией Майкрософт.
Прежде чем пытаться создать поставщика услуг, необходимо тщательно понять, какие вызовы будут выполняться приложением в поставщике услуг. Прочтите статью Создание приложения диспетчер устройств Windows Media, чтобы получить представление об основных задачах и вызовах, которые приложение будет выполнять в поставщике услуг при попытке взаимодействия с устройством.
В следующем списке показаны основные этапы разработки поставщика услуг.
- Включите (и при необходимости скомпилируйте) необходимые файлы заголовков и библиотек для проекта. Список необходимых файлов см. в разделе Обязательные библиотеки и заголовки для поставщика услуг .
- Реализуйте все остальные обязательные или необязательные интерфейсы поставщика услуг (см. раздел Обязательные и необязательные интерфейсы). Как правило, интерфейсы вызываются в следующем порядке:
- Убедитесь, что поставщик услуг или устройство устанавливает соответствующие разделы реестра во время установки. Эти ключи задают параметры устройства, регистрируют поставщика услуг в качестве подключаемого модуля и позволяют Plug and Play уведомления о прибытии и удалении устройства. См . раздел Параметры устройства, Регистрация поставщика услуг и Включение PnP для устройств.
- При создании экземпляра класса выполните проверку подлинности поставщика услуг в конструкторе. Для этого создайте класс CSecureChannelServer и задайте сертификат. Реализуйте интерфейс IComponentAuthenticate и вызовите методы класса CSecureChannelServer, созданного ранее. Сведения о создании экземпляра класса CSecureChannelServer и реализации методов IComponentAuthenticate см. в статье Проверка подлинности поставщика услуг .
- Windows Media диспетчер устройств запрашивает у поставщика услуг список подключенных устройств, вызывая IMDServiceProvider2::CreateDevice или IMDServiceProvider::EnumDevices, в зависимости от того, обрабатывает ли поставщик услуг Plug and Play устройства. Поставщик услуг должен вернуть список объектов IMDSPDevice , представляющих подключенные устройства. Дополнительные сведения см. в разделе Перечисление устройств .
- Перед обработкой любого вызова убедитесь, что безопасный канал установлен. Вызовите CSecureChannelServer::fIsAuthenticated перед выполнением каких-либо действий. Если этот вызов завершается сбоем, верните WMDM_E_NOTCERTIFIED.
- Вам потребуется пара сертификат/ключ, выданная корпорацией Майкрософт, чтобы иметь возможность обрабатывать материалы, защищенные DRM. Дополнительные сведения см. в разделе Обработка защищенного содержимого в поставщике услуг .
- Чтобы включить автоматическую синхронизацию устройства с Медиаплеер Windows, оно должно соответствовать требованиям, перечисленным в разделе Включение синхронизации с Медиаплеер Windows.
- Чтобы ваше устройство отображалось в Windows Обозреватель, необходимо выполнить несколько специальных действий, описанных в разделе Требования к отображению портативных аудиоплееров в Windows Обозреватель.
Связанные темы