PnpDispatchDeviceContainer
__int64 __fastcall PnpDispatchDeviceContainer(__int64 a1, const WCHAR *a2, __int64 a3, int a4, __int64 a5){
__int64(__fastcall *v6)(__int64, __int64, int);
__int128 *v7;
int v8;
__int64 v9;
int v10;
int v11;
int v12;
__int64 v13;
int v14;
int v15;
__int128 v17;
v6 = 0i64;
v7 = 0i64;
v17 = 0i64;
v8 = a4 - 1;
if( !v8 )
return CmValidateDeviceContainerName(a1, a2);
v9 = (unsigned int)(v8 - 1);
if( !(_DWORD)v9 )
return CmOpenDeviceContainerRegKey(
a1,
a2,
0i64,
v9,
*(_DWORD *)a5,
*(_BYTE *)(a5 + 4),
*(_QWORD *)(a5 + 8),
(_DWORD *)(a5 + 16));
v10 = v9 - 1;
if( !v10 )
return 3221225474i64;
v11 = v10 - 1;
if( !v11 )
return 3221225474i64;
v12 = v11 - 1;
if( v12 )
{
v13 = (unsigned int)(v12 - 1);
if( (_DWORD)v13 )
{
v14 = v13 - 1;
if( v14 )
{
v15 = v14 - 1;
if( v15 )
{
if( v15 == 1 )
return CmSetDeviceContainerMappedProperty(a1, 0i64, 0i64, *(_QWORD *)(a5 + 8), *(_QWORD *)(a5 + 16));
else
return 3221225485i64;
}
else
{
return CmGetDeviceContainerMappedProperty(
a1,
a2,
*(_QWORD *)a5,
*(_QWORD *)(a5 + 8),
*(_QWORD *)(a5 + 16),
*(_DWORD **)(a5 + 24),
*(_BYTE **)(a5 + 32),
*(_DWORD *)(a5 + 40),
*(_DWORD **)(a5 + 48));
}
}
else
{
return CmGetDeviceContainerMappedPropertyLocales(
a1,
0i64,
0i64,
*(_QWORD *)(a5 + 8),
*(_WORD **)(a5 + 16),
*(_DWORD *)(a5 + 24),
*(_DWORD **)(a5 + 32));
}
}
else
{
return CmGetDeviceContainerMappedPropertyKeys(
a5,
0i64,
0i64,
v13,
*(_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 CmGetMatchingDeviceContainerList(
a1,
(__int64)v6,
(__int64)v7,
*(_QWORD *)(a5 + 16),
*(_DWORD *)(a5 + 24),
*(_QWORD *)(a5 + 32),
*(_DWORD *)(a5 + 40) & 0xFFFF0000);
}
}Referenced by:
No references.