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 を呼び出すことで特定のエラー コードを取得できます。

エラー コード 意味
WSAENOBUFS
バッファー領域が不足しています。
WSAENOTSOCK
記述子はソケットではありません。

注釈

getsourcefilter インライン関数は、IPv4 または IPv6 ソケットのマルチキャスト フィルター状態を取得するために使用されます。

アプリがソース リストのサイズを事前に把握していない場合は、推測を行うことができます (たとえば、0)。 完了時に SourceCount パラメーターが大きな値を保持する場合は、十分な大きさのバッファーで操作を繰り返すことができます。

返されると、 SourceCount パラメーターは常にフィルター内のソースの合計数に更新されますが、 SourceList パラメーターが指すバッファーは、元の SourceCount 値とフィルター内のソースの合計数として渡される配列サイズの最小値まで、適合する数のソース アドレスを保持します。

この関数は、RFC 3678 で定義されているマルチキャスト ソース フィルターのソケット インターフェイス拡張機能の一部です。 アプリでは、これらの関数を使用して、ソケットに関連付けられているマルチキャスト ソース アドレス フィルターを取得および設定できます。

Windows Phone 8: この関数は、Windows Phone 8 以降のWindows Phone ストア アプリでサポートされています。

Windows 8.1Windows 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

こちらもご覧ください

MULTICAST_MODE_TYPE

SOCKADDR_STORAGE

getipv4sourcefilter

setipv4sourcefilter

setsourcefilter