MPR_SERVICE_CHARACTERISTICS

[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;
 

Members

dwVersion
On input: specifies the version of Routing and RAS currently running.

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.

dwProtocolID
Specifies the routing protocol that the router manager requests the DLL to register. (A common name space is used for all protocol families.)
fSupportedFunctionality
On input: specifies the functionality that the router manager supports.

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.

pfnIsService
Pointer to an implementation of the IsService function for this routing protocol.
pfnCreateServiceEnumerationHandle
Pointer to an implementation of the CreateServiceEnumerationHandle function for this routing protocol.
pfnEnumerateGetNextService
Pointer to an implementation of the EnumerateGetNextService function for this routing protocol.
pfnCloseServiceEnumerationHandle
Pointer to an implementation of the CloseServiceEnumerationHandle function for this routing protocol.
pfnGetServiceCount
Pointer to an implementation of the GetServiceCount function for this routing protocol.
pfnCreateStaticService
Pointer to an implementation of the CreateStaticService function for this routing protocol.
pfnDeleteStaticService
Pointer to an implementation of the DeleteStaticService function for this routing protocol.
pfnBlockConvertServicesToStatic
Pointer to an implementation of the BlockConvertServicesToStatic function for this routing protocol.
pfnBlockDeleteStaticServices
Pointer to an implementation of the BlockDeleteStaticServices function for this routing protocol.
pfnGetFirstOrderedService
Pointer to an implementation of the GetFirstOrderedService function for this routing protocol.
pfnGetNextOrderedService
Pointer to an implementation of the GetNextOrderedService function for this routing protocol.

Remarks

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.

See Also

MPR_ROUTING_CHARACTERISTICS, RegisterProtocol, Protocol Identifiers