[1046] | 1 | #ifndef _MGM_H
|
---|
| 2 | #define _MGM_H
|
---|
| 3 | #if __GNUC__ >= 3
|
---|
| 4 | #pragma GCC system_header
|
---|
| 5 | #endif
|
---|
| 6 |
|
---|
| 7 | #ifdef __cplusplus
|
---|
| 8 | extern "C" {
|
---|
| 9 | #endif
|
---|
| 10 |
|
---|
| 11 | #if (_WIN32_WINNT >= 0x0500)
|
---|
| 12 | #define MGM_JOIN_STATE_FLAG 0x00000001
|
---|
| 13 | #define MGM_FORWARD_STATE_FLAG 0x00000002
|
---|
| 14 | #define MGM_MFE_STATS_0 0x00000001
|
---|
| 15 | #define MGM_MFE_STATS_1 0x00000002
|
---|
| 16 | typedef enum _MGM_ENUM_TYPES {
|
---|
| 17 | ANY_SOURCE=0,
|
---|
| 18 | ALL_SOURCES
|
---|
| 19 | } MGM_ENUM_TYPES;
|
---|
| 20 | typedef struct _MGM_IF_ENTRY {
|
---|
| 21 | DWORD dwIfIndex;
|
---|
| 22 | DWORD dwIfNextHopAddr;
|
---|
| 23 | BOOL bIGMP;
|
---|
| 24 | BOOL bIsEnabled;
|
---|
| 25 | } MGM_IF_ENTRY,*PMGM_IF_ENTRY;
|
---|
| 26 | typedef DWORD(CALLBACK *PMGM_RPF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,PDWORD,PDWORD,PDWORD,DWORD,PBYTE,PBYTE);
|
---|
| 27 | typedef DWORD(CALLBACK *PMGM_CREATION_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PMGM_IF_ENTRY);
|
---|
| 28 | typedef DWORD(CALLBACK *PMGM_PRUNE_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,BOOL,PDWORD);
|
---|
| 29 | typedef DWORD(CALLBACK *PMGM_JOIN_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,BOOL);
|
---|
| 30 | typedef DWORD(CALLBACK *PMGM_WRONG_IF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,PBYTE);
|
---|
| 31 | typedef DWORD(CALLBACK *PMGM_LOCAL_JOIN_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
|
---|
| 32 | typedef DWORD(CALLBACK *PMGM_LOCAL_LEAVE_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
|
---|
| 33 | typedef DWORD(CALLBACK *PMGM_DISABLE_IGMP_CALLBACK)(DWORD,DWORD);
|
---|
| 34 | typedef DWORD(CALLBACK *PMGM_ENABLE_IGMP_CALLBACK)(DWORD,DWORD);
|
---|
| 35 | typedef struct _ROUTING_PROTOCOL_CONFIG {
|
---|
| 36 | DWORD dwCallbackFlags;
|
---|
| 37 | PMGM_RPF_CALLBACK pfnRpfCallback;
|
---|
| 38 | PMGM_CREATION_ALERT_CALLBACK pfnCreationAlertCallback;
|
---|
| 39 | PMGM_PRUNE_ALERT_CALLBACK pfnPruneAlertCallback;
|
---|
| 40 | PMGM_JOIN_ALERT_CALLBACK pfnJoinAlertCallback;
|
---|
| 41 | PMGM_WRONG_IF_CALLBACK pfnWrongIfCallback;
|
---|
| 42 | PMGM_LOCAL_JOIN_CALLBACK pfnLocalJoinCallback;
|
---|
| 43 | PMGM_LOCAL_LEAVE_CALLBACK pfnLocalLeaveCallback;
|
---|
| 44 | PMGM_DISABLE_IGMP_CALLBACK pfnDisableIgmpCallback;
|
---|
| 45 | PMGM_ENABLE_IGMP_CALLBACK pfnEnableIgmpCallback;
|
---|
| 46 | } ROUTING_PROTOCOL_CONFIG,*PROUTING_PROTOCOL_CONFIG;
|
---|
| 47 | typedef struct _SOURCE_GROUP_ENTRY {
|
---|
| 48 | DWORD dwSourceAddr;
|
---|
| 49 | DWORD dwSourceMask;
|
---|
| 50 | DWORD dwGroupAddr;
|
---|
| 51 | DWORD dwGroupMask;
|
---|
| 52 | } SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY;
|
---|
| 53 | DWORD WINAPI MgmAddGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
|
---|
| 54 | DWORD WINAPI MgmDeleteGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
|
---|
| 55 | DWORD WINAPI MgmDeRegisterMProtocol(HANDLE);
|
---|
| 56 | DWORD WINAPI MgmGetFirstMfe(PDWORD,PBYTE,PDWORD);
|
---|
| 57 | DWORD WINAPI MgmGetFirstMfeStats(PDWORD,PBYTE,PDWORD,DWORD);
|
---|
| 58 | DWORD WINAPI MgmGetMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE);
|
---|
| 59 | DWORD WINAPI MgmGetMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,DWORD);
|
---|
| 60 | DWORD WINAPI MgmGetNextMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD);
|
---|
| 61 | DWORD WINAPI MgmGetNextMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD,DWORD);
|
---|
| 62 | DWORD WINAPI MgmGetProtocolOnInterface(DWORD,DWORD,PDWORD,PDWORD);
|
---|
| 63 | DWORD WINAPI MgmGroupEnumerationEnd(HANDLE);
|
---|
| 64 | DWORD WINAPI MgmGroupEnumerationGetNext(HANDLE,PDWORD,PBYTE,PDWORD);
|
---|
| 65 | DWORD WINAPI MgmGroupEnumerationStart(HANDLE,MGM_ENUM_TYPES,HANDLE*);
|
---|
| 66 | DWORD WINAPI MgmRegisterMProtocol(PROUTING_PROTOCOL_CONFIG,DWORD,DWORD,HANDLE*);
|
---|
| 67 | DWORD WINAPI MgmReleaseInterfaceOwnership(HANDLE,DWORD,DWORD);
|
---|
| 68 | DWORD WINAPI MgmSetMfe(HANDLE,PMIB_IPMCAST_MFE);
|
---|
| 69 | DWORD WINAPI MgmTakeInterfaceOwnership(HANDLE,DWORD,DWORD);
|
---|
| 70 | #endif
|
---|
| 71 |
|
---|
| 72 | #ifdef __cplusplus
|
---|
| 73 | }
|
---|
| 74 | #endif
|
---|
| 75 | #endif
|
---|