diff -r 000000000000 -r 76b1f169d9fe mingw-5.1.4/win32/include/mgm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mingw-5.1.4/win32/include/mgm.h Fri Apr 03 17:16:45 2009 +0100 @@ -0,0 +1,75 @@ +#ifndef _MGM_H +#define _MGM_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if (_WIN32_WINNT >= 0x0500) +#define MGM_JOIN_STATE_FLAG 0x00000001 +#define MGM_FORWARD_STATE_FLAG 0x00000002 +#define MGM_MFE_STATS_0 0x00000001 +#define MGM_MFE_STATS_1 0x00000002 +typedef enum _MGM_ENUM_TYPES { + ANY_SOURCE=0, + ALL_SOURCES +} MGM_ENUM_TYPES; +typedef struct _MGM_IF_ENTRY { + DWORD dwIfIndex; + DWORD dwIfNextHopAddr; + BOOL bIGMP; + BOOL bIsEnabled; +} MGM_IF_ENTRY,*PMGM_IF_ENTRY; +typedef DWORD(CALLBACK *PMGM_RPF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,PDWORD,PDWORD,PDWORD,DWORD,PBYTE,PBYTE); +typedef DWORD(CALLBACK *PMGM_CREATION_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PMGM_IF_ENTRY); +typedef DWORD(CALLBACK *PMGM_PRUNE_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,BOOL,PDWORD); +typedef DWORD(CALLBACK *PMGM_JOIN_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,BOOL); +typedef DWORD(CALLBACK *PMGM_WRONG_IF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,PBYTE); +typedef DWORD(CALLBACK *PMGM_LOCAL_JOIN_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_LOCAL_LEAVE_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_DISABLE_IGMP_CALLBACK)(DWORD,DWORD); +typedef DWORD(CALLBACK *PMGM_ENABLE_IGMP_CALLBACK)(DWORD,DWORD); +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,*PROUTING_PROTOCOL_CONFIG; +typedef struct _SOURCE_GROUP_ENTRY { + DWORD dwSourceAddr; + DWORD dwSourceMask; + DWORD dwGroupAddr; + DWORD dwGroupMask; +} SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY; +DWORD WINAPI MgmAddGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +DWORD WINAPI MgmDeleteGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD); +DWORD WINAPI MgmDeRegisterMProtocol(HANDLE); +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 MgmSetMfe(HANDLE,PMIB_IPMCAST_MFE); +DWORD WINAPI MgmTakeInterfaceOwnership(HANDLE,DWORD,DWORD); +#endif + +#ifdef __cplusplus +} +#endif +#endif