WmipMangleInstanceName
NTSTATUS __stdcall WmipMangleInstanceName(
const _GUID *Guid,
const WCHAR *OriginalName,
UINT64 MaxMangledNameLen,
WCHAR *MangledName){
NTSTATUS v5;
WCHAR *v8;
tagGUIDENTRY *GEByGuid;
__int64 v10;
WCHAR i;
tagInstanceSet *ISinGEbyName;
UINT64 InstanceIndex;
__int64 v15[6];
v5 = 0;
LODWORD(InstanceIndex) = 0;
v15[0] = 0i64;
RtlStringCchLengthW((WCHAR *)OriginalName, 0x7FFFFFFFui64, (UINT64 *)v15);
RtlStringCchCopyW(MangledName, MaxMangledNameLen, v8);
GEByGuid = WmipFindGEByGuid((_GUID *)Guid, 0);
if( GEByGuid )
{
v10 = v15[0] - 1;
for( i = 90; ; MangledName[v10] = i )
{
ISinGEbyName = WmipFindISinGEbyName(GEByGuid, MangledName, &InstanceIndex);
if( !ISinGEbyName )
break;
WmipUnreferenceEntry((__int64)&stru_140C00F40 + 4496, (volatile signed __int64 *)ISinGEbyName);
if( i == 90 )
{
++v10;
i = 65;
if( v10 == MaxMangledNameLen - 1 )
{
v5 = -1073741670;
break;
}
MangledName[v10 + 1] = 0;
}
else
{
++i;
}
}
WmipUnreferenceEntry((__int64)&stru_140C00F40 + 4528, (volatile signed __int64 *)GEByGuid);
}
return v5;
}Referenced by:
WmipBuildInstanceSet