mingw-5.1.4/win32/include/mgm.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     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