Beispiel #1
0
        async Task ProcessQuantum(HandleItem handleItem)
        {
            var           envelope = handleItem.Quantum;
            var           tcs      = handleItem.HandlingTaskSource;
            ResultMessage result   = null;

            try
            {
                Context.ExtensionsManager.BeforeQuantumHandle(envelope);

                result = await HandleQuantumInternal(envelope, handleItem.Timestamp);

                if (result.Status != ResultStatusCodes.Success)
                {
                    throw new Exception("Failed to handle quantum.");
                }
                tcs.SetResult(result);
            }
            catch (Exception exc)
            {
                tcs.SetException(exc);
                OnProcessException(handleItem, result, exc);
            }
            Context.ExtensionsManager.AfterQuantumHandle(result);
        }
Beispiel #2
0
        async Task ProcessQuantum(HandleItem handleItem)
        {
            var           envelope = handleItem.Quantum;
            var           tcs      = handleItem.HandlingTaskSource;
            ResultMessage result   = null;

            try
            {
                Global.ExtensionsManager.BeforeQuantumHandle(envelope);

                result = await HandleQuantum(envelope, handleItem.Timestamp);

                if (result.Status != ResultStatusCodes.Success)
                {
                    throw new Exception();
                }
                tcs.SetResult(result);
            }
            catch (Exception exc)
            {
                if (result == null)
                {
                    result = envelope.CreateResult(exc);
                }
                Notifier.OnMessageProcessResult(result);
                tcs.SetException(exc);
                if (!Global.IsAlpha) //auditor should fail on quantum processing handling
                {
                    throw;
                }
            }
            Global.ExtensionsManager.AfterQuantumHandle(result);
        }
Beispiel #3
0
        private void menuHandle_Popup(object sender, EventArgs e)
        {
            protectedMenuItem.Checked = false;
            inheritMenuItem.Checked   = false;

            if (listHandles.SelectedItems.Count == 0)
            {
                //menuHandle.DisableAll();
            }
            else if (listHandles.SelectedItems.Count == 1)
            {
                menuHandle.EnableAll();

                HandleItem item = (HandleItem)listHandles.SelectedItems[0].Tag;

                protectedMenuItem.Checked = (item.Handle.Flags & HandleFlags.ProtectFromClose) != 0;
                inheritMenuItem.Checked   = (item.Handle.Flags & HandleFlags.Inherit) != 0;
            }
            else
            {
                menuHandle.EnableAll();
                propertiesHandleMenuItem.Enabled = false;
                protectedMenuItem.Enabled        = false;
                inheritMenuItem.Enabled          = false;
            }
        }
Beispiel #4
0
 private void provider_DictionaryRemoved(HandleItem item)
 {
     this.BeginInvoke(new MethodInvoker(() =>
     {
         lock (_listLock)
             listHandles.Items[item.Handle.Handle.ToString()].Remove();
     }));
 }
Beispiel #5
0
 protected override void OnProcessException(HandleItem handleItem, ResultMessage result, Exception exc)
 {
     if (result == null)
     {
         result = handleItem.Quantum.CreateResult(exc);
     }
     Context.OnMessageProcessResult(result);
 }
Beispiel #6
0
 private void provider_DictionaryModified(HandleItem oldItem, HandleItem newItem)
 {
     this.BeginInvoke(new MethodInvoker(() =>
     {
         lock (_listLock)
         {
             ((HighlightedListViewItem)this.listHandles.Items[newItem.Handle.Handle.ToString()]).NormalColor = this.GetHandleColor(newItem);
         }
     }));
 }
Beispiel #7
0
        /// <summary>
        /// Handles the quantum and returns Task.
        /// </summary>
        /// <param name="envelope">Quantum to handle</param>
        /// <param name="long">Quantum timestamp. We need it for quanta recovery, otherwise Alpha will have different hash.</param>
        public virtual Task <ResultMessage> HandleAsync(MessageEnvelope envelope, long timestamp = 0)
        {
            if (QuantaThrottlingManager.Current.IsThrottlingEnabled && QuantaThrottlingManager.Current.MaxItemsPerSecond <= awaitedQuanta.Count)
            {
                throw new TooManyRequestsException("Server is too busy. Try again later.");
            }
            var newHandleItem = new HandleItem(envelope, timestamp);

            awaitedQuanta.Add(newHandleItem);
            return(newHandleItem.HandlingTaskSource.Task);
        }
