IF_CHECK_*,IF_CONNECTION_*,IF_ADMIN_*,IF_OPER_*): Define. * include/winbase.h (CancelWaitableTimer,UnregisterWait): Add function declaration. * include/mgm.h: New file. * lib/rtm.def: New file. Thanks to: Bruce M Simpson <bms_spc at sf dot net>
		
			
				
	
	
		
			76 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#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
 |