PiDmInit

NTSTATUS __stdcall PiDmInit(){
  NTSTATUS result; 
  PI_DM_LIST_ID i; 

  PiDmObjectManagerInit((_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 2528), PNP_OBJECT_TYPE_DEVICE);
  PiDmObjectManagerInit((_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 2752), PNP_OBJECT_TYPE_DEVICE_INTERFACE);
  PiDmObjectManagerInit(
    (_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 2080),
    PNP_OBJECT_TYPE_DEVICE_INTERFACE_CLASS);
  PiDmObjectManagerInit((_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 2304), PNP_OBJECT_TYPE_DEVICE_CONTAINER);
  PiDmObjectManagerInit(
    (_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 2976),
    PNP_OBJECT_TYPE_DEVICE_INSTALLER_CLASS);
  PiDmObjectManagerInit((_PI_DM_OBJECT_MANAGER *)((char *)&PnpReplaceEvent + 3200), PNP_OBJECT_TYPE_CUSTOM_1);
  result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 632);
  if( result >= 0 )
  {
    result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 688);
    if( result >= 0 )
    {
      result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 520);
      if( result >= 0 )
      {
        result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 576);
        if( result >= 0 )
        {
          result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 744);
          if( result >= 0 )
          {
            result = PiDmObjectManagerPopulate((PI_DM_OBJECT_MANAGER *)&PnpReplaceEvent + 800);
            if( result >= 0 )
            {
              for( i = PiDmListInterfacesInInterfaceClass;
                    (unsigned int)i < (PiDmListDevicesInInstallerClass|PiDmListDevicesInContainer);
                    ++i )
              {
                result = PiDmListInit(i);
                if( result < 0 )
                  break;
              }
            }
          }
        }
      }
    }
  }
  return result;
}

Referenced by:

IopInitializePlugPlayServices