CmGetInstallerClassMappedPropertyFromCoInstallers
__int64 __fastcall CmGetInstallerClassMappedPropertyFromCoInstallers(
__int64 a1,
const WCHAR *a2,
__int64 a3,
_DWORD *a4,
__int64 a5,
int a6,
__int64 a7){
_DWORD *v7;
unsigned int v8;
__int64 v9;
int v12;
int CachedContextBaseKey;
unsigned int v14;
struct _UNICODE_STRING DestinationString;
int v17;
int v18;
HANDLE KeyHandle;
v18 = HIDWORD(a3);
v7 = (_DWORD *)a7;
v8 = 0;
v9 = a5;
v17 = 0;
KeyHandle = 0i64;
*a4 = 0;
*v7 = 0;
if( v9 )
{
v12 = a6;
v9 &= -(__int64)(a6 != 0);
}
else
{
v12 = 0;
}
CachedContextBaseKey = PnpCtxGetCachedContextBaseKey(a1, 13, (__int64 *)&KeyHandle);
if( CachedContextBaseKey < 0 )
{
return(unsigned int)CachedContextBaseKey;
}
else
{
LODWORD(a7) = v12;
v14 = RegRtlQueryValue(KeyHandle, a2, &v17, (void *)v9, (__int64)&a7);
if( v14 == -1073741772 || v14 == -1073741444 )
{
return(unsigned int)-1073741275;
}
else if( !v14 || v14 == -1073741789 )
{
if( v17 == 7 )
{
*v7 = a7;
*a4 = 8210;
if( v14 || !v12 )
return(unsigned int)-1073741789;
}
else
{
DestinationString = 0i64;
if( (int)RtlInitUnicodeStringEx(&DestinationString, (WCHAR *)a2) >= 0 )
ZwDeleteValueKey(KeyHandle, &DestinationString);
}
}
else
{
return v14;
}
}
return v8;
}Referenced by:
CmGetInstallerClassMappedProperty
CmGetInstallerClassMappedPropertyKeys