typedef struct _CM_KCB_UOW
{
    LIST_ENTRY TransactionListEntry;
    CM_INTENT_LOCK *KCBLock;
    CM_INTENT_LOCK *KeyLock;
    LIST_ENTRY KCBListEntry;
    CM_KEY_CONTROL_BLOCK *KeyControlBlock;
    CM_TRANS *Transaction;
    unsigned long UoWState;
    UoWActionType ActionType;
    HSTORAGE_TYPE StorageType;
    union
    {
        CM_KEY_CONTROL_BLOCK *ChildKCB;
        unsigned long VolatileKeyCell;
        struct
        {
            unsigned long OldValueCell;
            unsigned long NewValueCell;
        };
        unsigned long UserFlags;
        LARGE_INTEGER LastWriteTime;
        unsigned long TxSecurityCell;
        struct
        {
            CM_KEY_CONTROL_BLOCK *OldChildKCB;
            CM_KEY_CONTROL_BLOCK *NewChildKCB;
        };
        struct
        {
            CM_KEY_CONTROL_BLOCK *OtherChildKCB;
            unsigned long ThisVolatileKeyCell;
        };
    };
} CM_KCB_UOW, *PCM_KCB_UOW;