PiProfileUpdateDeviceTreeCallback

__int64 __fastcall PiProfileUpdateDeviceTreeCallback(__int64 a1, const WCHAR *a2, INT64 a3){
  int v3; 
  v3 = *(_DWORD *)(a1 + 300);
  if( v3 == 776 )
  {
    if( !(unsigned int)PnpIsDeviceInstanceEnabled(0i64, (UNICODE_STRING *)(a1 + 40), 0i64) )
      PnpRequestDeviceRemoval(a1, 0, 22, 0);
  }
  else if( ((v3 - 770) & 0xFFFFFFEF) == 0 && (*(_DWORD *)(a1 + 396) & 0x2000) != 0 && *(_DWORD *)(a1 + 404) == 22 )
  {
    PipClearDevNodeProblem(a1, a2, a3);
    if( (unsigned int)PnpIsDeviceInstanceEnabled(0i64, (UNICODE_STRING *)(a1 + 40), 0i64) )
    {
      PnpRestartDeviceNode(a1);
      IoInvalidateDeviceRelations(*(DEVICE_OBJECT **)(*(_QWORD *)(a1 + 16) + 32i64), BusRelations);
    }
    else
    {
      PipSetDevNodeProblem(a1, 22, 0);
    }
  }
  return 0i64;
}

Referenced by:

No references.