TtmpCloseTerminalHandle

VOID __stdcall TtmpCloseTerminalHandle(
        PEPROCESS Process,
        VOID *Object,
        UINT64 ProcessHandleCount,
        UINT64 SystemHandleCount){
  unsigned int v5; 
  unsigned int v8; 
  _ETHREAD *CurrentThread; 
  VOID *ProcessId; 

  v5 = *((_DWORD *)Object + 7);
  v8 = **((_DWORD **)Object + 2);
  if( SystemHandleCount == 1 )
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --CurrentThread->Tcb.KernelApcDisable;
    ExAcquireResourceExclusiveLite((UINT64)&TtmpSessionLock, 1, ProcessHandleCount);
    TtmpSetTerminalPendingCleanup(*((_TTMI_SESSION **)Object + 2), (_TTMI_TERMINAL *)Object);
    ExReleaseResourceLite(&TtmpSessionLock);
    KeLeaveCriticalRegion();
  }
  ProcessId = PsGetProcessId(Process);
  TtmiLogTerminalHandleClosed(v8, v5, ProcessId, SystemHandleCount);
}

Referenced by:

No references.