107 lines
4.1 KiB
C
107 lines
4.1 KiB
C
/*
|
|
* mgm.h Multicast Group Manager (MGM) functions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _MGM_H_
|
|
#define _MGM_H_
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Group manipulation flags */
|
|
#define MGM_JOIN_STATE_FLAG 0x00000001L
|
|
#define MGM_FORWARD_STATE_FLAG 0x00000002L
|
|
|
|
/* MGM MFE statistics flags */
|
|
#define MGM_MFE_STATS_0 0x00000001L
|
|
#define MGM_MFE_STATS_1 0x00000002L
|
|
|
|
/* MGM interface entry */
|
|
typedef struct _MGM_IF_ENTRY {
|
|
DWORD dwIfIndex;
|
|
DWORD dwIfNextHopAddr;
|
|
BOOL bIGMP;
|
|
BOOL bIsEnabled;
|
|
} MGM_IF_ENTRY;
|
|
typedef MGM_IF_ENTRY *PMGM_IF_ENTRY;
|
|
|
|
/* MGM callbacks */
|
|
typedef DWORD (WINAPI *PMGM_RPF_CALLBACK)( DWORD, DWORD, DWORD, DWORD, PDWORD, PDWORD, PDWORD, DWORD, PBYTE, PBYTE );
|
|
typedef DWORD (WINAPI *PMGM_CREATION_ALERT_CALLBACK)( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PMGM_IF_ENTRY );
|
|
typedef DWORD (WINAPI *PMGM_PRUNE_ALERT_CALLBACK)( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, BOOL, PDWORD );
|
|
typedef DWORD (WINAPI *PMGM_JOIN_ALERT_CALLBACK)( DWORD, DWORD, DWORD, DWORD, BOOL );
|
|
typedef DWORD (WINAPI *PMGM_WRONG_IF_CALLBACK)( DWORD, DWORD, DWORD, DWORD, DWORD, PBYTE );
|
|
typedef DWORD (WINAPI *PMGM_LOCAL_JOIN_CALLBACK)( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
|
|
typedef DWORD (WINAPI *PMGM_LOCAL_LEAVE_CALLBACK)( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
|
|
typedef DWORD (WINAPI *PMGM_DISABLE_IGMP_CALLBACK)( DWORD, DWORD );
|
|
typedef DWORD (WINAPI *PMGM_ENABLE_IGMP_CALLBACK)( DWORD, DWORD );
|
|
|
|
/* Routing protocol configuration */
|
|
typedef struct _ROUTING_PROTOCOL_CONFIG {
|
|
DWORD dwCallbackFlags;
|
|
PMGM_RPF_CALLBACK pfnRpfCallback;
|
|
PMGM_CREATION_ALERT_CALLBACK pfnCreationAlertCallback;
|
|
PMGM_PRUNE_ALERT_CALLBACK pfnPruneAlertCallback;
|
|
PMGM_JOIN_ALERT_CALLBACK pfnJoinAlertCallback;
|
|
PMGM_WRONG_IF_CALLBACK pfnWrongIfCallback;
|
|
PMGM_LOCAL_JOIN_CALLBACK pfnLocalJoinCallback;
|
|
PMGM_LOCAL_LEAVE_CALLBACK pfnLocalLeaveCallback;
|
|
PMGM_DISABLE_IGMP_CALLBACK pfnDisableIgmpCallback;
|
|
PMGM_ENABLE_IGMP_CALLBACK pfnEnableIgmpCallback;
|
|
} ROUTING_PROTOCOL_CONFIG;
|
|
typedef ROUTING_PROTOCOL_CONFIG *PROUTING_PROTOCOL_CONFIG;
|
|
|
|
/* MGM enumeration types */
|
|
typedef enum _MGM_ENUM_TYPES {
|
|
ANY_SOURCE = 0,
|
|
ALL_SOURCES = 1
|
|
} MGM_ENUM_TYPES;
|
|
|
|
/* Source group entry */
|
|
typedef struct _SOURCE_GROUP_ENTRY {
|
|
DWORD dwSourceAddr;
|
|
DWORD dwSourceMask;
|
|
DWORD dwGroupAddr;
|
|
DWORD dwGroupMask;
|
|
} SOURCE_GROUP_ENTRY;
|
|
typedef SOURCE_GROUP_ENTRY *PSOURCE_GROUP_ENTRY;
|
|
|
|
/* Functions in RTM.DLL */
|
|
DWORD WINAPI MgmAddGroupMembershipEntry( HANDLE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
|
|
DWORD WINAPI MgmDeRegisterMProtocol( HANDLE );
|
|
DWORD WINAPI MgmDeleteGroupMembershipEntry( HANDLE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD );
|
|
DWORD WINAPI MgmGetFirstMfe( PDWORD, PBYTE, PDWORD );
|
|
DWORD WINAPI MgmGetFirstMfeStats( PDWORD, PBYTE, PDWORD, DWORD );
|
|
DWORD WINAPI MgmGetMfe( PMIB_IPMCAST_MFE, PDWORD, PBYTE );
|
|
DWORD WINAPI MgmGetMfeStats( PMIB_IPMCAST_MFE, PDWORD, PBYTE, DWORD );
|
|
DWORD WINAPI MgmGetNextMfe( PMIB_IPMCAST_MFE, PDWORD, PBYTE, PDWORD );
|
|
DWORD WINAPI MgmGetNextMfeStats( PMIB_IPMCAST_MFE, PDWORD, PBYTE, PDWORD, DWORD );
|
|
DWORD WINAPI MgmGetProtocolOnInterface( DWORD, DWORD, PDWORD, PDWORD );
|
|
DWORD WINAPI MgmGroupEnumerationEnd( HANDLE );
|
|
DWORD WINAPI MgmGroupEnumerationGetNext( HANDLE, PDWORD, PBYTE, PDWORD );
|
|
DWORD WINAPI MgmGroupEnumerationStart( HANDLE, MGM_ENUM_TYPES, HANDLE * );
|
|
DWORD WINAPI MgmRegisterMProtocol( PROUTING_PROTOCOL_CONFIG, DWORD, DWORD, HANDLE * );
|
|
DWORD WINAPI MgmReleaseInterfaceOwnership( HANDLE, DWORD, DWORD );
|
|
DWORD WINAPI MgmTakeInterfaceOwnership( HANDLE, DWORD, DWORD );
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _MGM_H_ */
|