다음을 통해 공유


서비스 공급자 만들기

서비스 공급자는 애플리케이션과 디바이스 간의 미들맨 역할을 하는 구성 요소입니다. Windows Media 장치 관리자 애플리케이션의 요청을 서비스 공급자로 라우팅합니다. 그러면 디바이스와 통신하거나 요청된 작업을 수행할 책임이 있습니다. 서비스 공급자는 일반적으로 디바이스와 통신할 수 있도록 드라이버와 통신합니다. 서비스 공급자는 Windows Media 장치 관리자 호출되는 인터페이스를 구현하는 COM 구성 요소입니다. 서비스 공급자 개체의 루트 인터페이스는 IMDServiceProvider입니다. 이 인터페이스를 가져온 후 Windows Media 장치 관리자 다양한 메서드의 서비스 공급자 구현을 통해 다른 인터페이스를 가져올 수 있습니다. 서비스 공급자가 구현해야 하는 인터페이스는 필수 및 선택적 인터페이스에 나열됩니다. 인터페이스의 계층 구조는 서비스 공급자용 인터페이스에 표시됩니다.

참고

MTP 서비스 공급자를 만들려고 하면 안 됩니다. 대신 Microsoft에서 제공하는 MTP 서비스 공급자 및 드라이버를 사용해야 합니다.

 

서비스 공급자를 만들기 전에 서비스 공급자에서 애플리케이션이 호출할 호출을 철저히 이해해야 합니다. Windows Media 장치 관리자 애플리케이션 만들기를 참조하여 디바이스와 통신하려고 할 때 애플리케이션이 서비스 공급자에서 수행하는 기본 작업 및 호출에 대해 알아보세요.

다음 목록에서는 서비스 공급자를 개발하는 주요 단계를 보여 있습니다.

  1. 프로젝트에 필요한 헤더 및 라이브러리 파일을 포함(및 필요에 따라 컴파일)합니다. 필수 파일 목록은 서비스 공급자에 대한 필수 라이브러리 및 헤더 를 참조하세요.
  2. 다른 모든 필수 또는 선택적 서비스 공급자 인터페이스를 구현합니다( 필수 및 선택적 인터페이스 참조). 일반적으로 인터페이스는 다음 순서로 호출됩니다.
  3. 설치하는 동안 서비스 공급자 또는 디바이스가 적절한 레지스트리 키를 설치해야 합니다. 이러한 키는 디바이스 매개 변수를 지정하고, 서비스 공급자를 플러그 인으로 등록하고, 디바이스 도착 및 제거에 대한 플러그 앤 플레이 알림을 사용하도록 설정합니다. 디바이스 매개 변수, 서비스 공급자 등록디바이스에 대한 PnP 사용을 참조하세요.
  4. 클래스를 인스턴스화할 때 생성자에서 서비스 공급자를 인증합니다. 이렇게 하려면 CSecureChannelServer 클래스를 만들고 인증서를 설정합니다. IComponentAuthenticate 인터페이스를 구현하고 이전에 인스턴스화된 CSecureChannelServer 클래스의 메서드를 호출합니다. CSecureChannelServer 클래스를 인스턴스화하고 IComponentAuthenticate 메서드를 구현하는 방법을 알아보려면 서비스 공급자 인증 을 참조하세요.
  5. Windows Media 장치 관리자 서비스 공급자가 플러그 앤 플레이 디바이스를 처리하는지 여부에 따라 IMDServiceProvider2::CreateDevice 또는 IMDServiceProvider::EnumDevices를 호출하여 서비스 공급자에게 연결된 디바이스 목록을 쿼리합니다. 서비스 공급자는 연결된 디바이스를 나타내는 IMDSPDevice 개체 목록을 반환해야 합니다. 자세한 내용은 디바이스 열거를 참조하세요 .
  6. 호출을 처리하기 전에 보안 채널이 설정되었는지 확인합니다. 작업을 수행하기 전에 CSecureChannelServer::fIsAuthenticated 를 호출합니다. 이 호출이 실패하면 WMDM_E_NOTCERTIFIED 반환합니다.
  7. DRM으로 보호되는 자료를 처리하려면 Microsoft에서 발급한 인증서/키 쌍이 필요합니다. 자세한 내용은 서비스 공급자에서 보호된 콘텐츠 처리를 참조하세요.
  8. 디바이스가 Windows 미디어 플레이어 자동으로 동기화되도록 하려면 Windows 미디어 플레이어 동기화 사용에서 나열된 요구 사항을 충족해야 합니다.
  9. 디바이스가 Windows Explorer 표시되도록 설정하려면 Windows Explorer 표시할 휴대용 오디오 플레이어 요구 사항에 자세히 설명된 몇 가지 특별한 단계를 수행해야 합니다.

프로그래밍 가이드