共用方式為


WSDCreateDeviceHostAdvanced 函式 (wsdhost.h)

建立裝置主機,並傳回 IWSDDeviceHost 介面的指標。

語法

HRESULT WSDCreateDeviceHostAdvanced(
  [in]  LPCWSTR        pszLocalId,
  [in]  IWSDXMLContext *pContext,
  [in]  IWSDAddress    **ppHostAddresses,
  [in]  DWORD          dwHostAddressCount,
  [out] IWSDDeviceHost **ppDeviceHost
);

參數

[in] pszLocalId

裝置的邏輯或實體位址。 邏輯位址格式為 urn:uuid:{guid}。 如果 pszLocalId 是邏輯位址,主機將會宣告邏輯位址,然後在接收解析或探查訊息時將位址轉換為實體位址。

如果 pszLocalId 是實體位址 (,例如 URL 前面加上 HTTP 或 https) ,主機會使用地址作為實體位址,並將裝載在該位址上,而不是預設位址。

若要安全通訊, pszLocalId 必須是 HTTPs 前置詞的 URL,而且主機會在 URL 中指定的埠上使用 SSL/TLS 通訊協定。 建議的埠是埠 5358,因為此埠會保留給 WSDAPI 的安全連線。 如果未指定埠,則主機會使用埠 443。 在呼叫 WSDCreateDeviceHostAdvanced 之前,必須先使用 SSL 伺服器證書來設定主機埠。 如需主機埠設定的詳細資訊,請參閱 HttpSetServiceConfiguration

如果 pszLocalIdppHostAddresses 所參考的傳輸地址是 HTTPs 前置詞的 URL,則這兩個 URL 都必須相同。 如果這不是這種情況, WSDCreateDeviceHostAdvanced 會傳回E_INVALIDARG。

任何 URL (HTTP 或 HTTPs) 都必須以結尾斜線終止。 URL 必須包含有效的IP位址或主機名。

下列清單顯示 pszLocalId 的一些範例值。 這不是有效值的完整清單。

  • http://192.168.0.1:5357/
  • http://localhost/
  • http://myHostname:5357/
  • https://192.168.0.1:5358/
  • https://myHostname/
  • https://myHostname/myDevice/
  • https://myHostname:5358/

[in] pContext

定義自訂訊息類型或命名空間的 IWSDXMLContext 介面。

如果為 NULL,則會使用代表內建訊息類型和命名空間的預設內容。

[in] ppHostAddresses

單一 IWSDAddress 介面或 IWSDTransportAddress 介面。 物件會提供主機應該接聽之特定位址的相關信息。

如果 pszLocalId 包含邏輯位址,則產生的行為是邏輯位址與特定實體位址集之間的對應 (,而不是邏輯位址與預設實體地址之間的對應) 。

[in] dwHostAddressCount

ppHostAddresses 陣列中的項目數。 如果 ppHostAddressesIWSDAddress 介面,計數必須是 1。

[out] ppDeviceHost

IWSDDeviceHost 介面的指標,您用來公開與回應傳入要求之伺服器相關聯的 WSD 特定裝置語意。

傳回值

可能的傳回值包括但不限於下列各項:

傳回碼 描述
S_OK
方法已順利完成。
E_INVALIDARG
pszLocalIdNULL,pszLocalId 的字元長度超過 WSD_MAX_TEXT_LENGTH (8192) ,或 pszLocalId 指向以 https 開頭的 URL,且該 URL 不符合 ppHostAddresses 所參考之傳輸位址的 URL。
E_POINTER
ppDeviceHostNULL
E_OUTOFMEMORY
記憶體不足,無法完成作業。

備註

WSDCreateDeviceHostAdvanced 函式會呼叫 IWSDDeviceHost::Init 方法,它會初始化 IWSDDeviceHost 對象的實例。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wsdhost.h (包含 Wsdapi.h)
程式庫 Wsdapi.lib
Dll Wsdapi.dll

另請參閱

WSDCreateDeviceHost