共用方式為


PMGM_PRUNE_ALERT_CALLBACK回呼函式 (mgm.h)

PMGM_PRUNE_ALERT_CALLBACK回呼是路由通訊協定的呼叫,以通知通訊協定的接收者不再存在於其他路由通訊協定所擁有的介面上。

語法

PMGM_PRUNE_ALERT_CALLBACK PmgmPruneAlertCallback;

DWORD PmgmPruneAlertCallback(
  [in]      DWORD dwSourceAddr,
  [in]      DWORD dwSourceMask,
  [in]      DWORD dwGroupAddr,
  [in]      DWORD dwGroupMask,
  [in]      DWORD dwIfIndex,
  [in]      DWORD dwIfNextHopAddr,
  [in]      BOOL bMemberDelete,
  [in, out] PDWORD pdwTimeout
)
{...}

參數

[in] dwSourceAddr

指定要停止接收多播數據的來源位址。 零表示停止接收來自所有來源的數據, (群組的通配符接收者) ;否則, dwSourceAddr 的值是來源或來源網路的IP位址。

若要指定來源位址的範圍,多播群組管理員會使用 dwSourceAddr 指定來源網路,並使用 dwSourceMask 指定子網掩碼。

[in] dwSourceMask

指定對應至 dwSourceAddr 的子網掩碼。 dwSourceAddrdwSourceMask 參數會一起使用,以定義從中停止接收多播數據的來源範圍。

如果多播群組管理員也為 dwSourceAddr 指定零,則會指定此參數的零, (通配符接收者) 。

[in] dwGroupAddr

指定要停止接收數據的多播群組。 零表示停止接收所有群組的數據, (通配符接收者) ;否則, dwGroupAddr 的值是群組的IP位址。

若要指定群組位址的範圍,多播群組管理員會使用 dwGroupAddr 指定群組位址,並使用 dwGroupMask 指定子網掩碼。

[in] dwGroupMask

指定對應至 dwGroupAddr 的子網掩碼。 dwGroupAddrdwGroupMask 參數會一起使用來定義多播群組的範圍。

如果多播群組管理員也針對 dwGroupAddr 指定零,則會指定此參數的零, (通配符接收者) 。

[in] dwIfIndex

指定要停止接收多播數據的介面。

[in] dwIfNextHopAddr

指定對應至 dwIfIndex 所指定索引之下一個躍點的位址。 dwIfIndexdwIfNextHopIPAddr 參數可唯一識別點對多點介面上的下一個躍點。 點對多點介面是一個連接,其中一個介面會連線到多個網路。 點對多點介面的範例包括非廣播多個存取 (NBMA) 介面,以及所有撥號用戶端連線的內部介面。

對於廣播介面 (例如乙太網路介面) 或點對點介面,這些介面只由 dwIfIndex 的值識別,請指定零。

[in] bMemberDelete

指定是否因為多播群組管理員呼叫 MgmAddGroupMembershipEntry 而叫用回呼, (多播群組管理員會將此參數設定為 TRUE) ,或是建立或更新 MFE, (多播群組管理員將此參數設定為 FALSE) 。

[in, out] pdwTimeout

在輸入時, pdwTimeout 會指向 DWORD 大小的記憶體位置。

如果 bMemberDeleteFALSE,這個參數可用來指定對應的 MFE 應該保留在多播轉送快取中的時間長度。 如果客戶端未指定值,預設值為 900 秒。

在輸出上, pdwTimeout 會接收此 MFE 的逾時值,以秒為單位。

傳回值

RRAS 不預期應用程式傳回任何特定值;RRAS 會忽略傳回的任何值。

備註

多播群組管理員會將 bMemberDelete 參數設定為 TRUE,如果用戶端呼叫 (s、g) 、g (、g) 或 (MgmDeleteGroupMembershipEntry 函式, () 則會叫用此回呼,也就是群組成員資格變更) 。

如果 MFE 的傳出介面清單變更,多播群組管理員會將 bMemberDelete 參數設定為 FALSE 。 此變更通常是針對對應至 MFE 之群組的成員資格變更所發生。

多播路由通訊協定可以使用 bMemberDelete 參數來區別群組成員資格的變更和 MFE 的變更。

當收到此回呼時,路由通訊協定所採取的動作是通訊協定特定的。 如果 bMemberDelete 參數設定為 FALSE,如果通訊協議規格指出這是正確的行為,通訊協定可能會忽略回呼。

呼叫 MgmDeleteGroupMembershipEntry 時,多播群組管理員會使用此回呼來通知其他多播群組管理員用戶端,指定來源和群組沒有更多接收者。

多播群組管理員會使用下列規則來判斷何時要針對通配符 (*、g) 聯結叫用此回呼:

  • 如果針對第二對最後一個用戶端移除最後一個介面 (,也就是當單一用戶端的介面保持) 時,多播群組管理員會叫用該剩餘客戶端 的PMGM_PRUNE_ALERT_CALLBACK 回呼。
  • 如果最後一個用戶端 (移除最後一個介面,也就是說,當沒有任何其他介面保持) ,則會針對向多播群組管理員註冊的所有其他用戶端叫用此回呼。
多播群組管理員會使用下列規則來判斷何時要針對來源特定 (s、g) 聯結叫用此回呼:
  • 收到群組 (s 的來源特定剪除時,) 多播群組管理員只會針對擁有傳入介面的用戶端叫用 PMGM_PRUNE_ALERT_CALLBACK 回呼給來源 “s”。
此版本的多播群組管理員 API 僅支援通配符來源 (*、g) 或特定來源, (s、g) ,而非來源範圍。 相同的限制適用於群組 (亦即,不允許) 群組範圍。

規格需求

需求
最低支援的用戶端 都不支援
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 mgm.h

另請參閱

PMGM_CREATION_ALERT_CALLBACK