PnpDetermineResourceListSize
__int64 __fastcall PnpDetermineResourceListSize(_DWORD *a1){
_DWORD *v1;
__int64 result;
__int64 v3;
unsigned int v4;
_DWORD *v5;
unsigned int v6;
__int64 v7;
__int64 v8;
if( !a1 )
return 0i64;
v1 = a1 + 1;
result = 4i64;
if( *a1 )
{
v3 = (unsigned int)*a1;
do
{
v4 = v1[3];
v5 = v1 + 4;
v6 = 16;
if( v4 )
{
v7 = v4;
do
{
v8 = 20i64;
if( *(_BYTE *)v5 == 5 )
v8 = (unsigned int)(v5[1] + 20);
v6 += v8;
v5 = (_DWORD *)((char *)v5 + v8);
--v7;
}
while( v7 );
}
result = v6 + (unsigned int)result;
v1 = (_DWORD *)((char *)v1 + v6);
--v3;
}
while( v3 );
}
return result;
}Referenced by:
IoGetDeviceProperty
IoReportDetectedDevice
IopChangeInterfaceType
IopCombineCmResourceList
IopCombineLegacyResources
IopLegacyResourceAllocation
IopQueryDeviceResources
IopReportBootResources
PnpBuildCmResourceLists
PnpCopyResourceList
PnpRestoreResourcesInternal
PnpSetRegistryResourceList