PiDevCfgConfigureDeviceDriver

__int64 __fastcall PiDevCfgConfigureDeviceDriver(__int64 a1, __int64 a2, __int64 a3, _DWORD *a4, _DWORD *a5){
  _DWORD *v5; 
  void *v8; 
  int v11; 
  __int64 *v12; 
  __int64 i; 
  int v15[4]; 
  int v16; 
  v5 = a5;
  v16 = 0;
  v8 = *(void **)(a3 + 32);
  v15[0] = 0;
  v11 = PiDevCfgConfigureDeviceDriverConfiguration(a1, a2, v8, -1, 0i64, 0i64, a4, a5);
  if( v11 >= 0 )
  {
    v12 = (__int64 *)(a3 + 368);
    for( i = *v12; (__int64 *)i != v12; i = *(_QWORD *)i )
    {
      v11 = PiDevCfgConfigureDeviceDriverConfiguration(
              a1,
              a2,
              *(void **)(i + 32),
              *(_DWORD *)(i + 104),
              (__int64)PiDevCfgConfigurePropertyMatchCallback,
              i,
              &v16,
              v15);
      if( v11 < 0 )
        break;
      if( a4 )
        *a4 |= v16;
      if( v5 )
        *v5 |= v15[0];
    }
  }
  return(unsigned int)v11;
}

Referenced by:

PiDevCfgConfigureDevice
PpDevCfgProcessDeviceExtensions