次の方法で共有


IUPnPAddressFamilyControl::SetAddressFamily メソッド (upnp.h)

SetAddressFamily メソッドは、Device Finder オブジェクトのアドレス ファミリ フラグを設定します。このフラグを使用して、検出されたデバイスをフィルター処理します。

アプリケーションは、検索を開始する前にアドレス ファミリ フラグを設定します。 アプリケーションには、指定されたアドレス ファミリの IP アドレスを持つデバイスについてのみ通知されます。

構文

HRESULT SetAddressFamily(
  [in] LONG dwFlags
);

パラメーター

[in] dwFlags

見つかったデバイスをフィルター処理するために Device Finder オブジェクトによって使用されるアドレス ファミリを指定する整数 (4 バイト値)。

次の値が有効です。

説明
UPNP_ADDRESSFAMILY_IPv4
IPv4 (IP バージョン 4)
UPNP_ADDRESSFAMILY_IPv6
IPv6 (IP バージョン 6)
UPNP_ADDRESSFAMILY_BOTH
IPv4 および IPv6

戻り値

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

解説

フラグの設定

検索に影響を与えるためには、適切なタイミングでアドレス ファミリ フラグを設定する必要があります。

検出されたデバイスのフィルター処理

シナリオ 1: コントロール ポイント アプリケーションでアドレス ファミリ フラグをUPNP_ADDRESSFAMILY_IPV4に設定し、検索を開始します。

  • デバイス ファインダーが IPv6 アドレスを持つデバイスを検出した場合、デバイス Finder はデバイスのアプリケーションに通知しません。 同じデバイスが後で IPv4 アドレスを取得した場合、Device Finder はデバイスのアプリケーションに通知し、IPv4 アドレスを指定します。
  • デバイス ファインダーが IPv4 アドレスを持つデバイスを検出した場合、Device Finder はデバイスのアプリケーションに通知し、IPv4 アドレスを指定します。 同じデバイスが後で IPv6 アドレスを取得した場合、デバイス Finder はデバイスの追加アドレスをアプリケーションに通知しません。
  • IPv4 アドレスと IPv6 アドレスの両方を持つデバイスが Device Finder によって検出された場合、デバイスのアプリケーションに通知されますが、IPv4 アドレスのみが提供されます。
  • アプリケーションに認識されているデバイスがアドレスの変更を読み上げる場合、Device Finder は、新しいアドレスが IPv4 アドレスの場合にのみ、変更をアプリケーションに通知します。
  • アプリケーションに既知のデバイスに IPv4 アドレスと IPv6 アドレスの両方があり、Device Finder がデバイスの IPv6 アドレスからバイバイ メッセージを受信した場合、アプリケーションが IPv4 アドレスのみを認識している場合でも、Device Finder はアプリケーションに通知します。 つまり、アプリケーションに既知のデバイスがネットワークを離れた場合、デバイス Finder はデバイスのアドレスに関係なくアプリケーションに通知します。

シナリオ 2: アプリケーションでアドレス ファミリ フラグをUPNP_ADDRESSFAMILY_IPV6に設定し、検索を開始します。

  • シナリオ 1 で説明されているように、同様の規則のセットが適用されますが、逆のアドレス ファミリに適用されます。

シナリオ 3: アプリケーションでアドレス ファミリ フラグをUPNP_ADDRESSFAMILY_BOTHに設定し、検索を開始します。

  • デバイス ファインダーが IPv4 アドレスまたは IPv6 アドレスを持つデバイスを検出した場合、Device Finder はデバイスのアプリケーションに通知し、アドレスを指定します。 同じデバイスが後で別のアドレス ファミリのアドレスを取得した場合、Device Finder はデバイスの追加アドレスをアプリケーションに通知しません。
  • Device Finder は、IPv4 アドレスと IPv6 アドレスの両方を持つデバイスを検出した場合、デバイスのアプリケーションに通知しますが、ランダムに選択されたアドレスの 1 つだけを提供します。
  • アプリケーションに認識されているデバイスがアドレスの変更を読み上げる場合、Device Finder は変更をアプリケーションに通知します。
  • アプリケーションに既知のデバイスがネットワークから離れた場合、Device Finder はアプリケーションに通知します。

要件

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

関連項目

GetAddressFamily

IUPnPAddressFamilyControl