PnpDispatchDevicePanel
__int64 __fastcall PnpDispatchDevicePanel(__int64 a1, const wchar_t *a2, __int64 a3, int a4, __int64 a5){
__int64(__fastcall *v6)(__int64, __int64, int);
__int128 *v7;
int v8;
__int64 v10;
int v11;
int v12;
int v13;
__int64 v14;
int v15;
int v16;
__int128 v17;
v6 = 0i64;
v7 = 0i64;
v17 = 0i64;
v8 = a4 - 1;
if( !v8 )
return CmValidateDevicePanelName(a1, a2);
v10 = (unsigned int)(v8 - 1);
if( !(_DWORD)v10 )
return CmOpenDevicePanelRegKey(
a1,
a2,
(__int64)a2,
v10,
*(_DWORD *)a5,
*(_BYTE *)(a5 + 4),
*(_QWORD *)(a5 + 8),
(_DWORD *)(a5 + 16));
v11 = v10 - 1;
if( !v11 )
return 3221225474i64;
v12 = v11 - 1;
if( !v12 )
return 3221225474i64;
v13 = v12 - 1;
if( v13 )
{
v14 = (unsigned int)(v13 - 1);
if( (_DWORD)v14 )
{
v15 = v14 - 1;
if( v15 )
{
v16 = v15 - 1;
if( v16 )
{
if( v16 == 1 )
return CmSetDevicePanelMappedProperty(a1, 0i64, (__int64)a2, *(_QWORD *)(a5 + 8), *(_QWORD *)(a5 + 16));
else
return 3221225485i64;
}
else
{
return CmGetDevicePanelMappedProperty(
a1,
a2,
(__int64)a2,
*(_QWORD *)(a5 + 8),
*(_QWORD *)(a5 + 16),
*(_DWORD **)(a5 + 24),
*(GUID **)(a5 + 32),
*(_DWORD *)(a5 + 40),
*(_DWORD **)(a5 + 48));
}
}
else
{
return CmGetDevicePanelMappedPropertyLocales(
a1,
0i64,
(__int64)a2,
*(_QWORD *)(a5 + 8),
*(_WORD **)(a5 + 16),
*(_DWORD *)(a5 + 24),
*(_DWORD **)(a5 + 32));
}
}
else
{
return CmGetDevicePanelMappedPropertyKeys(
a5,
0i64,
(__int64)a2,
v14,
*(_QWORD *)(a5 + 24),
*(_DWORD *)(a5 + 32),
*(unsigned int **)(a5 + 40));
}
}
else
{
if( *(_QWORD *)a5 )
{
*(_QWORD *)&v17 = *(_QWORD *)a5;
v6 = PnpCmMatchCallbackRoutine;
v7 = &v17;
*((_QWORD *)&v17 + 1) = *(_QWORD *)(a5 + 8);
}
return CmGetMatchingDevicePanelList(
a1,
(__int64)v6,
(__int64)v7,
*(_QWORD *)(a5 + 16),
*(_DWORD *)(a5 + 24),
*(_QWORD *)(a5 + 32),
*(_DWORD *)(a5 + 40) & 0xFFFF0000);
}
}Referenced by:
No references.