PMGM_RPF_CALLBACK 콜백 함수(mgm.h)

PMGM_RPF_CALLBACK 콜백은 지정된 패킷이 올바른 인터페이스에서 수신되었는지 확인하기 위해 라우팅 프로토콜을 호출하는 것입니다.

이 콜백은 새 원본 또는 새 그룹으로 향하는 패킷이 수신될 때 호출됩니다. 멀티캐스트 그룹 관리자는 원본에 대해 들어오는 인터페이스를 소유하는 라우팅 프로토콜에 대한 이 콜백을 호출합니다.

구문

PMGM_RPF_CALLBACK PmgmRpfCallback;

DWORD PmgmRpfCallback(
  [in]      DWORD dwSourceAddr,
  [in]      DWORD dwSourceMask,
  [in]      DWORD dwGroupAddr,
  [in]      DWORD dwGroupMask,
  [in, out] PDWORD pdwInIfIndex,
  [in, out] PDWORD pdwInIfNextHopAddr,
  [in, out] PDWORD pdwUpStreamNbr,
  [in]      DWORD dwHdrSize,
  [in]      PBYTE pbPacketHdr,
  [in, out] PBYTE pbRoute
)
{...}

매개 변수

[in] dwSourceAddr

멀티캐스트 데이터를 받은 원본 주소를 지정합니다. 0은 모든 원본(그룹에 대한 와일드카드 수신기)에서 데이터를 수신했음을 나타냅니다. 그렇지 않으면 dwSourceAddr 값은 원본 또는 원본 네트워크의 IP 주소입니다.

원본 주소 범위를 지정하기 위해 멀티캐스트 그룹 관리자는 dwSourceAddr을 사용하여 원본 네트워크를 지정하고 dwSourceMask를 사용하여 서브넷 마스크를 지정합니다.

[in] dwSourceMask

dwSourceAddr에 해당하는 서브넷 마스크를 지정합니다. dwSourceAddrdwSourceMask 매개 변수는 멀티캐스트 데이터를 받을 원본 범위를 정의하는 데 함께 사용됩니다.

멀티캐스트 그룹 관리자는 dwSourceAddr (와일드카드 수신기)에도 0을 지정한 경우 이 매개 변수에 대해 0을 지정합니다.

[in] dwGroupAddr

데이터를 대상으로 하는 멀티캐스트 그룹을 지정합니다. 0은 모든 그룹이 수신됨(와일드카드 수신기)을 나타냅니다. 그렇지 않으면 dwGroupAddr 값이 그룹의 IP 주소입니다.

그룹 주소 범위를 지정하기 위해 멀티캐스트 그룹 관리자는 dwGroupAddr을 사용하여 그룹 주소를 지정하고 dwGroupMask를 사용하여 서브넷 마스크를 지정합니다.

[in] dwGroupMask

dwGroupAddr에 해당하는 서브넷 마스크를 지정합니다. dwGroupAddrdwGroupMask 매개 변수는 멀티캐스트 그룹의 범위를 정의하는 데 함께 사용됩니다.

멀티캐스트 그룹 관리자는 dwGroupAddr (와일드카드 수신기)에도 0을 지정한 경우 이 매개 변수에 대해 0을 지정합니다.

[in, out] pdwInIfIndex

입력 시 라우팅 테이블의 멀티캐스트 뷰를 기반으로 원본에서 데이터를 수신할 것으로 예상되는 인터페이스의 인덱스를 지정하는 DWORD 크기의 메모리 위치에 대한 포인터입니다.

출력에서 pdwInIfIndex 는 프로토콜이 패킷을 수신해야 하는 인터페이스의 인덱스를 포함하는 DWORD 크기의 메모리 위치를 가리킵니다. 인터페이스 인덱스가 입력에 지정된 인덱스 출력과 다를 수 있습니다.

[in, out] pdwInIfNextHopAddr

입력 시 pdwInIfNextHopAddrdwIfIndex에서 지정한 인덱스에 해당하는 다음 홉의 주소를 지정합니다.

dwIfIndexdwIfNextHopIPAddr 매개 변수는 지점 및 다중 지점 인터페이스에서 다음 홉을 고유하게 식별합니다. 지점 및 다중 지점 인터페이스는 하나의 인터페이스가 여러 네트워크에 연결되는 연결입니다. 지점 및 다중 지점 인터페이스의 예로는 NBMA(비 브로드캐스트 다중 액세스) 인터페이스 및 모든 전화 접속 클라이언트가 연결하는 내부 인터페이스가 있습니다.

dwIfIndex 값으로만 식별되는 브로드캐스트 인터페이스(예: 이더넷 인터페이스) 또는 지점 및 지점 인터페이스의 경우 0을 지정합니다.

출력에서 pdwInIfNextHopAddrpdwInIfIndex에 해당하는 다음 홉을 가리킵니다.

[in, out] pdwUpStreamNbr

입력에서 pdwUpStreamNbr은 원본에 대한 직접 업스트림 인접을 지정하는 DWORD 값을 가리킵니다(원본은 라우팅 테이블의 멀티캐스트 뷰에서 찾을 수 있습니다).

출력에서 pdwUpStreamNbr 은 프로토콜에 의해 수정되었을 수 있습니다. 이 매개 변수는 정보용으로만 사용됩니다.

[in] dwHdrSize

pbPacketHdr에서 가리키는 버퍼의 크기를 바이트 단위로 지정합니다.

[in] pbPacketHdr

IP 옵션 및 데이터 조각을 포함하여 패킷의 IP 헤더를 포함하는 버퍼에 대한 포인터입니다. 이 매개 변수는 패킷 헤더의 내용을 검사하는 프로토콜에서 사용됩니다.

[in, out] pbRoute

입력에서 pbRoute 는 원본을 향한 경로가 포함된 버퍼를 가리킵니다. 버퍼에는 RTM_DEST_INFO 구조체가 포함되어 있습니다.

출력에서 pbRoute 는 프로토콜에서 소스에 대한 인터페이스를 결정하는 데 사용하는 경로가 포함된 버퍼를 가리킵니다.

반환 값

RRAS는 애플리케이션이 특정 값을 반환할 것으로 기대하지 않습니다. 반환된 모든 값은 RRAS에서 무시됩니다.

설명

이 콜백은 MFE를 만들 때 호출됩니다. MFE는 새 멀티캐스트 원본의 데이터를 받거나 새 그룹으로 향하는 데이터를 수신할 때 생성됩니다.

멀티캐스트 그룹 관리자는 원본에 대해 들어오는 인터페이스를 소유하는 라우팅 프로토콜에 대한 이 콜백을 호출합니다. 멀티캐스트 그룹 관리자는 라우팅 테이블의 멀티캐스트 뷰에서 멀티캐스트 데이터의 원본을 조회하여 인터페이스를 결정합니다. 이 인터페이스는 데이터가 실제로 수신된 인터페이스와 항상 동일하지는 않습니다. 이 조건은 잘못된 인터페이스에서 멀티캐스트 데이터를 받은 경우에 발생합니다.

이 콜백이 호출되면 라우팅 프로토콜 동작에 따라 다른 인터페이스에서 그룹의 데이터를 수신해야 하는 경우 라우팅 프로토콜이 들어오는 인터페이스를 변경할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 지원되는 버전 없음
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 mgm.h