PiUEventDeviceNeedsInstall

NTSTATUS __stdcall PiUEventDeviceNeedsInstall(WCHAR *DeviceId, UINT8 *DeviceNeedsInstall){
  int ObjectProperty; 
  INT64 v6[2]; 
  INT64 v7; 
  int v8; 

  *DeviceNeedsInstall = 0;
  v8 = 0;
  v6[0] = 0i64;
  LODWORD(v7) = 0;
  ObjectProperty = PnpGetObjectProperty(
                     *(&stru_140CF2E80 + 1214),
                     (INT64)DeviceId,
                     1i64,
                     0i64,
                     0i64,
                     (INT64)&DEVPKEY_Device_DevNodeStatus,
                     (INT64)&v7,
                     (INT64)&v8);
  if( ObjectProperty >= 0 )
  {
    ObjectProperty = PnpGetObjectProperty(
                       *(&stru_140CF2E80 + 1214),
                       (INT64)DeviceId,
                       1i64,
                       0i64,
                       0i64,
                       (INT64)&DEVPKEY_Device_ProblemCode,
                       (INT64)&v7,
                       (INT64)v6);
    if( ObjectProperty >= 0 )
    {
      if( (v8 & 0x40000) != 0 || (v8 & 0x400) != 0 && LODWORD(v6[0]) == 22 )
      {
        *DeviceNeedsInstall = 0;
      }
      else if( (v8 & 0x400) != 0 && (LODWORD(v6[0]) == 18 || LODWORD(v6[0]) == 1)
             || (ObjectProperty = PnpGetObjectProperty(
                                    *(&stru_140CF2E80 + 1214),
                                    (INT64)DeviceId,
                                    1i64,
                                    0i64,
                                    0i64,
                                    (INT64)&DEVPKEY_Device_ConfigFlags,
                                    (INT64)&v7,
                                    (INT64)v6 + 4),
                 ObjectProperty >= 0)
             && (v6[0] & 0x42000000000i64) != 0 )
      {
        *DeviceNeedsInstall = 1;
      }
    }
  }
  return ObjectProperty;
}

Referenced by:

PiUEventNotifyUserMode