typedef struct _KTRANSACTION
{
    KEVENT OutcomeEvent;
    unsigned long cookie;
    KMUTANT Mutex;
    KTRANSACTION *TreeTx;
    KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink;
    KTMOBJECT_NAMESPACE_LINK TmNamespaceLink;
    GUID UOW;
    KTRANSACTION_STATE State;
    unsigned long Flags;
    LIST_ENTRY EnlistmentHead;
    unsigned long EnlistmentCount;
    unsigned long RecoverableEnlistmentCount;
    unsigned long PrePrepareRequiredEnlistmentCount;
    unsigned long PrepareRequiredEnlistmentCount;
    unsigned long OutcomeRequiredEnlistmentCount;
    unsigned long PendingResponses;
    KENLISTMENT *SuperiorEnlistment;
    CLS_LSN LastLsn;
    LIST_ENTRY PromotedEntry;
    KTRANSACTION *PromoterTransaction;
    void *PromotePropagation;
    unsigned long IsolationLevel;
    unsigned long IsolationFlags;
    LARGE_INTEGER Timeout;
    UNICODE_STRING Description;
    KTHREAD *RollbackThread;
    WORK_QUEUE_ITEM RollbackWorkItem;
    KDPC RollbackDpc;
    KTIMER RollbackTimer;
    LIST_ENTRY LsnOrderedEntry;
    KTRANSACTION_OUTCOME Outcome;
    KTM *Tm;
    __int64 CommitReservation;
    KTRANSACTION_HISTORY TransactionHistory[10];
    unsigned long TransactionHistoryCount;
    void *DTCPrivateInformation;
    unsigned long DTCPrivateInformationLength;
    KMUTANT DTCPrivateInformationMutex;
    void *PromotedTxSelfHandle;
    unsigned long PendingPromotionCount;
    KEVENT PromotionCompletedEvent;
} KTRANSACTION, *PKTRANSACTION;