2.2.4.1 Transaction Envoy Property

The Transaction Envoy Property is used to notify the unmarshaling client that the server object is running within a transaction. The server object returns the transaction envoy context property as part of an OBJREF_EXTENDED instance.

The policyId field of the PROPMARSHALHEADER instance ([MS-DCOM] section 2.2.20.1) for the transaction envoy property MUST be set to guidTransactionProperty (see section 1.9). The CLSID field of the PROPMARSHALHEADER instance ([MS-DCOM] section 2.2.20.1) for the transaction envoy property MUST be set to CLSID_TransactionEnvoy (see section 1.9).

The marshaled data buffer for the property MUST be specified in the following format.


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

MaxVersion

MinVersion

StreamID (16 bytes)

...

...

WhereaboutsID (16 bytes)

...

...

DtcCapabilities

MaxVersion (2 bytes): The major version number for this Transaction Envoy property format; this field MUST be set to 0x0001.

MinVersion (2 bytes): The minor version number for this Transaction Envoy property format; this field MUST be set to 0x0001.

StreamID (16 bytes):  A GUID that MUST contain the transaction stream ID of the server.

WhereaboutsID (16 bytes):  A GUID identifying the server object's SWhereabouts. For more information, see [MS-DTCO].

DtcCapabilities (2 bytes):  An unsigned short that MUST be set to one or more of the values defined in section 2.2.6.1.