getipv4sourcefilter 函式 (ws2tcpip.h)

getipv4sourcefilter內嵌函式會擷取 IPv4 通訊端的多播篩選狀態。

語法

int getipv4sourcefilter(
  [in]      SOCKET              Socket,
  [in]      IN_ADDR             Interface,
  [in]      IN_ADDR             Group,
  [out]     MULTICAST_MODE_TYPE *FilterMode,
  [in, out] ULONG               *SourceCount,
  [out]     IN_ADDR             *SourceList
);

參數

[in] Socket

識別多播通訊端的描述項。

[in] Interface

介面的本機 IPv4 位址,或應該加入或卸載多播群組的介面索引。

此值是以網路位元組順序排列。 如果此成員指定 0.0.0.0 的 IPv4 位址,則會使用預設的 IPv4 多播介面。

除了 IPv4 位址 0.0.0.0.0 以外,0.x.x 區塊中的任何 IP 位址都會被視為介面索引 (第一個) 八位。 介面索引是 24 位的數位,而且不會使用 0.0.0.0/8 IPv4 位址區塊, (保留此範圍) 。

若要使用 1 的介面索引,會與 0.0.0.1 的 IP 位址相同。

[in] Group

多播群組的 IPv4 位址。

[out] FilterMode

值指標,在函式傳回時接收多播群組位址的多播篩選模式。

[in, out] SourceCount

在輸入時,值的指標,指出 SourceList 參數所指向之緩衝區中的來源位址數目上限。

在輸出上,指出與多播篩選相關聯之來源位址總數的值指標。

[out] SourceList

緩衝區的指標,用來接收與多播篩選準則相關聯的 IP 位址清單。

如果 輸入的 SourceCount 為零,可能會提供 Null 指標。

傳回值

成功時, getipv4sourcefilter 會傳回 NO_ERROR (0) 。 任何非零的傳回值都表示失敗,而且可以呼叫 WSAGetLastError來擷取特定的錯誤碼。

錯誤碼 意義
WSAENOBUFS
緩衝區空間不足。
WSAENOTSOCK
描述項不是通訊端。

備註

getipv4sourcefilter內嵌函式可用來擷取 IPv4 通訊端的多播篩選狀態。

如果應用程式事先不知道來源清單的大小,它可以 (零進行猜測,例如) 。 如果完成時, SourceCount 參數會保留較大的值,則可以使用夠大的緩衝區來重複作業。

傳回時, SourceCount 參數一律會更新為篩選中的來源總數,而 SourceList 參數所指向的緩衝區會保留符合數目的來源位址數目,最多最多以原始 SourceCount 值和篩選準則中來源總數傳入的陣列大小下限。

此函式是 RFC 3678 中所定義多播來源篩選的通訊端介面延伸模組的一部分。 應用程式可以使用這些函式來擷取和設定與通訊端相關聯的多播來源位址篩選。

Windows Phone 8:Windows Phone 8 和更新版本Windows Phone市集應用程式支援此函式。

Windows 8.1Windows Server 2012 R2:Windows 市集應用程式支援此功能,Windows 8.1、Windows Server 2012 R2 及更新版本。

規格需求

   
最低支援的用戶端 Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 ws2tcpip.h
程式庫 Ws2_32.lib
Dll Ws2_32.dll

另請參閱

MULTICAST_MODE_TYPE

getsourcefilter

in_addr

setipv4sourcefilter

setsourcefilter