getsourcefilter 関数 (ws2tcpip.h)
getsourcefilter インライン関数は、IPv4 または IPv6 ソケットのマルチキャスト フィルター状態を取得します。
構文
int getsourcefilter(
[in] SOCKET Socket,
[in] ULONG Interface,
[in] const SOCKADDR *Group,
[in] int GroupLength,
[out] MULTICAST_MODE_TYPE *FilterMode,
[in, out] ULONG *SourceCount,
[out] SOCKADDR_STORAGE *SourceList
);
パラメーター
[in] Socket
マルチキャスト ソケットを識別する記述子。
[in] Interface
マルチキャスト インターフェイスのインターフェイス インデックス。
[in] Group
マルチキャスト グループのソケット アドレスへのポインター。
[in] GroupLength
Group パラメーターが指すソケット アドレスの長さ (バイト単位)。
[out] FilterMode
関数が戻るときにマルチキャスト グループ アドレスのマルチキャスト フィルター モードを受信する値へのポインター。
[in, out] SourceCount
入力時に、 SourceList パラメーターが指すバッファーに収まるソース アドレスの最大数を示す値へのポインター。
出力時に、マルチキャスト フィルターに関連付けられているソース アドレスの合計数を示す値へのポインター。
[out] SourceList
マルチキャスト フィルターに関連付けられている IP アドレスの一覧を受信するバッファーへのポインター。
入力時に SourceCount が 0 の場合は、 NULL ポインターを指定できます。
戻り値
成功すると、 getsourcefilter は NO_ERROR (0) を返します。 0 以外の戻り値はエラーを示し、 WSAGetLastError を呼び出すことで特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
バッファー領域が不足しています。 | |
記述子はソケットではありません。 |
注釈
getsourcefilter インライン関数は、IPv4 または IPv6 ソケットのマルチキャスト フィルター状態を取得するために使用されます。
アプリがソース リストのサイズを事前に把握していない場合は、推測を行うことができます (たとえば、0)。 完了時に SourceCount パラメーターが大きな値を保持する場合は、十分な大きさのバッファーで操作を繰り返すことができます。
返されると、 SourceCount パラメーターは常にフィルター内のソースの合計数に更新されますが、 SourceList パラメーターが指すバッファーは、元の SourceCount 値とフィルター内のソースの合計数として渡される配列サイズの最小値まで、適合する数のソース アドレスを保持します。
この関数は、RFC 3678 で定義されているマルチキャスト ソース フィルターのソケット インターフェイス拡張機能の一部です。 アプリでは、これらの関数を使用して、ソケットに関連付けられているマルチキャスト ソース アドレス フィルターを取得および設定できます。
Windows Phone 8: この関数は、Windows Phone 8 以降のWindows Phone ストア アプリでサポートされています。
Windows 8.1とWindows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストア アプリでサポートされています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1、 Windows Vista [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | ws2tcpip.h |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |