2.2.19.3 STRINGBINDING

The STRINGBINDING structure describes an RPC protocol, a network address, and, optionally, an RPC endpoint for the RPC protocol that a client can use to communicate with either an object resolver or an object exporter.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

wTowerId

aNetworkAddr (variable)

...

wTowerId (2 bytes):  An unsigned short that MUST contain an RPC protocol sequence identifier constant that identifies the protocol to be used in RPC calls to the server named in the aNetworkAddr field, as specified in [C706] table I-2 Appendix I. Additionally, if this field is zero, the aNetworkAddr field MUST NOT be present. If this field is not zero, the aNetworkAddr field MUST be present.<10>

aNetworkAddr (variable):  An optional null-terminated Unicode string that, if present, MUST contain a network address and, optionally, RPC endpoint information. This field MUST use one of the two following formats:

The first format is "servername", where "servername" MUST be one of the following:

This is the format used when a DUALSTRINGARRAY containing object resolver bindings is returned from IObjectExporter::ServerAlive2, for example, or in an OBJREF. Endpoint information is omitted, as this information is assumed, as specified in [MS-RPCE] section 2.1.

The second format is "servername[endpoint]", for example, "10.0.0.1[5000]", where "servername" is as specified above and "endpoint" MUST be an endpoint as specified in [MS-RPCE]  section 2.1. This is the format used when a DUALSTRINGARRAY containing object exporter bindings is returned; for example, from IObjectExporter::ResolveOxid2 or IActivation::RemoteActivation. The content of endpoint is RPC protocol-specific ([C706] section 6.2.2).

An empty STRINGBINDING structure contains a wTowerId whose value is zero.