控制裝置
UPnP 型裝置是由其公開的服務所控制。 UPnP 服務是 UPnP 架構中最小的可控制實體。 裝置會針對其執行的每個主要函式公開一項服務。 複雜的裝置通常由數個簡單服務和其他裝置所組成。
服務包含一組狀態變數,以及一組應用程式可以叫用以在這些狀態變數上運作的動作。 在具有 UPnP 技術的控制點 API 中,服務會以公開IUPnPService介面的服務物件表示。
服務類型會定義特定服務所支援的狀態變數和動作。 例如,時鐘服務的服務類型會定義 GetTime 和 SetTime 動作,以及 Time 狀態變數。
服務識別碼可區分單一裝置內的多個常見服務類型。 例如,一個時鐘可以有兩個時鐘服務,一個用於一般時鐘,另一個用於鬧鐘。 必須有一種方式可以區分兩個具有相同服務類型的服務。 服務識別碼提供唯一的方式來識別服務類型的實例。 然後,此服務識別碼可用來從 IUPnPServices 集合存取正確的服務,因為服務類型不是唯一識別碼。 IUPnPService介面也允許應用程式向服務物件註冊回呼函式。 當服務的狀態變數值變更時,服務物件會叫用已註冊的回呼,以通知應用程式變更。 UPnP 架構也會叫用此回呼,以在服務實例無法使用時通知應用程式。 服務可能會因為各種原因而無法使用,包括暫時性網路失敗。
如需詳細資訊,請參閱下列主題: