CmpTransEnlistUowInCmTrans

INT64 __stdcall CmpTransEnlistUowInCmTrans(CM_KCB_UOW *KcbUow, CM_TRANS *CmTrans){
  INT64 v4; 
  INT64 v5; 
  _LIST_ENTRY *Blink; 
  INT64 result; 

  LOCK_TRANSACTION_LIST();
  if( (CmTrans->TransState & 7) != 0 )
  {
    UNLOCK_TRANSACTION_LIST(v5, v4);
    return 3222863874i64;
  }
  else
  {
    Blink = CmTrans->KCBUoWListHead.Blink;
    if( Blink->Flink != &CmTrans->KCBUoWListHead )
      __fastfail(3u);
    KcbUow->TransactionListEntry.Flink = &CmTrans->KCBUoWListHead;
    KcbUow->TransactionListEntry.Blink = Blink;
    Blink->Flink = &KcbUow->TransactionListEntry;
    CmTrans->KCBUoWListHead.Blink = &KcbUow->TransactionListEntry;
    UNLOCK_TRANSACTION_LIST((INT64)Blink, v4);
    result = 0i64;
    KcbUow->Transaction = CmTrans;
  }
  return result;
}

Referenced by:

CmDeleteValueKey
CmRenameKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmSetValueKey
CmpCreateChild
CmpSetKeySecurity
CmpUndoDeleteKeyForTrans