WdipSemUpdateFrequentScenarioTable

__int64 __fastcall WdipSemUpdateFrequentScenarioTable(__int64 a1){
  _ETHREAD *CurrentThread; 
  unsigned int v2; 
  _QWORD *v4; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v2 = 0;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquirePushLockExclusiveEx(&stru_140C1C7E8, 0i64);
  if( a1 )
  {
    if( (unsigned int)dword_140C1C7E0 < 0x80 )
    {
      v4 = WdipSemFastAllocate(WDI_SEM_ALLOC_INFLIGHT_INFO, 0x18ui64);
      if( v4 )
      {
        *(_OWORD *)v4 = *(_OWORD *)a1;
        v4[2] = *(_QWORD *)(a1 + 16);
        WdipSemFrequentScenarioTable[dword_140C1C7E0++] = v4;
      }
      else
      {
        v2 = -1073741670;
      }
    }
    else
    {
      v2 = -1073741823;
    }
  }
  else
  {
    v2 = -1073741811;
  }
  ExReleasePushLockEx((ULONG_PTR)&stru_140C1C7E8, 0);
  KeLeaveCriticalRegionThread(KeGetCurrentThread());
  return v2;
}

Referenced by:

WdipSemLogInflightLimitExceededInformation