Merge branch 'perl-Encode' into devel
[git/jnareb-git.git] / mingw / include / mgm.h
blobd8f0d8907801ead1a223aa78ba8625797f65b84a
1 #ifndef _MGM_H
2 #define _MGM_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
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
72 #ifdef __cplusplus
74 #endif
75 #endif