source: Daodan/MinGW/include/mgm.h@ 1122

Last change on this file since 1122 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 3.1 KB
Line 
1#ifndef _MGM_H
2#define _MGM_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "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
16typedef enum _MGM_ENUM_TYPES {
17 ANY_SOURCE=0,
18 ALL_SOURCES
19} MGM_ENUM_TYPES;
20typedef struct _MGM_IF_ENTRY {
21 DWORD dwIfIndex;
22 DWORD dwIfNextHopAddr;
23 BOOL bIGMP;
24 BOOL bIsEnabled;
25} MGM_IF_ENTRY,*PMGM_IF_ENTRY;
26typedef DWORD(CALLBACK *PMGM_RPF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,PDWORD,PDWORD,PDWORD,DWORD,PBYTE,PBYTE);
27typedef DWORD(CALLBACK *PMGM_CREATION_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PMGM_IF_ENTRY);
28typedef DWORD(CALLBACK *PMGM_PRUNE_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,BOOL,PDWORD);
29typedef DWORD(CALLBACK *PMGM_JOIN_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,BOOL);
30typedef DWORD(CALLBACK *PMGM_WRONG_IF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,PBYTE);
31typedef DWORD(CALLBACK *PMGM_LOCAL_JOIN_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
32typedef DWORD(CALLBACK *PMGM_LOCAL_LEAVE_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
33typedef DWORD(CALLBACK *PMGM_DISABLE_IGMP_CALLBACK)(DWORD,DWORD);
34typedef DWORD(CALLBACK *PMGM_ENABLE_IGMP_CALLBACK)(DWORD,DWORD);
35typedef 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;
47typedef struct _SOURCE_GROUP_ENTRY {
48 DWORD dwSourceAddr;
49 DWORD dwSourceMask;
50 DWORD dwGroupAddr;
51 DWORD dwGroupMask;
52} SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY;
53DWORD WINAPI MgmAddGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
54DWORD WINAPI MgmDeleteGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
55DWORD WINAPI MgmDeRegisterMProtocol(HANDLE);
56DWORD WINAPI MgmGetFirstMfe(PDWORD,PBYTE,PDWORD);
57DWORD WINAPI MgmGetFirstMfeStats(PDWORD,PBYTE,PDWORD,DWORD);
58DWORD WINAPI MgmGetMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE);
59DWORD WINAPI MgmGetMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,DWORD);
60DWORD WINAPI MgmGetNextMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD);
61DWORD WINAPI MgmGetNextMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD,DWORD);
62DWORD WINAPI MgmGetProtocolOnInterface(DWORD,DWORD,PDWORD,PDWORD);
63DWORD WINAPI MgmGroupEnumerationEnd(HANDLE);
64DWORD WINAPI MgmGroupEnumerationGetNext(HANDLE,PDWORD,PBYTE,PDWORD);
65DWORD WINAPI MgmGroupEnumerationStart(HANDLE,MGM_ENUM_TYPES,HANDLE*);
66DWORD WINAPI MgmRegisterMProtocol(PROUTING_PROTOCOL_CONFIG,DWORD,DWORD,HANDLE*);
67DWORD WINAPI MgmReleaseInterfaceOwnership(HANDLE,DWORD,DWORD);
68DWORD WINAPI MgmSetMfe(HANDLE,PMIB_IPMCAST_MFE);
69DWORD WINAPI MgmTakeInterfaceOwnership(HANDLE,DWORD,DWORD);
70#endif
71
72#ifdef __cplusplus
73}
74#endif
75#endif
Note: See TracBrowser for help on using the repository browser.