次の方法で共有


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 が論理アドレスの場合、ホストは論理アドレスを読み上げ、Resolve または Probe メッセージを受信したときにアドレスを物理アドレスに変換します。

pszLocalId が物理アドレス (http または https でプレフィックス付き URL など) の場合、ホストはアドレスを物理アドレスとして使用し、既定のアドレスではなくそのアドレスでホストします。

セキュリティで保護された通信の場合、 pszLocalId は https のプレフィックスが付いた URL である必要があり、ホストは URL で指定されたポートで SSL/TLS プロトコルを使用します。 このポートは WSDAPI とのセキュリティで保護された接続用に予約されているため、推奨ポートはポート 5358 です。 ポートが指定されていない場合、ホストはポート 443 を使用します。 WSDCreateDeviceHostAdvanced を呼び出す前に、ホスト ポートを SSL サーバー証明書で構成する必要があります。 ホスト ポートの構成の詳細については、「 HttpSetServiceConfiguration」を参照してください。

pszLocalId または ppHostAddresses によって参照されるトランスポート アドレスが 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 インターフェイスの場合、count は 1 である必要があります。

[out] ppDeviceHost

受信要求に応答するサーバーに関連付けられている WSD 固有のデバイス セマンティクスを公開するために使用する IWSDDeviceHost インターフェイスへのポインター。

戻り値

可能な戻り値には、次のものが含まれますが、これらに限定されません。

リターン コード 説明
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 を含む)
Library Wsdapi.lib
[DLL] Wsdapi.dll

こちらもご覧ください

WSDCreateDeviceHost