CmpSetValueKeyNew
INT64 __fastcall CmpSetValueKeyNew(
_HHIVE *Hive,
_CM_KEY_NODE *Parent,
_UNICODE_STRING *ValueName,
UINT64 Index,
UINT64 Type,
VOID *Data,
UINT64 DataSize,
UINT64 StorageType){
_HHIVE **p_KeyHive;
unsigned int v9;
unsigned int v12;
unsigned int v13;
UINT64 v15;
UINT64 v16;
p_KeyHive = &Parent->ChildHiveReference.KeyHive;
v9 = Index;
if( Parent->ValueList.Count && !HvMarkCellDirty((UINT64)Hive, Parent->ValueList.List, 0) )
return 3221225853i64;
LODWORD(v16) = StorageType;
LODWORD(v15) = DataSize;
v12 = CmpAddValueKeyNew(Hive, ValueName, (unsigned int)Type, Data, v15, v16);
v13 = v12;
if( v12 != -1 )
{
if( (int)CmpAddValueToList((UINT64)Hive, v12, v9, (unsigned int)StorageType, (UINT64 *)p_KeyHive) >= 0 )
return 0i64;
CmpFreeValue((UINT64)Hive, v13);
}
return 3221225626i64;
}Referenced by:
CmSetValueKey
CmpCommitSetValueKeyUoW