3.1.4.24 RRouterInterfaceUpdateRoutes (Opnum 23)

The RRouterInterfaceUpdateRoutes method<280> updates routing information for a given transport on a specified interface on the RRAS server. If a routing protocol like RIP is running ([RFC1058]), the new routes learned are updated on the interface. This interface MUST be called only when the interface state is ROUTER_IF_STATE_CONNECTED, otherwise an error is returned.

 DWORD RRouterInterfaceUpdateRoutes(
   [in] DIM_HANDLE hDimServer,
   [in] DWORD hInterface,
   [in] DWORD dwTransportId,
   [in] ULONG_PTR hEvent,
   [in] DWORD dwClientProcessId
 );

hDimServer: A handle to the RRASM server where the call is to be executed, see section 3.1.3.

hInterface: The unique identifier of an interface. This can be obtained from RRouterInterfaceCreate (section 3.1.4.13) or RRouterInterfaceGetHandle (section 3.1.4.12). Since the RRASM server does not maintain the interface handles, the RRAS server SHOULD check and ensure that this handle represents a valid interface handle.

dwTransportId: Specifies the transport for which routing information needs to be updated. This MUST be one of the following values.<281>

Value

Meaning

PID_IPX

0x0000002B

IPX protocol

PID_IP

0x00000021

IPv4 protocol

hEvent: The calling application MUST specify NULL for this parameter.

dwClientProcessId: The current process identifier where the function is called from. If this is a nonexistent process the method will fail with an error code, as specified in [MS-ERREF]. Otherwise the process specified is notified.

Return Values: A 32-bit, unsigned integer value that indicates return status. A return value of ERROR_SUCCESS (0x00000000) indicates that the operation was completed successfully; otherwise, it contains an error code, as specified in [MS-ERREF] or in section 2.2.4. All values that are not in the table that follows MUST be treated the same by the RRASM client.

Return value/code

Description

ERROR_SUCCESS

0x00000000

The call was successful.

ERROR_ACCESS_DENIED

0x00000005

The calling application does not have sufficient privileges, as specified in section 2.1.1.1.

The opnum field value for this method is 23.

When processing this call, the RRASM server MUST do the following:

  • Validate, as specified in section 2.1.1.1, whether this method was called by a client that has access to the method. If the client does not have access, then return error ERROR_ACCESS_DENIED (0x00000005).

  • If RouterType is ROUTER_TYPE_LAN, return an error other than those in the preceding table.

  • If dwTransportId is not specified in the SupportedTransportsList, return an error other than those specified in the preceding table.

  • Call the abstract interface Invoke DIMSVC method specifying the operation and the parameters to enable RRAS server to perform the required management task.

  • Return any error status the RRAS server returns while processing this request. Otherwise return ERROR_SUCCESS.

No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].