MPR40_SERVICE_CHARACTERISTICS structure (stm.h)

The MPR_SERVICE_CHARACTERISTICS structure contains information used to register a routing protocol with the router manager.

Syntax

typedef struct _MPR40_SERVICE_CHARACTERISTICS {
  DWORD                              dwVersion;
  DWORD                              dwProtocolId;
  DWORD                              fSupportedFunctionality;
  PIS_SERVICE                        pfnIsService;
  PDO_UPDATE_SERVICES                pfnUpdateServices;
  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;
} MPR40_SERVICE_CHARACTERISTICS;

Members

dwVersion

On input, specifies the version of RRAS currently running.

On output, the routing protocol should specify the version of RRAS that it requires.

The symbol MS_ROUTER_VERSION in the header file Routprot.h is defined to be the RRAS 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.

This parameter is one or more of the following values.

Value Meaning
ROUTING
The protocol participates in multi-protocol routing by importing routing table manager APIs. There is one routing table manager that maintains a table for each protocol family (such as IP and IPX).
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.

pfnUpdateServices

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.

Requirements

Requirement Value
Minimum supported client None supported
Minimum supported server Windows 2000 Server [desktop apps only]
Header stm.h

See also

MPR_ROUTING_CHARACTERISTICS

Protocol Identifiers

RegisterProtocol

Routing Protocol Interface Reference

Routing Protocol Interface Structures