[This is preliminary documentation and subject to change.]
The MPR_SERVICE_CHARACTERISTICS structure contains information used to register a routing protocol with the router manager.
typedef struct _MPR_SERVICE_CHARACTERISTICS {
DWORD dwVersion;
DWORD dwProtocolId;
DWORD fSupportedFunctionality;
PIS_SERVICE pfnIsService;
PCREATE_SERVICE_ENUMERATION_HANDLE pfnCreateServiceEnumerationHandle;
PENUMERATE_GET_NEXT_SERVICE pfnEnumerateGetNextService;
PCLOSE_SERVICE_ENUMERATION_HANDLE pfnCloseServiceEnumerationHandle;
PGET_SERVICE_COUNT pfnGetServiceCount;
PCREATE_STATIC_SERVICE pfnCreateStaticService;
PDELETE_STATIC_SERVICE pfnDeleteStaticService;
PBLOCK_CONVERT_SERVICES_TO_STATIC pfnBlockConvertServicesToStatic;
PBLOCK_DELETE_STATIC_SERVICES pfnBlockDeleteStaticServices;
PGET_FIRST_ORDERED_SERVICE pfnGetFirstOrderedService;
PGET_NEXT_ORDERED_SERVICE pfnGetNextOrderedService;
}MPR_SERVICE_CHARACTERISTICS, *PMPR_SERVICE_CHARACTERISTICS;
On output: the routing protocol should specify the version of Routing and RAS that it requires.
The symbol MS_ROUTER_VERSION in the header file routprot.h is defined to be the Routing and RAS version for a given implementation.
On output: the routing protocol should reset these flags to indicate the subset of functionality that it supports. If this routing protocol does not provide services, fSupportedFunctionality should be zero.
Supported Functionality Values
Value | Description |
---|---|
ROUTING | The protocol participates in Multiprotocol routing by importing Routing Table Manager APIs. |
SERVICES | The protocol assumes responsibility for managing services (such as IPX SAP), and provides Service Table Management APIs. |
DEMAND_UPDATE_ROUTES | The protocol is able to perform autostatic updates of routes when requested by the router manager. |
DEMAND_UPDATE_SERVICES | The protocol is able to perform autostatic updates of services when requested by the router manager. |
The members of this structure are pointers to Service Table Management functions implemented in the routing protocol DLL. The routing protocol fills in the address values for these pointers during a call to the RegisterProtocol function.
Only routing protocol DLLs that support services need to fill in the MPR_SERVICE_CHARACTERISTICS structure.
For a complete description of a particular function pointed to by one of the structure members, see the reference page for that function.
To use this structure, the user should add -DMPR50=1 to the compiler flags.
MPR_ROUTING_CHARACTERISTICS, RegisterProtocol, Protocol Identifiers