Routprot.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:22k
- //depot/private/homenet/net/published/inc/routprot.w#2 - integrate change 4116 (text)
- /*++
- Copyright (c) Microsoft Corporation. All rights reserved.
- Module Name:
- routprot.h
- Abstract:
- Include file for Routing Protocol inteface to Router Managers
- --*/
- #ifndef _ROUTPROT_H_
- #define _ROUTPROT_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif
- #include "stm.h"
- #if _MSC_VER >= 1200
- #pragma warning(push)
- #endif
- #pragma warning(disable:4201)
- #pragma warning(disable:4200)
- #ifdef __cplusplus
- extern "C" {
- #endif
- //////////////////////////////////////////////////////////////////////////////
- // //
- // Supported functionality flags //
- // //
- // ROUTING Imports Routing Table Manager APIs //
- // SERVICES Exports Service Table Manager APIs //
- // DEMAND_UPDATE_ROUTES IP and IPX RIP support for Autostatic //
- // DEMAND_UPDATE_SERVICES IPX SAP, NLSP support for Autostatic //
- // ADD_ALL_INTERFACES Adds all interfaces, even if no info is present //
- // MULTICAST Supports multicast //
- // POWER Power Manageable //
- // //
- //////////////////////////////////////////////////////////////////////////////
- #define RF_ROUTING 0x00000001
- #define RF_DEMAND_UPDATE_ROUTES 0x00000004
- #define RF_ADD_ALL_INTERFACES 0x00000010
- #define RF_MULTICAST 0x00000020
- #define RF_POWER 0x00000040
- #if MPR50
- #define MS_ROUTER_VERSION 0x00000500
- #else
- #error Router version not defined
- #endif
- typedef enum _ROUTING_PROTOCOL_EVENTS
- {
- ROUTER_STOPPED, // Result is empty
- SAVE_GLOBAL_CONFIG_INFO, // Result is empty
- SAVE_INTERFACE_CONFIG_INFO, // Result is interface index
- // for which config info is to be saved.
- UPDATE_COMPLETE, // Result is UPDATE_COMPLETE_MESSAGE structure
- }ROUTING_PROTOCOL_EVENTS;
- typedef enum _NET_INTERFACE_TYPE
- {
- PERMANENT,
- DEMAND_DIAL,
- LOCAL_WORKSTATION_DIAL,
- REMOTE_WORKSTATION_DIAL
- } NET_INTERFACE_TYPE;
- //
- // Interface Receive Types
- //
- #define IR_PROMISCUOUS 0
- #define IR_PROMISCUOUS_MULTICAST 1
- typedef struct _SUPPORT_FUNCTIONS
- {
- union
- {
- ULONGLONG _Align8;
- struct
- {
- DWORD dwVersion;
- DWORD dwReserved;
- };
- };
- //
- // Function called by routing protocol to initiate demand dial connection
- //
- OUT DWORD
- (WINAPI *DemandDialRequest)(
- IN DWORD ProtocolId,
- IN DWORD InterfaceIndex
- ) ;
- //
- // Can be called to set the interface's receive capability
- // See IR_Xxx values above
- //
- OUT DWORD
- (WINAPI *SetInterfaceReceiveType)(
- IN DWORD ProtocolId,
- IN DWORD InterfaceIndex,
- IN DWORD InterfaceReceiveType,
- IN BOOL bActivate
- );
- //
- // Must be called by every protocol to set the route preference
- // and perform other validation
- //
- OUT DWORD
- (WINAPI *ValidateRoute)(
- IN DWORD ProtocolId,
- IN PVOID RouteInfo,
- IN PVOID DestAddress OPTIONAL
- );
- //
- // The following entrypoints are provided as a way for getting
- // information that spans components
- //
- OUT DWORD
- (WINAPI *MIBEntryCreate)(
- IN DWORD dwRoutingPid,
- IN DWORD dwEntrySize,
- IN LPVOID lpEntry
- );
- OUT DWORD
- (WINAPI *MIBEntryDelete)(
- IN DWORD dwRoutingPid,
- IN DWORD dwEntrySize,
- IN LPVOID lpEntry
- );
- OUT DWORD
- (WINAPI *MIBEntrySet)(
- IN DWORD dwRoutingPid,
- IN DWORD dwEntrySize,
- IN LPVOID lpEntry
- );
- OUT DWORD
- (WINAPI *MIBEntryGet)(
- IN DWORD dwRoutingPid,
- IN DWORD dwInEntrySize,
- IN LPVOID lpInEntry,
- IN OUT LPDWORD lpOutEntrySize,
- OUT LPVOID lpOutEntry
- );
- OUT DWORD
- (WINAPI *MIBEntryGetFirst)(
- IN DWORD dwRoutingPid,
- IN DWORD dwInEntrySize,
- IN LPVOID lpInEntry,
- IN OUT LPDWORD lpOutEntrySize,
- OUT LPVOID lpOutEntry
- );
- OUT DWORD
- (WINAPI *MIBEntryGetNext)(
- IN DWORD dwRoutingPid,
- IN DWORD dwInEntrySize,
- IN LPVOID lpInEntry,
- IN OUT LPDWORD lpOutEntrySize,
- OUT LPVOID lpOutEntry
- );
- //
- // Can be called to get the router ID value
- //
- OUT DWORD
- (WINAPI *GetRouterId)(VOID);
- OUT BOOL
- (WINAPI *HasMulticastBoundary)(
- IN DWORD dwIfIndex,
- IN DWORD dwGroupAddress
- );
- } SUPPORT_FUNCTIONS, *PSUPPORT_FUNCTIONS ;
- //////////////////////////////////////////////////////////////////////////////
- // //
- // All IP Protocols must use the protocol ids defined in the range below. //
- // Protocols not identified below can use any unassigned number BELOW //
- // 0xffff0000 //
- // //
- // NOTE: These numbers have been chosen to coincide with MIB-II protocol //
- // numbers. Allocation should not be arbitrary. //
- // //
- //////////////////////////////////////////////////////////////////////////////
- #define PROTO_IP_OTHER 1
- #define PROTO_IP_LOCAL 2
- #define PROTO_IP_NETMGMT 3
- #define PROTO_IP_ICMP 4
- #define PROTO_IP_EGP 5
- #define PROTO_IP_GGP 6
- #define PROTO_IP_HELLO 7
- #define PROTO_IP_RIP 8
- #define PROTO_IP_IS_IS 9
- #define PROTO_IP_ES_IS 10
- #define PROTO_IP_CISCO 11
- #define PROTO_IP_BBN 12
- #define PROTO_IP_OSPF 13
- #define PROTO_IP_BGP 14
- //
- // The multicast protocol IDs
- //
- #define PROTO_IP_MSDP 9
- #define PROTO_IP_IGMP 10
- #define PROTO_IP_BGMP 11
- //
- // The IPRTRMGR_PID is 10000 // 0x00002710
- //
- #define PROTO_IP_VRRP 112
- #define PROTO_IP_BOOTP 9999 // 0x0000270F
- #define PROTO_IP_NT_AUTOSTATIC 10002 // 0x00002712
- #define PROTO_IP_DNS_PROXY 10003 // 0x00002713
- #define PROTO_IP_DHCP_ALLOCATOR 10004 // 0x00002714
- #define PROTO_IP_NAT 10005 // 0x00002715
- #define PROTO_IP_NT_STATIC 10006 // 0x00002716
- #define PROTO_IP_NT_STATIC_NON_DOD 10007 // 0x00002717
- #define PROTO_IP_DIFFSERV 10008 // 0x00002718
- #define PROTO_IP_MGM 10009 // 0x00002719
- #define PROTO_IP_DTP 10010 // 0x0000271A
- #define PROTO_IP_H323 10011 // 0x0000271B
- #define PROTO_IP_FTP 10012 // 0x0000271C
- #define PROTO_IP_ALG 10013 // 0x0000271D
- //
- // For all future development, the following macro must be used to generate
- // Ids
- //
- //
- // Type - 2 bits
- // Vendor - 14 bits
- // ProtocolId - 16 bits
- //
- #define PROTOCOL_ID(Type, VendorId, ProtocolId)
- (((Type & 0x03)<<30)|((VendorId & 0x3FFF)<<16)|(ProtocolId & 0xFFFF))
- //
- // |----|----|----|----|----|----|----|----|
- // Ty*** Vendor Id *** StandardProtocolId
- //
- #define TYPE_FROM_PROTO_ID(X) (((X) >> 30) & 0x03)
- #define VENDOR_FROM_PROTO_ID(X) (((X) >> 16) & 0x3FFF)
- #define PROTO_FROM_PROTO_ID(X) ((X) & 0xFFFF)
- //
- // Types MS0 and MS1 are Microsoft Reserved
- // A protocol that supports both unicast and multicast should use type
- // MCAST
- //
- #define PROTO_TYPE_UCAST 0
- #define PROTO_TYPE_MCAST 1
- #define PROTO_TYPE_MS0 2
- #define PROTO_TYPE_MS1 3
- #define PROTO_VENDOR_MS0 0x0000
- #define PROTO_VENDOR_MS1 0x137 // 311
- #define PROTO_VENDOR_MS2 0x3FFF
- #define MS_IP_BOOTP
- PROTOCOL_ID(PROTO_TYPE_UCAST, PROTO_VENDOR_MS0, PROTO_IP_BOOTP)
- #define MS_IP_RIP
- PROTOCOL_ID(PROTO_TYPE_UCAST, PROTO_VENDOR_MS0, PROTO_IP_RIP)
- #define MS_IP_OSPF
- PROTOCOL_ID(PROTO_TYPE_UCAST, PROTO_VENDOR_MS0, PROTO_IP_OSPF)
- #define MS_IP_BGP
- PROTOCOL_ID(PROTO_TYPE_UCAST, PROTO_VENDOR_MS1, PROTO_IP_BGP)
- #define MS_IP_IGMP
- PROTOCOL_ID(PROTO_TYPE_MCAST, PROTO_VENDOR_MS1, PROTO_IP_IGMP)
- #define MS_IP_BGMP
- PROTOCOL_ID(PROTO_TYPE_MCAST, PROTO_VENDOR_MS1, PROTO_IP_BGMP)
- #define MS_IP_MSDP
- PROTOCOL_ID(PROTO_TYPE_MCAST, PROTO_VENDOR_MS1, PROTO_IP_MSDP)
- #define MS_IP_DNS_PROXY
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_DNS_PROXY)
- #define MS_IP_DHCP_ALLOCATOR
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_DHCP_ALLOCATOR)
- #define MS_IP_NAT
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_NAT)
- #define MS_IP_DIFFSERV
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_DIFFSERV)
- #define MS_IP_MGM
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_MGM)
- #define MS_IP_VRRP
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_VRRP)
- #define MS_IP_DTP
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_DTP)
- #define MS_IP_H323
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_H323)
- #define MS_IP_FTP
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_FTP)
- #define MS_IP_ALG
- PROTOCOL_ID(PROTO_TYPE_MS0, PROTO_VENDOR_MS1, PROTO_IP_ALG)
- //
- // All IPX Protocols must use the protocol ids defined in the range below.
- // Protocols not identified below can use any unassigned number greater than
- // IPX_PROTOCOL_BASE.
- //
- #define IPX_PROTOCOL_BASE 0x0001ffff
- #define IPX_PROTOCOL_RIP IPX_PROTOCOL_BASE + 1
- #define IPX_PROTOCOL_SAP IPX_PROTOCOL_BASE + 2
- #define IPX_PROTOCOL_NLSP IPX_PROTOCOL_BASE + 3
- typedef struct _UPDATE_COMPLETE_MESSAGE
- {
- ULONG InterfaceIndex;
- ULONG UpdateType; // DEMAND_UPDATE_ROUTES, DEMAND_UPDATE_SERVICES
- ULONG UpdateStatus; // NO_ERROR if successfull
- } UPDATE_COMPLETE_MESSAGE, *PUPDATE_COMPLETE_MESSAGE;
- //
- // Message returned in Result parameter to GET_EVENT_MESSAGE api call.
- // UpdateCompleteMessage returned for UPDATE_COMPLETE message
- // InterfaceIndex returned for SAVE_INTERFACE_CONFIG_INFO message
- //
- typedef union _MESSAGE
- {
- UPDATE_COMPLETE_MESSAGE UpdateCompleteMessage;
- DWORD InterfaceIndex;
- } MESSAGE, *PMESSAGE;
- //
- // Routing Interface Status types
- //
- #define RIS_INTERFACE_ADDRESS_CHANGE 0
- #define RIS_INTERFACE_ENABLED 1
- #define RIS_INTERFACE_DISABLED 2
- #define RIS_INTERFACE_MEDIA_PRESENT 3
- #define RIS_INTERFACE_MEDIA_ABSENT 4
- //
- // IPX Adapter Binding Info
- //
- typedef struct IPX_ADAPTER_BINDING_INFO
- {
- ULONG AdapterIndex;
- UCHAR Network[4];
- UCHAR LocalNode[6];
- UCHAR RemoteNode[6];
- ULONG MaxPacketSize;
- ULONG LinkSpeed;
- }IPX_ADAPTER_BINDING_INFO, *PIPX_ADAPTER_BINDING_INFO;
- //
- // IP Adapter Binding Info
- // This is the information associated with an ADDRESS_ARRIVAL event
- // An address arrival may have AddressCount == 0, this implies a unnumbered
- // interface
- //
- typedef struct IP_LOCAL_BINDING
- {
- DWORD Address;
- DWORD Mask;
- }IP_LOCAL_BINDING, *PIP_LOCAL_BINDING;
- typedef struct IP_ADAPTER_BINDING_INFO
- {
- ULONG AddressCount;
- DWORD RemoteAddress;
- ULONG Mtu;
- ULONGLONG Speed;
- IP_LOCAL_BINDING Address[0];
- }IP_ADAPTER_BINDING_INFO, *PIP_ADAPTER_BINDING_INFO;
- #define SIZEOF_IP_BINDING(X)
- (FIELD_OFFSET(IP_ADAPTER_BINDING_INFO,Address[0]) +
- ((X) * sizeof(IP_LOCAL_BINDING)))
- typedef
- DWORD
- (WINAPI * PSTART_PROTOCOL) (
- IN HANDLE NotificationEvent,
- IN PSUPPORT_FUNCTIONS SupportFunctions,
- IN LPVOID GlobalInfo,
- IN ULONG StructureVersion,
- IN ULONG StructureSize,
- IN ULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PSTART_COMPLETE) (
- VOID
- );
- typedef
- DWORD
- (WINAPI * PSTOP_PROTOCOL) (
- VOID
- );
- typedef
- DWORD
- (WINAPI * PADD_INTERFACE) (
- IN LPWSTR InterfaceName,
- IN ULONG InterfaceIndex,
- IN NET_INTERFACE_TYPE InterfaceType,
- IN DWORD MediaType,
- IN WORD AccessType,
- IN WORD ConnectionType,
- IN PVOID InterfaceInfo,
- IN ULONG StructureVersion,
- IN ULONG StructureSize,
- IN ULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PDELETE_INTERFACE) (
- IN ULONG InterfaceIndex
- );
- typedef
- DWORD
- (WINAPI * PGET_EVENT_MESSAGE) (
- OUT ROUTING_PROTOCOL_EVENTS *Event,
- OUT MESSAGE *Result
- );
- typedef
- DWORD
- (WINAPI * PGET_INTERFACE_INFO) (
- IN ULONG InterfaceIndex,
- IN PVOID InterfaceInfo,
- IN OUT PULONG BufferSize,
- OUT PULONG StructureVersion,
- IN PULONG StructureSize,
- OUT PULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PSET_INTERFACE_INFO) (
- IN ULONG InterfaceIndex,
- IN PVOID InterfaceInfo,
- IN ULONG StructureVersion,
- IN ULONG StructureSize,
- IN ULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PINTERFACE_STATUS) (
- IN ULONG InterfaceIndex,
- IN BOOL InterfaceActive,
- IN DWORD StatusType,
- IN PVOID StatusInfo
- );
- typedef
- DWORD
- (WINAPI * PQUERY_POWER) (
- IN DWORD PowerType
- );
- typedef
- DWORD
- (WINAPI * PSET_POWER) (
- IN DWORD PowerType
- );
- typedef
- DWORD
- (WINAPI * PGET_GLOBAL_INFO) (
- IN PVOID GlobalInfo,
- IN OUT PULONG BufferSize,
- OUT PULONG StructureVersion,
- OUT PULONG StructureSize,
- OUT PULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PSET_GLOBAL_INFO) (
- IN PVOID GlobalInfo,
- IN ULONG StructureVersion,
- IN ULONG StructureSize,
- IN ULONG StructureCount
- );
- typedef
- DWORD
- (WINAPI * PDO_UPDATE_ROUTES) (
- IN ULONG InterfaceIndex
- );
- typedef
- DWORD
- (WINAPI * PMIB_CREATE) (
- IN ULONG InputDataSize,
- IN PVOID InputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_DELETE) (
- IN ULONG InputDataSize,
- IN PVOID InputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_GET) (
- IN ULONG InputDataSize,
- IN PVOID InputData,
- OUT PULONG OutputDataSize,
- OUT PVOID OutputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_SET) (
- IN ULONG InputDataSize,
- IN PVOID InputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_GET_FIRST) (
- IN ULONG InputDataSize,
- IN PVOID InputData,
- OUT PULONG OutputDataSize,
- OUT PVOID OutputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_GET_NEXT) (
- IN ULONG InputDataSize,
- IN PVOID InputData,
- OUT PULONG OutputDataSize,
- OUT PVOID OutputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_SET_TRAP_INFO) (
- IN HANDLE Event,
- IN ULONG InputDataSize,
- IN PVOID InputData,
- OUT PULONG OutputDataSize,
- OUT PVOID OutputData
- );
- typedef
- DWORD
- (WINAPI * PMIB_GET_TRAP_INFO) (
- IN ULONG InputDataSize,
- IN PVOID InputData,
- OUT PULONG OutputDataSize,
- OUT PVOID OutputData
- );
- typedef
- DWORD
- (WINAPI *PCONNECT_CLIENT) (
- IN ULONG InterfaceIndex,
- IN PVOID ClientAddress
- );
- typedef
- DWORD
- (WINAPI *PDISCONNECT_CLIENT) (
- IN ULONG InterfaceIndex,
- IN PVOID ClientAddress
- );
- //
- // InterfaceFlags used with the GetNeighbors() call below
- //
- #define MRINFO_TUNNEL_FLAG 0x01
- #define MRINFO_PIM_FLAG 0x04
- #define MRINFO_DOWN_FLAG 0x10
- #define MRINFO_DISABLED_FLAG 0x20
- #define MRINFO_QUERIER_FLAG 0x40
- #define MRINFO_LEAF_FLAG 0x80
- typedef
- DWORD
- (WINAPI *PGET_NEIGHBORS) (
- IN DWORD InterfaceIndex,
- IN PDWORD NeighborList,
- IN OUT PDWORD NeighborListSize,
- OUT PBYTE InterfaceFlags
- );
- //
- // StatusCode values used with the GetMfeStatus() call below.
- // The protocol should return the highest-valued one that applies.
- //
- #define MFE_NO_ERROR 0 // none of the below events
- #define MFE_REACHED_CORE 1 // this router is an RP/core for the group
- //
- // StatusCode values set by oif owner only
- //
- #define MFE_OIF_PRUNED 5 // no downstream receivers exist on oif
- //
- // StatusCode values set by iif owner only
- //
- #define MFE_PRUNED_UPSTREAM 4 // a prune was send upstream
- #define MFE_OLD_ROUTER 11 // upstream nbr doesn't support mtrace
- //
- // StatusCode values which are used only by the Router Manager itself:
- //
- #define MFE_NOT_FORWARDING 2 // not fwding for an unspecified reason
- #define MFE_WRONG_IF 3 // mtrace received on iif
- #define MFE_BOUNDARY_REACHED 6 // iif or oif is admin scope boundary
- #define MFE_NO_MULTICAST 7 // oif is not multicast-enabled
- #define MFE_IIF 8 // mtrace arrived on iif
- #define MFE_NO_ROUTE 9 // router has no route that matches
- #define MFE_NOT_LAST_HOP 10 // router is not the proper last-hop router
- #define MFE_PROHIBITED 12 // mtrace is administratively prohibited
- #define MFE_NO_SPACE 13 // not enough room in packet
- typedef
- DWORD
- (WINAPI *PGET_MFE_STATUS) (
- IN DWORD InterfaceIndex,
- IN DWORD GroupAddress,
- IN DWORD SourceAddress,
- OUT PBYTE StatusCode
- );
- //////////////////////////////////////////////////////////////////////////////
- // //
- // This is the structure passed between the router manager and a protocol //
- // upon registration. //
- // //
- // IN OUT DWORD dwVersion //
- // This is filled by the router manager to indicate the version it supports.//
- // The DLL MUST set this to the version that the protocol will support. //
- // //
- // IN DWORD dwProtocolId //
- // This the protocol the router manager is expecting the DLL to register. //
- // If the DLL does not support this protocol, it MUST return //
- // ERROR_NOT_SUPPORTED //
- // A DLL will be called once for every protocol it supports //
- // //
- // IN OUT DWORD fSupportedFunctionality //
- // These are the flags denoting the functionality the router manager //
- // supports. The DLL MUST reset this to the functionality that it supports. //
- // //
- //////////////////////////////////////////////////////////////////////////////
- typedef struct _MPR50_ROUTING_CHARACTERISTICS
- {
- DWORD dwVersion;
- DWORD dwProtocolId;
- DWORD fSupportedFunctionality;
- PSTART_PROTOCOL pfnStartProtocol;
- PSTART_COMPLETE pfnStartComplete;
- PSTOP_PROTOCOL pfnStopProtocol;
- PGET_GLOBAL_INFO pfnGetGlobalInfo;
- PSET_GLOBAL_INFO pfnSetGlobalInfo;
- PQUERY_POWER pfnQueryPower;
- PSET_POWER pfnSetPower;
- PADD_INTERFACE pfnAddInterface;
- PDELETE_INTERFACE pfnDeleteInterface;
- PINTERFACE_STATUS pfnInterfaceStatus;
- PGET_INTERFACE_INFO pfnGetInterfaceInfo;
- PSET_INTERFACE_INFO pfnSetInterfaceInfo;
- PGET_EVENT_MESSAGE pfnGetEventMessage;
- PDO_UPDATE_ROUTES pfnUpdateRoutes;
- PCONNECT_CLIENT pfnConnectClient;
- PDISCONNECT_CLIENT pfnDisconnectClient;
- PGET_NEIGHBORS pfnGetNeighbors;
- PGET_MFE_STATUS pfnGetMfeStatus;
- PMIB_CREATE pfnMibCreateEntry;
- PMIB_DELETE pfnMibDeleteEntry;
- PMIB_GET pfnMibGetEntry;
- PMIB_SET pfnMibSetEntry;
- PMIB_GET_FIRST pfnMibGetFirstEntry;
- PMIB_GET_NEXT pfnMibGetNextEntry;
- PMIB_SET_TRAP_INFO pfnMibSetTrapInfo;
- PMIB_GET_TRAP_INFO pfnMibGetTrapInfo;
- }MPR50_ROUTING_CHARACTERISTICS;
- #if MPR50
- typedef MPR50_ROUTING_CHARACTERISTICS MPR_ROUTING_CHARACTERISTICS;
- #endif
- typedef MPR_ROUTING_CHARACTERISTICS *PMPR_ROUTING_CHARACTERISTICS;
- //
- // All routing protocols must export the following entry point.
- // The router manager calls this function to allow the routing
- // protocol to register
- //
- #define REGISTER_PROTOCOL_ENTRY_POINT RegisterProtocol
- #define REGISTER_PROTOCOL_ENTRY_POINT_STRING "RegisterProtocol"
- typedef
- DWORD
- (WINAPI * PREGISTER_PROTOCOL) (
- IN OUT PMPR_ROUTING_CHARACTERISTICS pRoutingChar,
- IN OUT PMPR_SERVICE_CHARACTERISTICS pServiceChar
- );
- #ifdef __cplusplus
- }
- #endif
- #if _MSC_VER >= 1200
- #pragma warning(pop)
- #else
- #pragma warning(default:4200)
- #pragma warning(default:4201)
- #endif
- #endif // _ROUTPROT_H_