CmpCopyName
UINT16 __stdcall CmpCopyName(PWCHAR Destination, _UNICODE_STRING *Source){
int Length;
__int64 v3;
wchar_t *Buffer;
Length = Source->Length;
v3 = 0i64;
if( (Length & 0xFFFFFFFE) == 0 )
return(unsigned __int16)Length >> 1;
while( 1 )
{
Buffer = Source->Buffer;
if( Buffer[v3] > 0xFFu )
break;
*((_BYTE *)Destination + v3) = Buffer[v3];
v3 = (unsigned int)(v3 + 1);
LOWORD(Length) = Source->Length;
if( (unsigned int)v3 >= Source->Length >> 1 )
return(unsigned __int16)Length >> 1;
}
memmove(Destination, Buffer, (unsigned __int16)Length);
return Source->Length;
}Referenced by:
CmRenameKey
CmpAddValueKeyNew
CmpAddValueKeyTombstone
CmpCreateChild
CmpCreateHiveRootCell
CmpCreateRootNode