2.2.3.1 BinaryMethodCall

The BinaryMethodCall record contains information that is required to perform a Remote Method invocation.


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

RecordTypeEnum

MessageEnum

...

MethodName (variable)

...

TypeName (variable)

...

CallContext (variable)

...

Args (variable)

...

RecordTypeEnum (1 byte): A RecordTypeEnumeration value that identifies the record type. The value MUST be 21.

MessageEnum (4 bytes): A MessageFlags value that indicates whether the arguments and Call Context, Message Properties, Generic Arguments, and Method Signature are present. It also specifies whether the arguments and Call Context are present in this record or in the following MethodCallArray record. For this record type, the field MUST NOT contain the values from the Return and the Exception categories.

MethodName (variable): A StringValueWithCode that represents the Remote Method name. The format of the string is as specified in [MS-NRTP] section 2.2.1.1.

TypeName (variable): A StringValueWithCode that represents the Server Type name. The format of the string is specified as QualifiedTypeName, as specified in [MS-NRTP] section 2.2.1.2.

CallContext (variable): A StringValueWithCode that represents the Logical Call ID. This field is conditional. If the MessageEnum field has the ContextInline bit set, the field MUST be present; otherwise, the field MUST NOT be present. The presence of this field indicates that the Call Context contains a single entry with the Name as "__RemotingData" and the value is an instance of the Remoting Type CallContextRemotingData, as specified in [MS-NRTP] section 2.2.2.16. The value of this field MUST be interpreted as the value of the logicalCallID field in the CallContextRemotingData Class (2).

Args (variable): An ArrayOfValueWithCode where each item of the Array corresponds to an input argument of the method. The items of the Array MUST be in the same order as the input arguments. This field is conditional. If the MessageEnum field has the ArgsInline bit set, the field MUST be present; otherwise, the field MUST NOT be present.