TtmpDispatchEvacuateDevices

NTSTATUS __stdcall TtmpDispatchEvacuateDevices(_TTM_API_EVACUATE_DEVICES_INPUT *Input){
  VOID *v1; 
  NTSTATUS v2; 
  NTSTATUS v3; 
  _TTMI_SESSION *LockedSession; 
  _TTMI_TERMINAL *Terminal; 

  v1 = (VOID *)*((_QWORD *)Input + 1);
  LockedSession = 0i64;
  Terminal = 0i64;
  v2 = TtmpAcquireSessionFromTerminalHandle(v1, 0, 1u, &LockedSession, &Terminal);
  v3 = v2;
  if( v2 >= 0 )
  {
    if( TtmiEvacuateDevices(LockedSession, Terminal) )
      TtmiScheduleSessionWorker((__int64)LockedSession, 1);
    v3 = 0;
  }
  else
  {
    TtmiLogError((INT8 *)"TtmpDispatchEvacuateDevices", 0x267ui64, (unsigned int)v2, (unsigned int)v2);
  }
  if( LockedSession )
  {
    ExReleaseResourceLite(&TtmpSessionLock);
    KeLeaveCriticalRegion();
  }
  if( Terminal )
    HalPutDmaAdapter((PADAPTER_OBJECT)Terminal);
  return v3;
}

Referenced by:

TtmDispatchApi