PiDcHandleContainerEvent

NTSTATUS __stdcall PiDcHandleContainerEvent(PI_PNPRTL_OBJECT_EVENT *ObjectEvent){
  unsigned int v1; 
  NTSTATUS result; 
  unsigned int v3; 
  PI_PNPRTL_OBJECT_EVENT *i; 
  __int64 v5; 
  __int64 v6; 

  v1 = ObjectEvent[19];
  result = 0;
  v3 = 0;
  if( v1 )
  {
    for( i = ObjectEvent + 26; ; i += 8 )
    {
      if( !*(i - 1) && !*(_QWORD *)i && *(i - 2) == 55 )
      {
        v5 = 8i64 * v3;
        v6 = *(_QWORD *)&ObjectEvent[v5 + 20] - *(_QWORD *)&DEVPKEY_DeviceContainer_IsConnected.fmtid.Data1;
        if( !v6 )
          v6 = *(_QWORD *)&ObjectEvent[v5 + 22] - *(_QWORD *)DEVPKEY_DeviceContainer_IsConnected.fmtid.Data4;
        if( !v6 )
          break;
      }
      if( ++v3 >= v1 )
        return result;
    }
    return PiDcGenerateConfigNotificationIfContainerRequiresConfiguration(*(WCHAR **)(*((_QWORD *)ObjectEvent + 1)
                                                                                    + 16i64));
  }
  return result;
}

Referenced by:

PiDcHandleObjectEvent