TtmpSessionPowerControl

void __fastcall TtmpSessionPowerControl(__int64 a1, char a2, int a3){
  unsigned int v3; 
  _ETHREAD *CurrentThread; 
  v3 = *(_DWORD *)a1;
  TtmiLogSessionPowerControlStart(a2, (POWER_MONITOR_REQUEST_REASON)a3);
  *(_QWORD *)(a1 + 232) = 0i64;
  ExReleaseResourceLite(&TtmpSessionLock);
  KeLeaveCriticalRegion();
  PoSessionPowerControl(a2, (POWER_MONITOR_REQUEST_REASON)a3, v3);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  ExAcquireResourceExclusiveLite(&TtmpSessionLock, 1u);
  *(_QWORD *)(a1 + 232) = KeGetCurrentThread();
  TtmiLogSessionPowerControlStop();
}

Referenced by:

TtmpActivateSessionWorker
TtmpDeactivateSessionWorker