Beispiel #8
0
        private void provider_DictionaryAdded(HandleItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                                                                        item.RunId > 0 && _runCount > 0);

            litem.Name = item.Handle.Handle.ToString();
            litem.Text = item.ObjectInfo.TypeName;
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.ObjectInfo.BestName));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, "0x" + item.Handle.Handle.ToString("x")));
            litem.Tag = item;

            litem.NormalColor = this.GetHandleColor(item);

            lock (_needsAdd)
                _needsAdd.Add(litem);
        }
Beispiel #9
0
        private Color GetHandleColor(HandleItem item)
        {
            if (Settings.Instance.UseColorProtectedHandles &&
                (item.Handle.Flags & HandleFlags.ProtectFromClose) != 0
                )
            {
                return(Settings.Instance.ColorProtectedHandles);
            }

            if (Settings.Instance.UseColorInheritHandles &&
                (item.Handle.Flags & HandleFlags.Inherit) != 0
                )
            {
                return(Settings.Instance.ColorInheritHandles);
            }

            return(SystemColors.Window);
        }
Beispiel #10
0
 private Color GetHandleColor(HandleItem item)
 {
     if (Properties.Settings.Default.UseColorProtectedHandles &&
         (item.Handle.Flags & HandleFlags.ProtectFromClose) != 0
         )
     {
         return(Properties.Settings.Default.ColorProtectedHandles);
     }
     else if (Properties.Settings.Default.UseColorInheritHandles &&
              (item.Handle.Flags & HandleFlags.Inherit) != 0
              )
     {
         return(Properties.Settings.Default.ColorInheritHandles);
     }
     else
     {
         return(SystemColors.Window);
     }
 }
Beispiel #11
0
            public static void Handle(IClientMessage clientMessage, HandleItem handleItem)
            {
                var messageType = clientMessage.GetMessageType();

                if (messageType == EventMessageConst.EventItem)
                {
                    IData item       = null;
                    var   itemIsNull = clientMessage.GetBoolean();
                    if (!itemIsNull)
                    {
                        item = clientMessage.GetData();
                    }
                    var uuid      = clientMessage.GetStringUtf8();
                    var eventType = clientMessage.GetInt();
                    handleItem(item, uuid, eventType);
                    return;
                }
                Hazelcast.Logging.Logger.GetLogger(typeof(AbstractEventHandler))
                .Warning("Unknown message type received on event handler :" + clientMessage.GetMessageType());
            }
 public static void Handle(IClientMessage clientMessage, HandleItem handleItem)
 {
     int messageType = clientMessage.GetMessageType();
     if (messageType == EventMessageConst.EventItem)
     {
         IData item = null;
         bool item_isNull = clientMessage.GetBoolean();
         if (!item_isNull)
         {
             item = clientMessage.GetData();
         }
         string uuid = null;
         uuid = clientMessage.GetStringUtf8();
         int eventType;
         eventType = clientMessage.GetInt();
         handleItem(item, uuid, eventType);
         return;
     }
     Hazelcast.Logging.Logger.GetLogger(typeof(AbstractEventHandler)).Warning("Unknown message type received on event handler :" + clientMessage.GetMessageType());
 }
Beispiel #13
0
        private void inheritMenuItem_Click(object sender, EventArgs e)
        {
            HandleItem  item  = (HandleItem)listHandles.SelectedItems[0].Tag;
            HandleFlags flags = item.Handle.Flags;

            if ((flags & HandleFlags.Inherit) != 0)
            {
                flags &= ~HandleFlags.Inherit;
            }
            else
            {
                flags |= HandleFlags.Inherit;
            }

            try
            {
                //using (var phandle = new ProcessHandle(_pid, Program.MinProcessQueryRights))
                //KProcessHacker.Instance.SetHandleAttributes(phandle, new IntPtr(item.Handle.Handle), flags);
            }
            catch (Exception ex)
            {
                PhUtils.ShowException("Unable to set handle attributes", ex);
            }
        }
