Compartilhar via


Criando um provedor de serviços

Um provedor de serviços é um componente que serve como um intermediário entre um aplicativo e um dispositivo. O Windows Media Gerenciador de Dispositivos roteia solicitações do aplicativo para o provedor de serviços, que é então responsável por se comunicar com o dispositivo ou executar a ação solicitada. Um provedor de serviços geralmente se comunica com um driver para habilitar a comunicação com o dispositivo. Um provedor de serviços é um componente COM que implementa as interfaces chamadas pelo Windows Media Gerenciador de Dispositivos. A interface raiz do objeto do provedor de serviços é IMDServiceProvider. Depois de obter essa interface, o Windows Media Gerenciador de Dispositivos pode obter outras interfaces por meio da implementação do provedor de serviços de vários métodos. As interfaces que um provedor de serviços deve implementar estão listadas em Interfaces Obrigatórias e Opcionais. A hierarquia de interfaces é mostrada em Interfaces para Provedores de Serviços.

Observação

Você não deve tentar criar um provedor de serviços MTP; Em vez disso, você deve usar o provedor de serviços MTP e drivers fornecidos pela Microsoft.

 

Antes de tentar criar um provedor de serviços, você deve entender completamente quais chamadas um aplicativo fará em um provedor de serviços. Leia Criando um aplicativo de Gerenciador de Dispositivos do Windows Media para ter uma ideia das tarefas básicas e chamadas que um aplicativo fará em um provedor de serviços quando estiver tentando se comunicar com um dispositivo.

A lista a seguir mostra as principais etapas no desenvolvimento de um provedor de serviços:

  1. Inclua (e, opcionalmente, compile) os arquivos de cabeçalho e biblioteca necessários para seu projeto. Consulte Bibliotecas e cabeçalhos necessários para um provedor de serviços para obter a lista de arquivos necessários.
  2. Implemente todas as outras interfaces de provedor de serviços obrigatórias ou opcionais (consulte Interfaces obrigatórias e opcionais). Normalmente, as interfaces serão chamadas nesta ordem:
  3. Verifique se o seu provedor de serviços ou dispositivo instala as chaves do Registro adequadas durante a instalação. Essas chaves especificam parâmetros de dispositivo, registram o provedor de serviços como um plug-in e habilitam Plug and Play notificações para chegada e remoção do dispositivo. Consulte Parâmetros do dispositivo, Registrando o provedor de serviços e Habilitando o PnP para dispositivos.
  4. Na instanciação de sua classe, autentique o provedor de serviços no construtor. Para fazer isso, crie uma classe CSecureChannelServer e defina o certificado. Implemente a interface IComponentAuthenticate e chame os métodos da classe CSecureChannelServer instanciada anteriormente. Consulte Autenticando o provedor de serviços para saber como instanciar a classe CSecureChannelServer e implementar os métodos IComponentAuthenticate.
  5. O Windows Media Gerenciador de Dispositivos consultará seu provedor de serviços para obter uma lista de dispositivos conectados chamando IMDServiceProvider2::CreateDevice ou IMDServiceProvider::EnumDevices, dependendo se o provedor de serviços lida com dispositivos Plug and Play. O provedor de serviços deve retornar uma lista de objetos IMDSPDevice que representam dispositivos conectados. Consulte Enumerando Dispositivos para obter mais detalhes.
  6. Antes de lidar com qualquer chamada, verifique se um canal seguro foi estabelecido. Chame CSecureChannelServer::fIsAuthenticated antes de executar qualquer ação. Se essa chamada falhar, retorne WMDM_E_NOTCERTIFIED.
  7. Você precisará de um par de certificados/chaves emitido pela Microsoft para poder lidar com o material protegido por DRM. Consulte Manipulando conteúdo protegido no Provedor de Serviços para obter mais informações.
  8. Para permitir que seu dispositivo seja sincronizado automaticamente com Reprodutor Multimídia do Windows, ele deve atender aos requisitos listados em Habilitando a sincronização com Reprodutor Multimídia do Windows.
  9. Para permitir que seu dispositivo apareça no Windows Explorer, você deve executar algumas etapas especiais, detalhadas em Requisitos para que players de áudio portáteis apareçam no Windows Explorer.

Guia de programação