IWSDDeviceHost::AddDynamicService 方法 (wsdhost.h)
註冊傳入要求的服務物件,但不會將服務新增至裝置主機中繼資料。 這用於暫時性 (動態) 服務。
語法
HRESULT AddDynamicService(
[in] LPCWSTR pszServiceId,
[in, optional] LPCWSTR pszEndpointAddress,
[in, optional] const WSD_PORT_TYPE *pPortType,
[in, optional] const WSDXML_NAME *pPortName,
[in, optional] const WSDXML_ELEMENT *pAny,
[in, optional] IUnknown *pService
);
參數
[in] pszServiceId
動態服務的識別碼。 服務識別碼必須與服務主機中繼資料中的所有服務識別碼以及任何其他已註冊的動態服務不同。 pszServiceId必須是 URI。
[in, optional] pszEndpointAddress
選擇性 URI,用來作為此服務的端點位址。 如果未指定任何專案,則裝置主機會假設服務應該可在所有本機傳輸位址上使用。
[in, optional] pPortType
指定埠類型的 WSD_PORT_TYPE 結構的參考。 可為 Null。 只指定 pPortType 和 pPortName的其中一個。
[in, optional] pPortName
指定服務類型的 WSDXML_NAME 結構參考,並將服務與指定的埠產生關聯。 只指定 pPortType 和 pPortName的其中一個。
[in, optional] pAny
要包含在動態服務中繼資料中的可延伸區段選擇性參考。
[in, optional] pService
要註冊之主機服務物件的選擇性參考。
傳回值
可能的傳回值包括但不限於下列各項:
傳回碼 | 描述 |
---|---|
|
方法已順利完成。 |
|
pszServiceId 為 Null。 |
|
pszServiceId或pszEndpointAddress字元的長度超過 WSD_MAX_TEXT_LENGTH (8192) ,或同時指定pPortType和pPortName。 |
|
方法失敗。 可能因為主機尚未初始化而失敗,或找不到 pszServiceId 所指定的服務。 呼叫 Init 以初始化裝置主機。 |
|
記憶體不足,無法完成作業。 |
備註
呼叫此方法時,裝置會新增服務物件的參考,並呼叫其方法來回應定址至服務的訊息。 呼叫裝置主機上的 RemoveDynamicService 方法,釋放其對服務的參考,並停止在服務上呼叫方法。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wsdhost.h (包含 Wsdapi.h) |
Dll | Wsdapi.dll |