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