裝置提供者
裝置提供者是計算機在每個系統啟動時啟動的已註冊物件。 裝置提供者向裝置主機註冊並取消註冊執行中的裝置,以回應某些事件。 這些裝置是系統啟動時間自動啟動的裝置。 基於安全性考慮,裝置提供者通常會以localService 的形式執行,而不是 LocalSystem。
裝置提供者可用於暫時性裝置。 裝置提供者也可以用來將裝置橋接至輪詢媒體。 例如,數位音樂播放機等周邊裝置會透過序列埠連線到計算機。 若要將音樂播放程式公開為UPnP型裝置,則需要裝置控件物件和一組服務物件。 這些物件會實作UPnP型音樂播放程式動作作為序列命令。 不過,音樂播放機必須插入序列埠,並可供控制,才能註冊這些物件。
因為序列埠在連線裝置時不提供明確的通知機制,因此需要輪詢程序代碼。 此程式代碼可以在裝置提供者對象、服務或獨立應用程式中實作。 當計算機啟動時,裝置主機會具現化裝置提供者對象,然後叫用其 Start 方法。 當裝置提供者偵測到音樂播放機裝置是否存在時,它會具現化適當的裝置控制物件,並藉由呼叫 IUPnPRegistrar::RegisterRunningDevice來註冊它。 此方法會發佈裝置,並將其宣告至UPnP型網路。
您也可以藉由實作輪詢序列埠的服務來達成相同的功能。 不過,裝置提供者只需要實作核心功能,即輪詢,因為裝置提供者依賴裝置主機來啟動和停止它們,藉此簡化工作。 使用裝置提供者比實作服務更簡單。
在註冊時間,並在每次後續的系統啟動時,計算機都會具現化裝置提供者對象,然後叫用其 IUPnPDeviceProvider::Start 方法,並傳遞註冊期間指定的初始化字元串。
呼叫 Start 方法之後,裝置提供者會執行任何必要的處理,並在必要時呼叫 IUPnPRegistrar::RegisterRunningDevice來註冊裝置,如 向裝置主機註冊託管裝置一節所述。
當電腦關機時,裝置主機會叫用 IUPnPDeviceProvider::Stop 方法來指出裝置提供者終止其作業。