PiDmInit

INT64 __fastcall PiDmInit(){
  INT64 result; 
  unsigned int i; 
  PiDmObjectManagerInit((__int64)&PiDmDeviceManager, 1);
  PiDmObjectManagerInit((__int64)&PiDmDeviceInterfaceManager, 3);
  PiDmObjectManagerInit((__int64)&PiDmDeviceInterfaceClassManager, 4);
  PiDmObjectManagerInit((__int64)&PiDmDeviceContainerManager, 5);
  PiDmObjectManagerInit((__int64)&PiDmDeviceInstallerClassManager, 2);
  PiDmObjectManagerInit((__int64)&PiDmDevicePanelManager, 6);
  result = PiDmObjectManagerPopulate((INT64)&PiDmDeviceManager);
  if( (int)result >= 0 )
  {
    result = PiDmObjectManagerPopulate((INT64)&PiDmDeviceInterfaceManager);
    if( (int)result >= 0 )
    {
      result = PiDmObjectManagerPopulate((INT64)&PiDmDeviceInterfaceClassManager);
      if( (int)result >= 0 )
      {
        result = PiDmObjectManagerPopulate((INT64)&PiDmDeviceContainerManager);
        if( (int)result >= 0 )
        {
          result = PiDmObjectManagerPopulate((INT64)&PiDmDeviceInstallerClassManager);
          if( (int)result >= 0 )
          {
            result = PiDmObjectManagerPopulate((INT64)&PiDmDevicePanelManager);
            if( (int)result >= 0 )
            {
              for( i = 0; i < 7; ++i )
              {
                result = PiDmListInit(i);
                if( (int)result < 0 )
                  break;
              }
            }
          }
        }
      }
    }
  }
  return result;
}

Referenced by:

IopInitializePlugPlayServices