mingw-5.1.4/win32/include/mgm.h
changeset 0 76b1f169d9fe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mingw-5.1.4/win32/include/mgm.h	Fri Apr 03 17:16:45 2009 +0100
@@ -0,0 +1,75 @@
+#ifndef _MGM_H
+#define _MGM_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if (_WIN32_WINNT >= 0x0500)
+#define MGM_JOIN_STATE_FLAG 0x00000001
+#define MGM_FORWARD_STATE_FLAG 0x00000002
+#define MGM_MFE_STATS_0 0x00000001
+#define MGM_MFE_STATS_1 0x00000002
+typedef enum _MGM_ENUM_TYPES {
+	ANY_SOURCE=0,
+	ALL_SOURCES
+} MGM_ENUM_TYPES;
+typedef struct _MGM_IF_ENTRY {
+	DWORD dwIfIndex;
+	DWORD dwIfNextHopAddr;
+	BOOL bIGMP;
+	BOOL bIsEnabled;
+} MGM_IF_ENTRY,*PMGM_IF_ENTRY;
+typedef DWORD(CALLBACK *PMGM_RPF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,PDWORD,PDWORD,PDWORD,DWORD,PBYTE,PBYTE);
+typedef DWORD(CALLBACK *PMGM_CREATION_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PMGM_IF_ENTRY);
+typedef DWORD(CALLBACK *PMGM_PRUNE_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,BOOL,PDWORD);
+typedef DWORD(CALLBACK *PMGM_JOIN_ALERT_CALLBACK)(DWORD,DWORD,DWORD,DWORD,BOOL);
+typedef DWORD(CALLBACK *PMGM_WRONG_IF_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,PBYTE);
+typedef DWORD(CALLBACK *PMGM_LOCAL_JOIN_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
+typedef DWORD(CALLBACK *PMGM_LOCAL_LEAVE_CALLBACK)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
+typedef DWORD(CALLBACK *PMGM_DISABLE_IGMP_CALLBACK)(DWORD,DWORD);
+typedef DWORD(CALLBACK *PMGM_ENABLE_IGMP_CALLBACK)(DWORD,DWORD);
+typedef struct _ROUTING_PROTOCOL_CONFIG {
+	DWORD dwCallbackFlags;
+	PMGM_RPF_CALLBACK pfnRpfCallback;
+	PMGM_CREATION_ALERT_CALLBACK pfnCreationAlertCallback;
+	PMGM_PRUNE_ALERT_CALLBACK pfnPruneAlertCallback;
+	PMGM_JOIN_ALERT_CALLBACK pfnJoinAlertCallback;
+	PMGM_WRONG_IF_CALLBACK pfnWrongIfCallback;
+	PMGM_LOCAL_JOIN_CALLBACK pfnLocalJoinCallback;
+	PMGM_LOCAL_LEAVE_CALLBACK pfnLocalLeaveCallback;
+	PMGM_DISABLE_IGMP_CALLBACK pfnDisableIgmpCallback;
+	PMGM_ENABLE_IGMP_CALLBACK pfnEnableIgmpCallback;
+} ROUTING_PROTOCOL_CONFIG,*PROUTING_PROTOCOL_CONFIG;
+typedef struct _SOURCE_GROUP_ENTRY {
+	DWORD dwSourceAddr;
+	DWORD dwSourceMask;
+	DWORD dwGroupAddr;
+	DWORD dwGroupMask;
+} SOURCE_GROUP_ENTRY,*PSOURCE_GROUP_ENTRY;
+DWORD WINAPI MgmAddGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
+DWORD WINAPI MgmDeleteGroupMembershipEntry(HANDLE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD);
+DWORD WINAPI MgmDeRegisterMProtocol(HANDLE);
+DWORD WINAPI MgmGetFirstMfe(PDWORD,PBYTE,PDWORD);
+DWORD WINAPI MgmGetFirstMfeStats(PDWORD,PBYTE,PDWORD,DWORD);
+DWORD WINAPI MgmGetMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE);
+DWORD WINAPI MgmGetMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,DWORD);
+DWORD WINAPI MgmGetNextMfe(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD);
+DWORD WINAPI MgmGetNextMfeStats(PMIB_IPMCAST_MFE,PDWORD,PBYTE,PDWORD,DWORD);
+DWORD WINAPI MgmGetProtocolOnInterface(DWORD,DWORD,PDWORD,PDWORD);
+DWORD WINAPI MgmGroupEnumerationEnd(HANDLE);
+DWORD WINAPI MgmGroupEnumerationGetNext(HANDLE,PDWORD,PBYTE,PDWORD);
+DWORD WINAPI MgmGroupEnumerationStart(HANDLE,MGM_ENUM_TYPES,HANDLE*);
+DWORD WINAPI MgmRegisterMProtocol(PROUTING_PROTOCOL_CONFIG,DWORD,DWORD,HANDLE*);
+DWORD WINAPI MgmReleaseInterfaceOwnership(HANDLE,DWORD,DWORD);
+DWORD WINAPI MgmSetMfe(HANDLE,PMIB_IPMCAST_MFE);
+DWORD WINAPI MgmTakeInterfaceOwnership(HANDLE,DWORD,DWORD);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif