DmrFindDrhdForDeviceScope
VOID __stdcall DmrFindDrhdForDeviceScope(
INT64 a1,
INT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8,
INT64 a9,
INT64 a10,
INT64 a11){
__int16 v12;
INT64 v13;
INT64 v14;
UINT64 i;
char v16;
INT64 NextDrhdDeviceScope;
INT64 v18;
INT64 v19;
UINT64 NextRemappingStructure;
UINT64 v21;
v12 = a2;
v13 = a1;
if( *(_BYTE *)a3 == 1 )
{
v14 = 0i64;
while( 1 )
{
NextRemappingStructure = DmrGetNextRemappingStructure(a1, v14);
v21 = NextRemappingStructure;
if( !NextRemappingStructure )
break;
if( !*(_WORD *)NextRemappingStructure && *(_WORD *)(NextRemappingStructure + 6) == v12 )
{
if( (*(_BYTE *)(NextRemappingStructure + 4) & 1) != 0 )
return;
for( i = 0i64; ; i = v19 )
{
NextDrhdDeviceScope = DmrGetNextDrhdDeviceScope(v21, i);
v19 = NextDrhdDeviceScope;
if( !NextDrhdDeviceScope )
break;
DmrCheckPathMatch(NextDrhdDeviceScope, a3, v18);
if( v16 )
return;
}
}
v14 = v21;
a1 = v13;
}
}
}Referenced by:
DmrEnumerateRmrrDomains