PiCMSetProblem

VOID __fastcall PiCMSetProblem(WCHAR *SourceString, INT64 a2, INT64 a3){
  int v3; 
  int v4; 
  WCHAR v6; 
  int v7; 
  unsigned int v8; 
  int v9; 
  struct _UNICODE_STRING DestinationString; 
  __int128 v11; 
  __int64 v12; 
  int v13; 
  int v14; 
  v9 = 0;
  v13 = 0;
  v3 = a3;
  v14 = 0;
  v4 = a2;
  if( (unsigned int)(a3 - 1) <= 1 && (int)CmGetDeviceStatus(PiPnpRtlCtx, SourceString, 0i64, &v14, &v13, &v9, v8) >= 0 )
  {
    v7 = v13;
    if( !v4 || (v14 & 0x400) == 0 || v3 == 2 || v13 == v4 )
    {
      DestinationString = 0i64;
      v12 = 0i64;
      v11 = 0i64;
      RtlInitUnicodeString(&DestinationString, SourceString, v6);
      DWORD1(v11) = 1024;
      if( v4 )
      {
        LODWORD(v11) = 1;
        DWORD2(v11) = v4;
      }
      else
      {
        LODWORD(v11) = 2;
        DWORD2(v11) = v7;
      }
      ZwPlugPlayControl();
    }
  }
}

Referenced by:

PiCMDeviceAction
PiCMSetDeviceProblem