PMGM_JOIN_ALERT_CALLBACK
コールバックシグネチャ
DWORD PMGM_JOIN_ALERT_CALLBACK(
DWORD dwSourceAddr,
DWORD dwSourceMask,
DWORD dwGroupAddr,
DWORD dwGroupMask,
BOOL bMemberUpdate
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| dwSourceAddr | DWORD | マルチキャストデータの受信元となるソースアドレスを指定します。0 は、すべてのソースからデータを受信することを示します (グループに対するワイルドカード受信者)。それ以外の場合、dwSourceAddr の値はソースまたはソースネットワークの IP アドレスです。 ソースアドレスの範囲を指定するには、マルチキャストグループマネージャーは dwSourceAddr でソースネットワークを指定し、dwSourceMask でサブネットマスクを指定します。 |
| dwSourceMask | DWORD | dwSourceAddr に対応するサブネットマスクを指定します。dwSourceAddr パラメーターと dwSourceMask パラメーターは、マルチキャストデータを受信するソースの範囲を定義するために組み合わせて使用されます。 マルチキャストグループマネージャーは、dwSourceAddr にも 0 を指定した場合 (ワイルドカード受信者)、このパラメーターに 0 を指定します。 |
| dwGroupAddr | DWORD | データの宛先となるマルチキャストグループを指定します。0 は、すべてのグループを受信することを示します (ワイルドカード受信者)。それ以外の場合、dwGroupAddr の値はグループの IP アドレスです。 グループアドレスの範囲を指定するには、マルチキャストグループマネージャーは dwGroupAddr でグループアドレスを指定し、dwGroupMask でサブネットマスクを指定します。 |
| dwGroupMask | DWORD | dwGroupAddr に対応するサブネットマスクを指定します。dwGroupAddr パラメーターと dwGroupMask パラメーターは、マルチキャストグループの範囲を定義するために組み合わせて使用されます。 マルチキャストグループマネージャーは、dwGroupAddr にも 0 を指定した場合 (ワイルドカード受信者)、このパラメーターに 0 を指定します。 |
| bMemberUpdate | BOOL | このコールバックが呼び出された理由が、クライアントによる MgmAddGroupMembershipEntry の呼び出しであるか (この場合、マルチキャストグループマネージャーはこのパラメーターを TRUE に設定します)、MFE の作成または更新であるか (この場合、マルチキャストグループマネージャーはこのパラメーターを FALSE に設定します) を示します。 |
公式ドキュメント
PMGM_JOIN_ALERT_CALLBACK コールバックは、他のルーティングプロトコルが所有するインターフェイス上で 1 つ以上のグループに対する新しい受信者が存在することを、ルーティングプロトコルに通知するための呼び出しです。ルーティングプロトコルは、このコールバックを受け取った時点で、指定されたソースおよびグループのマルチキャストデータの転送を開始する必要があります。
戻り値
RRAS は、アプリケーションが特定の値を返すことを想定していません。返された値は RRAS によって無視されます。
解説(Remarks)
クライアントが (s, g)、(, g)、または (, *) のエントリに対して MgmAddGroupMembershipEntry 関数を呼び出した場合 (つまりグループメンバーシップが変更された場合)、マルチキャストグループマネージャーは bMemberUpdate パラメーターを TRUE に設定し、このコールバックを呼び出します。
MFE の送信インターフェイスリストが変更された場合、マルチキャストグループマネージャーは bMemberUpdate パラメーターを FALSE に設定します。この変更は通常、その MFE に対応するグループのメンバーシップが変化したときに発生します。
マルチキャストルーティングプロトコルは、bMemberUpdate パラメーターを使用して、グループメンバーシップの変更と MFE の変更を区別できます。
このコールバックを受け取ったときにルーティングプロトコルが行う処理は、プロトコル固有です。プロトコルの仕様上それが正しい動作であるならば、プロトコルは bMemberUpdate パラメーターが FALSE に設定されている場合にこのコールバックを無視してもかまいません。
MgmAddGroupMembershipEntry が呼び出されると、マルチキャストグループマネージャーはこのコールバックを使用して、指定されたソースおよびグループに対する受信者が存在することを他のマルチキャストグループマネージャークライアントに通知します。
マルチキャストグループマネージャーは、ワイルドカード (*, g) の参加に対してこのコールバックを呼び出すタイミングを、次の規則に従って決定します。
- あるグループについてインターフェイス上に受信者が存在することをマルチキャストグループマネージャーに通知した最初のクライアントである場合、マルチキャストグループマネージャーは登録された他のすべてのクライアントに対して PMGM_JOIN_ALERT_CALLBACK コールバックを呼び出します。
- あるグループについてインターフェイス上に受信者が存在することをマルチキャストグループマネージャーに通知した 2 番目のクライアントである場合、マルチキャストグループマネージャーは、そのグループに最初に参加したクライアントに対してこのコールバックを呼び出します。
マルチキャストグループマネージャーは、ソース固有 (s, g) の参加に対してこのコールバックを呼び出すタイミングを、次の規則に従って決定します。
- あるソースおよびグループについてインターフェイス上に受信者が存在することをマルチキャストグループマネージャーに通知した最初のクライアントである場合、マルチキャストグループマネージャーは、ソース "s" に向かう受信インターフェイスを所有するクライアントに対してのみ PMGM_JOIN_ALERT_CALLBACK コールバックを呼び出します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)