CmpInitializeValueNameString
VOID __fastcall CmpInitializeValueNameString(_CM_KEY_VALUE *Cell, _UNICODE_STRING *ValueName, _WCHAR *NameBuffer){
unsigned __int16 NameLength;
unsigned __int16 v4;
__int64 v5;
__int64 v6;
NameLength = Cell->NameLength;
if( (Cell->Flags & 1) != 0 )
{
v4 = 2 * NameLength;
ValueName->Length = v4;
if( v4 > 0x7FFFu )
CmSiBugCheck((PVOID)0x31, (PVOID)1, Cell, (PVOID)v4);
CmpCopyCompressedName(NameBuffer, 0x7FFFui64, Cell->Name, Cell->NameLength);
*(_QWORD *)(v5 + 8) = v6;
*(_WORD *)(v5 + 2) = 0x7FFF;
}
else
{
ValueName->Length = NameLength;
ValueName->Buffer = Cell->Name;
ValueName->MaximumLength = NameLength;
}
}Referenced by:
CmpCommitDeleteValueKeyUoW
CmpCommitSetValueKeyUoW
CmpLightWeightPrepareDeleteValueKeyUoW
CmpLightWeightPrepareSetValueKeyUoW
CmpMergeKeyValues