OSDN Git Service

Avoid an implication that the API is exclusively 32-bit.
[mingw/mingw-org-wsl.git] / wslapi / include / mgm.h
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