次の方法で共有


IUPnPRegistrar::RegisterRunningDevice メソッド (upnphost.h)

RegisterRunningDevice メソッドは、実行中のデバイスをデバイス ホストに登録します。 デバイス情報は、デバイス ホストによって格納されます。 次に、デバイス ホストはデバイス識別子を返し、ネットワーク上のデバイスを発行して読み上げる。 このデバイスの公開は、システムの起動時に保持されません。

構文

HRESULT RegisterRunningDevice(
  [in]  BSTR     bstrXMLDesc,
  [in]  IUnknown *punkDeviceControl,
  [in]  BSTR     bstrInitString,
  [in]  BSTR     bstrResourcePath,
  [in]  long     nLifeTime,
  [out] BSTR     *pbstrDeviceIdentifier
);

パラメーター

[in] bstrXMLDesc

登録するデバイスの XML デバイス記述テンプレートを指定します。

[in] punkDeviceControl

デバイスのデバイス コントロール オブジェクトへの IUnknown ポインターを指定します。

[in] bstrInitString

デバイスに固有の初期化文字列を識別します。 この文字列は、後で IUPnPDeviceControl::Initialize に渡されます。

[in] bstrResourcePath

デバイスのリソース ディレクトリの場所を指定します。 このリソース ディレクトリには、デバイス記述テンプレート bstrXMLDesc で指定されているアイコン ファイルとサービスの説明が含まれています。

[in] nLifeTime

デバイスアナウンスの有効期間を秒単位で指定します。 タイムアウトが切れると、アナウンスが更新されます。 0 を指定すると、既定値の 1800 (30 分) が使用されます。 最小値は 900 (15 分) です。900 未満を指定すると、エラーが返されます。

[out] pbstrDeviceIdentifier

デバイス識別子を受け取ります。 デバイスの登録を解除または再登録する場合は、この識別子を使用します。 このデバイス ID を保存します。 UnregisterDevice を呼び出すときに使用する必要があります。

戻り値

メソッドが成功した場合、戻り値はS_OK。 それ以外の場合、メソッドは WinError.h で定義されている COM エラー コードの 1 つ、または次の UPnP 固有のエラー コードのいずれかを返します。

メモ bstrResourcePath が長すぎる場合、このメソッドは0x80070002値を返します。
 
リターン コード 説明
UPNP_E_DUPLICATE_NOT_ALLOWED
重複する要素が存在します。
UPNP_E_DUPLICATE_SERVICE_ID
同じ親デバイス内のサービスの重複するサービス ID が存在します。
UPNP_E_INVALID_DESCRIPTION
デバイスの説明が無効です。
UPNP_E_INVALID_ICON
デバイスの説明の icon 要素にエラーが存在します。
UPNP_E_INVALID_SERVICE
デバイスの説明のサービス要素にエラーが存在します。
UPNP_E_REQUIRED_ELEMENT_ERROR
必要な要素がありません。

注釈

このメソッドを呼び出すクライアントは、このメソッドの処理を完了するために LocalService を偽装できる必要があります。

IUPnPDeviceControl::Initialize メソッドは、最初のコントロールまたはイベント要求を受信したときに呼び出されます。

UnregisterDevice または IUPnPReregistrar::ReregisterRunningDevice を呼び出すときに pbstrDeviceIdentifier で返される識別子を使用します。

このデバイスの登録は、システムの起動時に保持されません。

この関数を呼び出すときに発生する可能性がある一般的なエラーは次のとおりです。

  • 必要な COM オブジェクトが見つかりませんでした。
  • LocalService の COM オブジェクトにはアクセス権がありません。
  • 下位 COM インターフェイス。
  • XML の説明の制限 ( 「デバイスの説明の作成」を参照)。
  • イベントが発生した変数は成功コードを返せず、デバイスがシャットダウンされました。
  • サービスの説明が無効です。 validatesd.exe を使用して、サービスの説明が有効であることを確認します。
  • サービスは IUPnPEventSource を実装せず、成功コードを IUPnPEventSource::Advise に返せず、デバイスがシャットダウンされました。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー upnphost.h
[DLL] Upnphost.dll

こちらもご覧ください

IUPnPRegistrar

IUPnPRegistrar::UnregisterDevice

IUPnPReregistrar