CmGetDeviceMappedProperty
__int64 __fastcall CmGetDeviceMappedProperty(
__int64 a1,
wchar_t *a2,
void *a3,
__int64 a4,
__int64 a5,
int *a6,
wchar_t *a7,
unsigned int a8,
unsigned int *a9,
int a10){
unsigned int DeviceMappedPropertyFromRegProp;
DEVPROPKEY **v13;
unsigned int v14;
DEVPROPKEY *v15;
DEVPROPKEY **v16;
unsigned int v17;
DEVPROPKEY *v18;
DEVPROPKEY **v19;
unsigned int v20;
DEVPROPKEY *v21;
__int64 v22;
__int64 v24;
__int64 v25;
DeviceMappedPropertyFromRegProp = -1073741802;
if( (_WORD)a10 )
{
return(unsigned int)-1073741811;
}
else
{
*a9 = 0;
if( !a4 )
{
v13 = &CmDeviceRegPropMap;
v14 = 0;
while( 1 )
{
v15 = *v13;
if( *(_DWORD *)(a5 + 16) == (*v13)->pid )
{
v24 = *(_QWORD *)a5 - *(_QWORD *)&v15->fmtid.Data1;
if( *(_QWORD *)a5 == *(_QWORD *)&v15->fmtid.Data1 )
v24 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v15->fmtid.Data4;
if( !v24 )
break;
}
++v14;
v13 += 3;
if( v14 >= 0x21 )
goto LABEL_6;
}
DeviceMappedPropertyFromRegProp = CmGetDeviceMappedPropertyFromRegProp(
a1,
a2,
(__int64)a3,
a5,
a6,
a7,
a8,
a9,
a10);
if( DeviceMappedPropertyFromRegProp != -1073741802 )
return DeviceMappedPropertyFromRegProp;
LABEL_6:
v16 = &off_140983E70;
v17 = 0;
while( 1 )
{
v18 = *v16;
if( *(_DWORD *)(a5 + 16) == (*v16)->pid )
{
v25 = *(_QWORD *)a5 - *(_QWORD *)&v18->fmtid.Data1;
if( *(_QWORD *)a5 == *(_QWORD *)&v18->fmtid.Data1 )
v25 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v18->fmtid.Data4;
if( !v25 )
break;
}
++v17;
v16 += 4;
if( v17 >= 2 )
goto LABEL_9;
}
DeviceMappedPropertyFromRegProp = CmGetDeviceMappedPropertyFromInstanceKeyRegValue(
a1,
a2,
a3,
a5,
(__int64)a6,
(__int64)a7,
a8,
a9);
if( DeviceMappedPropertyFromRegProp != -1073741802 )
return DeviceMappedPropertyFromRegProp;
LABEL_9:
v19 = &off_140985E60;
v20 = 0;
while( 1 )
{
v21 = *v19;
if( *(_DWORD *)(a5 + 16) == (*v19)->pid )
{
v22 = *(_QWORD *)a5 - *(_QWORD *)&v21->fmtid.Data1;
if( *(_QWORD *)a5 == *(_QWORD *)&v21->fmtid.Data1 )
v22 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v21->fmtid.Data4;
if( !v22 )
break;
}
++v20;
v19 += 2;
if( v20 >= 0x1B )
return DeviceMappedPropertyFromRegProp;
}
return(unsigned int)CmGetDeviceMappedPropertyFromComposite(a1, a2, (char *)a3, a5, a6, a7, a8, a9, a10);
}
}
return DeviceMappedPropertyFromRegProp;
}Referenced by:
PnpDispatchDevice