建立服務提供者
服務提供者是元件,可作為應用程式與裝置之間的中間人。 Windows Media 裝置管理員將要求從應用程式路由傳送至服務提供者,然後負責與裝置通訊或執行要求的動作。 服務提供者通常會與驅動程式通訊,以啟用與裝置的通訊。 服務提供者是一種 COM 元件,可實作 Windows Media 裝置管理員所呼叫的介面。 服務提供者物件的根介面是 IMDServiceProvider。 取得此介面之後,Windows Media 裝置管理員可以透過服務提供者實作各種方法取得其他介面。 服務提供者必須實作的介面會列在 強制和選擇性介面中。 介面的階層會顯示在 服務提供者的介面中。
注意
您不應該嘗試建立 MTP 服務提供者;您應該改用 Microsoft 提供的 MTP 服務提供者和驅動程式。
在嘗試建立服務提供者之前,您應該徹底瞭解應用程式將在服務提供者上進行的呼叫。 請閱讀建立 Windows Media 裝置管理員 應用程式,以瞭解應用程式在嘗試與裝置通訊時,應用程式將在服務提供者上進行的基本工作和呼叫。
下列清單顯示開發服務提供者的重要步驟:
- 包含 (,並選擇性地編譯) 專案所需的標頭和程式庫檔案。 如需必要檔案的清單,請參閱 服務提供者的必要程式庫和標頭 。
- 實作所有其他必要或選擇性服務提供者介面 (請參閱 強制和選擇性介面) 。 一般而言,會依下列順序呼叫介面:
- 請確定您的服務提供者或裝置會在安裝期間安裝適當的登錄機碼。 這些金鑰會指定裝置參數、將服務提供者註冊為外掛程式,並啟用裝置抵達和移除的隨插即用通知。 請參閱 裝置參數、 註冊服務提供者和 啟用裝置的 PnP。
- 在類別具現化時,驗證建構函式中的服務提供者。 若要這樣做,請建立 CSecureChannelServer 類別並設定憑證。 實作 IComponentAuthenticate 介面,並呼叫先前具現化的 CSecureChannelServer 類別方法。 請參閱 驗證服務提供者 ,以瞭解如何具現化 CSecureChannelServer 類別,並實作 IComponentAuthenticate 方法。
- Windows Media 裝置管理員會藉由呼叫IMDServiceProvider2::CreateDevice或IMDServiceProvider::EnumDevices來查詢服務提供者的連線裝置清單,視服務提供者是否處理隨插即用裝置而定。 服務提供者必須傳回代表連線裝置的 IMDSPDevice 物件清單。 如需詳細資訊 ,請參閱列舉裝置 。
- 在處理任何呼叫之前,請確認已建立安全通道。 在執行任何動作之前,請先呼叫 CSecureChannelServer::fIsAuthenticated 。 如果此呼叫失敗,請傳回WMDM_E_NOTCERTIFIED。
- 您將需要由 Microsoft 發出的憑證/金鑰組,才能處理受 DRM 保護的資料。 如需詳細資訊 ,請參閱在服務提供者中處理受保護的內容 。
- 若要讓您的裝置自動與Windows 媒體播放機同步處理,它必須滿足啟用與Windows 媒體播放機同步處理中所列的需求。
- 若要讓您的裝置出現在 Windows 檔案總管中,您必須採取一些特殊步驟,詳述 于可攜式音訊播放程式的需求以出現在 Windows 檔案總管中。
相關主題