source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mgm.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 4.4 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _MGM_H_
7#define _MGM_H_
8
9typedef struct _MGM_IF_ENTRY {
10 DWORD dwIfIndex;
11 DWORD dwIfNextHopAddr;
12 WINBOOL bIGMP;
13 WINBOOL bIsEnabled;
14} MGM_IF_ENTRY,*PMGM_IF_ENTRY;
15
16typedef DWORD (*PMGM_RPF_CALLBACK)(DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,PDWORD pdwInIfIndex,PDWORD pdwInIfNextHopAddr,PDWORD pdwUpStreamNbr,DWORD dwHdrSize,PBYTE pbPacketHdr,PBYTE pbRoute);
17typedef DWORD (*PMGM_CREATION_ALERT_CALLBACK)(DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwInIfIndex,DWORD dwInIfNextHopAddr,DWORD dwIfCount,PMGM_IF_ENTRY pmieOutIfList);
18typedef DWORD (*PMGM_PRUNE_ALERT_CALLBACK)(DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwIfIndex,DWORD dwIfNextHopAddr,WINBOOL bMemberDelete,PDWORD pdwTimeout);
19typedef DWORD (*PMGM_JOIN_ALERT_CALLBACK)(DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,WINBOOL bMemberUpdate);
20typedef DWORD (*PMGM_WRONG_IF_CALLBACK)(DWORD dwSourceAddr,DWORD dwGroupAddr,DWORD dwIfIndex,DWORD dwIfNextHopAddr,DWORD dwHdrSize,PBYTE pbPacketHdr);
21typedef DWORD (*PMGM_LOCAL_JOIN_CALLBACK) (DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwIfIndex,DWORD dwIfNextHopAddr);
22typedef DWORD (*PMGM_LOCAL_LEAVE_CALLBACK) (DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwIfIndex,DWORD dwIfNextHopAddr);
23typedef DWORD (*PMGM_DISABLE_IGMP_CALLBACK) (DWORD dwIfIndex,DWORD dwIfNextHopAddr);
24typedef DWORD (*PMGM_ENABLE_IGMP_CALLBACK) (DWORD dwIfIndex,DWORD dwIfNextHopAddr);
25
26typedef struct _ROUTING_PROTOCOL_CONFIG {
27 DWORD dwCallbackFlags;
28 PMGM_RPF_CALLBACK pfnRpfCallback;
29 PMGM_CREATION_ALERT_CALLBACK pfnCreationAlertCallback;
30 PMGM_PRUNE_ALERT_CALLBACK pfnPruneAlertCallback;
31 PMGM_JOIN_ALERT_CALLBACK pfnJoinAlertCallback;
32 PMGM_WRONG_IF_CALLBACK pfnWrongIfCallback;
33 PMGM_LOCAL_JOIN_CALLBACK pfnLocalJoinCallback;
34 PMGM_LOCAL_LEAVE_CALLBACK pfnLocalLeaveCallback;
35 PMGM_DISABLE_IGMP_CALLBACK pfnDisableIgmpCallback;
36 PMGM_ENABLE_IGMP_CALLBACK pfnEnableIgmpCallback;
37} ROUTING_PROTOCOL_CONFIG,*PROUTING_PROTOCOL_CONFIG;
38
39typedef enum _MGM_ENUM_TYPES {
40 ANY_SOURCE = 0,ALL_SOURCES
41} MGM_ENUM_TYPES;
42
43typedef struct _SOURCE_GROUP_ENTRY {
44 DWORD dwSourceAddr;
45 DWORD dwSourceMask;
46 DWORD dwGroupAddr;
47 DWORD dwGroupMask;
48} SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY;
49
50#define MGM_JOIN_STATE_FLAG 0x00000001
51#define MGM_FORWARD_STATE_FLAG 0x00000002
52
53#define MGM_MFE_STATS_0 0x00000001
54#define MGM_MFE_STATS_1 0x00000002
55
56DWORD MgmRegisterMProtocol(PROUTING_PROTOCOL_CONFIG prpiInfo,DWORD dwProtocolId,DWORD dwComponentId,HANDLE *phProtocol);
57DWORD MgmDeRegisterMProtocol(HANDLE hProtocol);
58DWORD MgmTakeInterfaceOwnership(HANDLE hProtocol,DWORD dwIfIndex,DWORD dwIfNextHopAddr);
59DWORD MgmReleaseInterfaceOwnership(HANDLE hProtocol,DWORD dwIfIndex,DWORD dwIfNextHopAddr);
60DWORD MgmGetProtocolOnInterface(DWORD dwIfIndex,DWORD dwIfNextHopAddr,PDWORD pdwIfProtocolId,PDWORD pdwIfComponentId);
61DWORD MgmAddGroupMembershipEntry(HANDLE hProtocol,DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwIfIndex,DWORD dwIfNextHopIPAddr,DWORD dwFlags);
62DWORD MgmDeleteGroupMembershipEntry(HANDLE hProtocol,DWORD dwSourceAddr,DWORD dwSourceMask,DWORD dwGroupAddr,DWORD dwGroupMask,DWORD dwIfIndex,DWORD dwIfNextHopIPAddr,DWORD dwFlags);
63DWORD MgmGetMfe(PMIB_IPMCAST_MFE pimm,PDWORD pdwBufferSize,PBYTE pbBuffer);
64DWORD MgmGetFirstMfe(PDWORD pdwBufferSize,PBYTE pbBuffer,PDWORD pdwNumEntries);
65DWORD MgmGetNextMfe(PMIB_IPMCAST_MFE pimmStart,PDWORD pdwBufferSize,PBYTE pbBuffer,PDWORD pdwNumEntries);
66DWORD MgmGetMfeStats(PMIB_IPMCAST_MFE pimm,PDWORD pdwBufferSize,PBYTE pbBuffer,DWORD dwFlags);
67DWORD MgmGetFirstMfeStats(PDWORD pdwBufferSize,PBYTE pbBuffer,PDWORD pdwNumEntries,DWORD dwFlags);
68DWORD MgmGetNextMfeStats(PMIB_IPMCAST_MFE pimmStart,PDWORD pdwBufferSize,PBYTE pbBuffer,PDWORD pdwNumEntries,DWORD dwFlags);
69DWORD MgmGroupEnumerationStart(HANDLE hProtocol,MGM_ENUM_TYPES metEnumType,HANDLE *phEnumHandle);
70DWORD MgmGroupEnumerationGetNext(HANDLE hEnum,PDWORD pdwBufferSize,PBYTE pbBuffer,PDWORD pdwNumEntries);
71DWORD MgmGroupEnumerationEnd(HANDLE hEnum);
72DWORD MgmSetMfe(HANDLE hProtocol,PMIB_IPMCAST_MFE pmimm);
73
74#endif
Note: See TracBrowser for help on using the repository browser.