NtSetDefaultHardErrorPort

NTSTATUS __stdcall NtSetDefaultHardErrorPort(PVOID DefaultHardErrorPort){
  __int64 *CurrentServerSiloGlobals; 
  NTSTATUS result; 
  void *v4; 
  PVOID Object; 
  CurrentServerSiloGlobals = PsGetCurrentServerSiloGlobals();
  if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, *((_BYTE *)KeGetCurrentThread() + 562)) )
    return -1073741727;
  if( *((_DWORD *)CurrentServerSiloGlobals + 224) == 1 )
    return -1073741823;
  Object = 0i64;
  result = ObReferenceObjectByHandle(
             DefaultHardErrorPort,
             0,
             LpcPortObjectType,
             *((_BYTE *)KeGetCurrentThread() + 562),
             &Object,
             0i64);
  CurrentServerSiloGlobals[111] = (__int64)Object;
  if( result >= 0 )
  {
    if( !PsIsCurrentThreadInServerSilo() )
      ExReadyForErrors = 1;
    *((_DWORD *)CurrentServerSiloGlobals + 224) = 1;
    v4 = (void *)*((_QWORD *)KeGetCurrentThread() + 23);
    CurrentServerSiloGlobals[110] = (__int64)v4;
    ObfReferenceObject(v4);
    return 0;
  }
  return result;
}

Referenced by:

No references.