3.8.3 Initialization
When a server non-root transaction object is initialized, it MUST do the following:
Create the data structures described in section 3.8.1.
Set the InTransaction flag to FALSE.
Set the CommitTransaction flag to TRUE.
Set the TransactionStreamID GUID to the value of the StreamID field of the Transaction Context Property (section 2.2.2.1) contained in the incoming activation request.
Set the DtcCapabilities value to the value of the DtcCapabilities field of the Transaction Context Property contained in the incoming activation request if the StreamVariant field of Transaction Context Property is set to 0x0001.
Otherwise, set the DtcCapabilities value to zero if the StreamVariant field of the Transaction Context Property contained in the incoming activation request is set to 0x0002.
Set the IsolationLevel value to the value of the IsolationLevel field of the Transaction Context Property contained in the incoming activation request if the MaxVersion field of the Transaction Context Property is set to 0x0002.
Otherwise, set the IsolationLevel value to the TxIsolationLevelSerializable (section 2.2.6.2) value if the MaxVersion field of the Transaction Context Property contained in the incoming activation request is set to 0x0001.
Copy the TransactionBuffer field of the Transaction Context Property contained in the incoming activation request to the Propagation_Token instance if the StreamVariant field of the Transaction Context Property is set to 0x0002.
Otherwise, set the TransactionStream object reference by unmarshaling (as specified in [MS-DCOM] section 3.2.4.1.2) the STDOBJREF ([MS-DCOM] section 2.2.18.2) structure contained in the TransactionStream field of the Transaction Context Property contained in the incoming activation request if the StreamVariant field of the Transaction Context Property is set to 0x0001.
Register as a transaction voter (see [MS-DTCO] section 3.5.4.9) or as a resource manager (see [MS-DTCO] section 3.5.5.1) with its local DTCO resource manager implementation.