CmpAllocateUnitOfWork

_CM_KCB_UOW *__fastcall CmpAllocateUnitOfWork(){
  _CM_KCB_UOW *PoolWithTag; 
  _CM_KCB_UOW *v1; 
  PoolWithTag = (_CM_KCB_UOW *)ExAllocatePoolWithTag(PagedPool, 0x78ui64, 0x77554D43ui64);
  v1 = PoolWithTag;
  if( PoolWithTag )
  {
    memset((INT64)PoolWithTag, 0i64);
    v1->KCBLock = 0i64;
    v1->KeyLock = 0i64;
    v1->KeyControlBlock = 0i64;
    v1->Transaction = 0i64;
    v1->UoWState = 0;
    v1->KCBListEntry.Blink = &v1->KCBListEntry;
    v1->KCBListEntry.Flink = &v1->KCBListEntry;
    v1->TransactionListEntry.Blink = &v1->TransactionListEntry;
    v1->TransactionListEntry.Flink = &v1->TransactionListEntry;
    v1->ActionType = UoWInvalid;
  }
  return v1;
}

Referenced by:

CmDeleteValueKey
CmRenameKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmSetValueKey
CmpCreateChild
CmpSetKeySecurity
CmpUndoDeleteKeyForTrans