向裝置主機註冊裝載的裝置
註冊託管裝置表示提供裝置主機與裝置描述及其裝置控制物件。 然後,裝置主機會建構完整的 UPnP 裝置描述、發佈它,並使用 UPnP 探索通訊協定在網路上宣告裝置。 一旦發佈裝置,即可控制點。
裝置會以兩種方式註冊:
- 應用程式會建立裝置控制物件的實例,並將指標傳遞給裝置主機。
- 應用程式會將已註冊裝置控制物件的 ProgID 傳遞給裝置主機。 當裝置主機收到裝置的第一個要求時,裝置主機就會具現化它。
不論使用何種方法,裝置主機都會在註冊裝置時立即發佈並宣告裝置。 載入裝置程式碼時,這兩種方法之間的差異必須與 相同。 當應用程式傳入裝置控制物件的指標時,會在註冊時載入並執行裝置程式碼。 當應用程式通過 ProgID 時,只有在叫用動作、查詢屬性或事件訂用帳戶要求送達時,才會載入裝置程式碼。 第二種方法稍微有效率。 不過,它不適用於必須在任何控制項或事件訂用帳戶要求送達之前執行的裝置,因為使用此方法時,才會建立裝置控制物件。 第二種方法也可以在收到裝置類型的第一個要求時,建立效能問題。
如果您想要確保當電腦啟動時,裝置主機會自動在網路上宣告裝置,請叫用 IUPnPRegistrar::RegisterDevice。 RegisterDevice 可確保只有在收到控制項或事件訂用帳戶要求時,才會載入您的裝置程式碼。
如果您的裝置是暫時性或橋接的,請叫用 IUPnPRegistrar::RegisterRunningDevice,而且當電腦重新開機時,不會自動重新公告裝置。
探索公告存留期
向裝置主機註冊的每個裝置都會與存留期相關聯,該存留期是由裝置在註冊時指定。 裝置的存留期是裝置探索公告有效的時間週期。 存留期會以初始探索公告中的標頭的形式傳遞至控制點。 裝置主機會在到期時間之前自動重新整理公告。 探索公告存留期的值應該是 15 分鐘以上, (預設值為 30 分鐘) 。
在註冊時建立的裝置識別碼
建立裝置描述範本時,裝置開發人員必須提供服務描述和相關圖示的資源路徑。 資源路徑是由裝置應用程式決定。
由於同一部電腦上可以多次註冊相同的裝置,因此裝置描述範本中指定的 UDN 不足以唯一識別裝置。 因此,註冊裝置時,裝置主機會建立裝置識別碼。 此裝置識別碼與裝置描述範本中的 UDN 相關聯,可用來唯一識別裝置。
當裝置暫時取消註冊,然後重新註冊時,也會使用此識別碼。 暫時取消註冊裝置時,裝置主機不會刪除 UDN。 刪除 UDN 的原因包括:
- 正在升級裝置。
- 您正在變更裝置的屬性。
- 服務暫時無法使用。
- 您要將新的服務新增至裝置。
- 您正在更新 DLL。
- 裝置處於獨立模式。
如需註冊的詳細資訊,請參閱下列各節: