CmpAddValueKeyTombstone
UINT64 __stdcall CmpAddValueKeyTombstone(_HHIVE *Hive, _UNICODE_STRING *ValueName, HSTORAGE_TYPE StorageType){
UINT16 v5;
HSTORAGE_TYPE v6;
unsigned int v7;
_WORD *v9;
unsigned __int16 v10;
VOID *CellAddress;
_HV_GET_CELL_CONTEXT CellAddressContext;
CellAddressContext = (_HV_GET_CELL_CONTEXT)0xFFFFFFFFi64;
CellAddress = 0i64;
v5 = CmpNameSize(ValueName);
v7 = HvAllocateCell(Hive, (unsigned int)v5 + 20, v6, &CellAddress, &CellAddressContext);
if( v7 == -1 )
return 0xFFFFFFFFi64;
v9 = CellAddress;
memset((INT64)CellAddress, 0i64);
*v9 = 27510;
v9[8] = 2;
*((_DWORD *)v9 + 1) = 0;
*((_DWORD *)v9 + 2) = -1;
*((_DWORD *)v9 + 3) = 0;
v10 = CmpCopyName(v9 + 10, ValueName);
v9[1] = v10;
if( v10 < ValueName->Length )
v9[8] |= 1u;
Hive->ReleaseCellRoutine(Hive, &CellAddressContext);
return v7;
}Referenced by:
CmpSetValueKeyTombstone