diff options
Diffstat (limited to 'winsup/w32api/include/mgm.h')
-rw-r--r-- | winsup/w32api/include/mgm.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/winsup/w32api/include/mgm.h b/winsup/w32api/include/mgm.h new file mode 100644 index 000000000..d8f0d8907 --- /dev/null +++ b/winsup/w32api/include/mgm.h @@ -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 |