次の方法で共有


MgmAddGroupMembershipEntry 関数 (mgm.h)

MgmAddGroupMembershipEntry 関数は、指定したインターフェイスに指定されたグループの新しいレシーバーがあることをマルチキャスト グループ マネージャーに通知します。 受信側は、ソース範囲を指定することで、マルチキャスト データを受信するソースのセットを制限できます。

マルチキャスト ルーティング プロトコルは、インターフェイスにマルチキャスト グループの受信者が存在することが通知されると、この関数を呼び出します。 プロトコルは、マルチキャスト データをインターフェイス経由で転送できるように、この関数を呼び出す必要があります。

構文

DWORD MgmAddGroupMembershipEntry(
  [in] HANDLE hProtocol,
  [in] DWORD  dwSourceAddr,
  [in] DWORD  dwSourceMask,
  [in] DWORD  dwGroupAddr,
  [in] DWORD  dwGroupMask,
  [in] DWORD  dwIfIndex,
  [in] DWORD  dwIfNextHopIPAddr,
  [in] DWORD  dwFlags
);

パラメーター

[in] hProtocol

MgmRegisterMProtocol の以前の呼び出しから取得したプロトコルを処理します。

[in] dwSourceAddr

マルチキャスト データの受信元の送信元アドレスを指定します。 すべてのソース (グループのワイルドカード レシーバー) からデータを受信するには、0 を指定します。それ以外の場合は、ソースまたはソース ネットワークの IP アドレスを指定します。

ソース アドレスの範囲を指定するには、 dwSourceAddr を使用してソース ネットワークを指定し、 dwSourceMask を使用してサブネット マスクを指定します。

[in] dwSourceMask

dwSourceAddr に対応するサブネット マスクを指定します。 dwSourceAddr パラメーターと dwSourceMask パラメーターを一緒に使用して、マルチキャスト データを受信するソースの範囲を定義します。

dwSourceAddr (ワイルドカード レシーバー) に 0 が指定されている場合は、このパラメーターに 0 を指定します。

[in] dwGroupAddr

データを受信するマルチキャスト グループを指定します。 すべてのグループ (ワイルドカード レシーバー) を受信するには、0 を指定します。それ以外の場合は、グループの IP アドレスを指定します。

グループ アドレスの範囲を指定するには、 dwGroupAddr を使用してグループ アドレスを指定し、 dwGroupMask を使用してサブネット マスクを指定します。

[in] dwGroupMask

dwGroupAddr に対応するサブネット マスクを指定します。 dwGroupAddr パラメーターと dwGroupMask パラメーターは、マルチキャスト グループの範囲を定義するために一緒に使用されます。

dwGroupAddr (ワイルドカード レシーバー) に 0 が指定されている場合は、このパラメーターに 0 を指定します。

[in] dwIfIndex

グループ メンバーシップを追加するインターフェイスを指定します。 指定したグループのマルチキャスト データは、このインターフェイス経由で転送されます。

[in] dwIfNextHopIPAddr

dwIfIndex で指定されたインデックスに対応する次ホップのアドレスを指定します。 dwIfIndex パラメーターと dwIfNextHopIPAddr パラメーターは、ポイント対マルチポイント インターフェイスの次ホップを一意に識別します。 ポイント対マルチポイント インターフェイスは、1 つのインターフェイスが複数のネットワークに接続する接続です。 ポイント対マルチポイント インターフェイスの例としては、非ブロードキャスト マルチ アクセス (NBMA) インターフェイスや、すべてのダイヤルアップ クライアントが接続する内部インターフェイスなどがあります。

ブロードキャスト インターフェイス (イーサネット インターフェイスなど) またはポイントツーポイント インターフェイス ( dwIfIndex の値によってのみ識別される) の場合は、0 を指定します。

[in] dwFlags

グループ メンバーシップを追加するときに実行する必要がある追加の処理を指定します。 有効な値は次のとおりです。

意味
MGM_JOIN_STATE_FLAG
指定したソースとグループのグループ メンバーシップを追加します。 指定したソース グループの転送エントリを更新して、この変更をグループ メンバーシップに反映させます。
MGM_FORWARD_STATE
指定したインターフェイスを、指定したソースとグループに対応する転送エントリの送信インターフェイスの一覧に追加します。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値は次のいずれかのエラー コードになります。

意味
ERROR_CAN_NOT_COMPLETE
この関数の呼び出しを完了できませんでした。
ERROR_INVALID_PARAMETER
プロトコルのハンドルが無効です。
ERROR_NOT_ENOUGH_MEMORY
この操作を完了するのに十分なメモリがありません。
 
 

注釈

このバージョンの MGM API では、ワイルドカード ソースまたは特定のソースのみがサポートされ、一連のソースはサポートされていません。 グループにも同じ制限が適用されます。つまり、グループ範囲は許可されません。

この関数が呼び出されると、マルチキャスト グループ マネージャーが PMGM_JOIN_ALERT_CALLBACK コールバックを呼び出して、指定したグループの新しい受信者があることを他のルーティング プロトコルに通知できます。

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mgm.h
Library Rtm.lib
[DLL] Rtm.dll

こちらもご覧ください

MgmDeleteGroupMembershipEntry

PMGM_JOIN_ALERT_CALLBACK