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