PoBlockConsoleSwitch

INT64 __fastcall PoBlockConsoleSwitch(_DWORD *a1){
  int ActiveConsoleId; 
  union _LARGE_INTEGER Interval; 
  Interval.QuadPart = -100000i64;
  while( 1 )
  {
    ActiveConsoleId = RtlGetActiveConsoleId();
    if( ActiveConsoleId != -1 )
    {
      a1[4] = 0;
      if( (int)PopDispatchStateCallout(a1, (__int64)&ActiveConsoleId) >= 0 )
        break;
    }
    KeDelayExecutionThread(0, 0, &Interval);
  }
  return RtlGetActiveConsoleId();
}

Referenced by:

PnprQuiesceDevices
PoPowerOffMonitor
PopAcquireAdaptiveLock
PopBlockSessionSwitch
PopDirectedDripsNotifyAppsAndServices
PopIssueActionRequest