TtmiOpenDefaultTerminal

NTSTATUS __stdcall TtmiOpenDefaultTerminal(
        _TTMI_SESSION *LockedSession,
        UINT64 DesiredAccess,
        INT8 PreviousMode,
        VOID **Handle){
  VOID *v4; 
  _ACCESS_MASK v7; 
  NTSTATUS v8; 
  int v9; 
  INT64 v10; 
  INT64 v11; 
  UINT64 v12; 
  _KPROCESSOR_MODE AccessMode; 
  VOID *Object; 

  v4 = (VOID *)*((_QWORD *)LockedSession + 3);
  Object = 0i64;
  v7 = DesiredAccess;
  v8 = ObReferenceObjectByHandle(v4, DesiredAccess, TtmpTerminalObjectType, 0, &Object, 0i64);
  v9 = v8;
  if( v8 < 0 )
  {
    v10 = (unsigned int)v8;
    v11 = (unsigned int)v8;
    v12 = 788i64;
LABEL_5:
    TtmiLogError((INT8 *)"TtmiOpenDefaultTerminal", v12, v11, v10);
    return v9;
  }
  LOBYTE(AccessMode) = PreviousMode;
  v9 = ObOpenObjectByPointer(
         Object,
         PreviousMode == 0 ? 0x200 : 0,
         0i64,
         v7,
         TtmpTerminalObjectType,
         AccessMode,
         Handle);
  HalPutDmaAdapter((PADAPTER_OBJECT)Object);
  if( v9 < 0 )
  {
    v10 = (unsigned int)v9;
    v11 = (unsigned int)v9;
    v12 = 813i64;
    goto LABEL_5;
  }
  return v9;
}

Referenced by:

TtmpDispatchOpenTerminal