IopCombineCmResourceList
CM_RESOURCE_LIST *__stdcall IopCombineCmResourceList(CM_RESOURCE_LIST *ResourceListA, CM_RESOURCE_LIST *ResourceListB){
CM_RESOURCE_LIST *v5;
__int64 v6;
int v7;
unsigned int v8;
UINT8 *PoolWithTag;
if( !ResourceListA )
return ResourceListB;
if( !ResourceListB )
return ResourceListA;
v5 = 0i64;
v6 = (unsigned int)PnpDetermineResourceListSize(ResourceListA);
v7 = PnpDetermineResourceListSize(ResourceListB);
if( (_DWORD)v6 && v7 )
{
v8 = v7 - 4;
PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(PagedPool, (unsigned int)(v7 - 4 + v6), 0x20207050ui64);
v5 = (CM_RESOURCE_LIST *)PoolWithTag;
if( PoolWithTag )
{
memmove(PoolWithTag, (UINT8 *)ResourceListA, (unsigned int)v6);
memmove((UINT8 *)v5 + v6, (UINT8 *)ResourceListB + 4, v8);
*(_DWORD *)v5 += *(_DWORD *)ResourceListB;
}
}
return v5;
}Referenced by:
IopAllocateLegacyBootResources