windows-nt/Source/XPSP1/NT/net/rras/ip/rtrmgr/mhrtbt.h
2020-09-26 16:20:57 +08:00

134 lines
1.8 KiB
C

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
routing\ip\rtrmgr\mhrtbt.h
Abstract:
Header for multicast heartbeat
Revision History:
Amritansh Raghav 26th Dec 1997 Created
--*/
#define MHBEAT_SOCKET_FLAGS \
(WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF)
typedef struct _MCAST_HBEAT_CB
{
BOOL bActive;
//
// The name/address of group
//
WCHAR pwszGroup[MAX_GROUP_LEN];
//
// The resolved address
//
DWORD dwGroup;
//
// Port or protocol
//
WORD wPort;
//
// Protocol or RAW
//
BYTE byProtocol;
//
// Set to TRUE if a gethostbyname is in progress
//
BOOL bResolutionInProgress;
//
// The socket for the interface
//
SOCKET sHbeatSocket;
//
// The dead interval in system ticks
//
ULONGLONG ullDeadInterval;
ULONGLONG ullLastHeard;
}MCAST_HBEAT_CB, *PMCAST_HBEAT_CB;
//
// Structure used to pass to worker function
//
typedef struct _HEARTBEAT_CONTEXT
{
DWORD dwIfIndex;
PICB picb;
WCHAR pwszGroup[MAX_GROUP_LEN];
}HEARTBEAT_CONTEXT, *PHEARTBEAT_CONTEXT;
//
// Forward function declarations
//
DWORD
SetMHeartbeatInfo(
IN PICB picb,
IN PRTR_INFO_BLOCK_HEADER pInfoHdr
);
DWORD
GetMHeartbeatInfo(
PICB picb,
PRTR_TOC_ENTRY pToc,
PBYTE pbDataPtr,
PRTR_INFO_BLOCK_HEADER pInfoHdr,
PDWORD pdwSize
);
DWORD
ActivateMHeartbeat(
IN PICB picb
);
DWORD
StartMHeartbeat(
IN PICB picb
);
DWORD
CreateHbeatSocket(
IN PICB picb
);
VOID
DeleteHbeatSocket(
IN PICB picb
);
DWORD
DeActivateMHeartbeat(
IN PICB picb
);
VOID
HandleMHeartbeatMessages(
VOID
);