internal OletxDependentTransaction(RealOletxTransaction realTransaction, bool delayCommit)
        : base(realTransaction)
    {
        if (realTransaction == null)
        {
            throw new ArgumentNullException(nameof(realTransaction));
        }

        _volatileEnlistmentContainer = RealOletxTransaction.AddDependentClone(delayCommit);

        TransactionsEtwProvider etwLog = TransactionsEtwProvider.Log;

        if (etwLog.IsEnabled())
        {
            etwLog.TransactionDependentCloneCreate(TraceSourceType.TraceSourceOleTx, TransactionTraceId, delayCommit
                ? DependentCloneOption.BlockCommitUntilComplete
                : DependentCloneOption.RollbackIfNotComplete);
        }
    }