CmGetDevicePanelMappedProperty
NTSTATUS __fastcall CmGetDevicePanelMappedProperty(
__int64 a1,
const wchar_t *a2,
__int64 a3,
__int64 r9_0,
__int64 a5,
_DWORD *a6,
UINT64 *a4,
unsigned int a8,
_DWORD *a9){
NTSTATUS result;
int v11;
__int64 v12;
_GUID *v13;
UINT64 *v14;
UINT64 *v15;
result = -1073741802;
*a9 = 0;
if( !r9_0 )
{
v11 = *(_DWORD *)(a5 + 16);
switch( v11 )
{
case 2:
v12 = *(_QWORD *)a5 - DEVPKEY_DevicePanel_ContainerId;
if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_ContainerId )
v12 = *(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64;
if( !v12 )
{
*a6 = 13;
*a9 = 16;
if( a8 < 0x10 )
return -1073741789;
v13 = (_GUID *)a4;
v14 = 0i64;
goto LABEL_21;
}
break;
case 3:
v13 = (_GUID *)(*(_QWORD *)a5 - DEVPKEY_DevicePanel_Group);
if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_Group )
v13 = (_GUID *)(*(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64);
if( !v13 )
{
*a6 = 7;
*a9 = 4;
if( a8 < 4 )
return -1073741789;
v15 = a4;
v14 = 0i64;
return CmSplitDevicePanelId(a2, v13, v15, v14);
}
break;
case 4:
v13 = (_GUID *)(*(_QWORD *)a5 - DEVPKEY_DevicePanel_Side);
if( *(_QWORD *)a5 == DEVPKEY_DevicePanel_Side )
v13 = (_GUID *)(*(_QWORD *)(a5 + 8) + 0x488426EC2804D35Ai64);
if( !v13 )
{
*a6 = 7;
*a9 = 4;
if( a8 < 4 )
return -1073741789;
v14 = a4;
LABEL_21:
v15 = 0i64;
return CmSplitDevicePanelId(a2, v13, v15, v14);
}
break;
}
}
return result;
}Referenced by:
PnpDispatchDevicePanel