Beispiel #14
0
 private Color GetHandleColor(HandleItem item)
 {
     if (Properties.Settings.Default.UseColorProtectedHandles &&
         (item.Handle.Flags & HandleFlags.ProtectFromClose) != 0
         )
         return Properties.Settings.Default.ColorProtectedHandles;
     else if (Properties.Settings.Default.UseColorInheritHandles &&
         (item.Handle.Flags & HandleFlags.Inherit) != 0
         )
         return Properties.Settings.Default.ColorInheritHandles;
     else
         return SystemColors.Window;
 }
Beispiel #15
0
 private Color GetHandleColor(HandleItem item)
 {
     if (Settings.Instance.UseColorProtectedHandles &&
         (item.Handle.Flags & HandleFlags.ProtectFromClose) != 0
         )
         return Settings.Instance.ColorProtectedHandles;
     else if (Settings.Instance.UseColorInheritHandles &&
         (item.Handle.Flags & HandleFlags.Inherit) != 0
         )
         return Settings.Instance.ColorInheritHandles;
     else
         return SystemColors.Window;
 }
 protected override void OnProcessException(HandleItem handleItem, ResultMessage result, Exception exc)
 {
     throw exc;
 }
Beispiel #17
0
 public void AddItem(HandleItem item)
 {
     provider_DictionaryAdded(item);
 }
Beispiel #18
0
 public void AddItem(HandleItem item)
 {
     provider_DictionaryAdded(item);
 }
        private void LoadHandles(MemoryObject mo)
        {
            var dict = Dump.GetDictionary(mo);
            HandleItem item = new HandleItem();

            if (!dict.ContainsKey("Handle"))
                return;

            item.Handle.ProcessId = _item.Pid;
            item.Handle.Flags = (HandleFlags)Dump.ParseInt32(dict["Flags"]);
            item.Handle.Handle = (short)Dump.ParseInt32(dict["Handle"]);
            // Not really needed, just fill it in ignoring 32-bit vs 64-bit 
            // differences.
            item.Handle.Object = (Dump.ParseInt64(dict["Object"]) & 0xffffffff).ToIntPtr();
            item.Handle.GrantedAccess = Dump.ParseInt32(dict["GrantedAccess"]);

            if (dict.ContainsKey("TypeName"))
            {
                item.ObjectInfo.TypeName = dict["TypeName"];
                item.ObjectInfo.BestName = dict["ObjectName"];
            }

            if (Settings.Instance.HideHandlesWithNoName)
            {
                if (string.IsNullOrEmpty(item.ObjectInfo.BestName))
                    return;
            }

            listHandles.AddItem(item);
        }
Beispiel #20
0
 protected abstract void OnProcessException(HandleItem handleItem, ResultMessage result, Exception exc);
Beispiel #21
0
        private void provider_DictionaryAdded(HandleItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                item.RunId > 0 && _runCount > 0);

            litem.Name = item.Handle.Handle.ToString();
            litem.Text = item.ObjectInfo.TypeName;
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.ObjectInfo.BestName));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, "0x" + item.Handle.Handle.ToString("x")));
            litem.Tag = item;

            litem.NormalColor = this.GetHandleColor(item);

            lock (_needsAdd)
                _needsAdd.Add(litem);
        }
Beispiel #22
0
 private void provider_DictionaryRemoved(HandleItem item)
 {
     this.BeginInvoke(new MethodInvoker(() =>
         {
             lock (_listLock)
                 listHandles.Items[item.Handle.Handle.ToString()].Remove();
         }));
 }
Beispiel #23
0
 private void provider_DictionaryModified(HandleItem oldItem, HandleItem newItem)
 {
     this.BeginInvoke(new MethodInvoker(() =>
         {
             lock (_listLock)
             {
                 (listHandles.Items[newItem.Handle.Handle.ToString()] as
                     HighlightedListViewItem).NormalColor = this.GetHandleColor(newItem);
             }
         }));
 }