Exemple #1
0
        public static int IsManaged(this ICorPublishProcess instance)
        {
            int pbManaged;

            instance.__IsManaged(out pbManaged);
            return(pbManaged);
        }
Exemple #2
0
        public static uint GetProcessID(this ICorPublishProcess instance)
        {
            uint pid;

            instance.__GetProcessID(out pid);
            return(pid);
        }
Exemple #3
0
        public static ICorPublishAppDomainEnum EnumAppDomains(this ICorPublishProcess instance)
        {
            ICorPublishAppDomainEnum ppEnum;

            instance.__EnumAppDomains(out ppEnum);
            return(ppEnum);
        }
Exemple #4
0
        public static bool IsManaged(int processId)        //TODO: Why isn't this method used by AttachToProcessWindow?
        {
            var corPublish             = new CorpubPublishClass();
            ICorPublishProcess process = corPublish.GetProcess((uint)processId);

            if (process != null)
            {
                return(process.IsManaged() != 0);
            }
            return(false);
        }
            public bool MoveNext()
            {
                uint pceltFetched = 0;

                this.Processes.Next(1, out this.CurrentProcess, out pceltFetched);
                if (pceltFetched != 1)
                {
                    this.CurrentProcess = null;
                }
                return((this.CurrentProcess != null) && (pceltFetched == 1));
            }
Exemple #6
0
        public bool IsManaged(int processId)
        {
            corPublish = new CorpubPublishClass();
            CorDbg.Interop.TrackedComObjects.Track(corPublish);

            ICorPublishProcess process = corPublish.GetProcess((uint)processId);

            if (process != null)
            {
                return(process.IsManaged() != 0);
            }
            return(false);
        }
        public bool IsManaged(int processId)
        {
            if (corPublish == null)
            {
                corPublish = new ICorPublish();
            }

            ICorPublishProcess process = corPublish.GetProcess(processId);

            if (process != null)
            {
                return(process.IsManaged);
            }
            return(false);
        }
        public static ManagedProcessInfo GetProcessByID(uint ID)
        {
            ICorPublish publish = (ICorPublish) new CorpubPublish();

            if (publish != null)
            {
                ICorPublishProcess ppProcess = null;
                publish.GetProcess(ID, out ppProcess);
                if (ppProcess != null)
                {
                    return(new ManagedProcessInfo(ppProcess));
                }
            }
            return(null);
        }
 public void Reset()
 {
     this.Processes.Reset();
     this.CurrentProcess = null;
 }
 public static void Next(this CorpubPublishClass instance, uint celt, out ICorPublishProcess objects, out uint pceltFetched)
 {
     instance.__Next(celt, out objects, out pceltFetched);
     ProcessOutParameter(objects);
 }
Exemple #11
0
 internal CorPublishProcess(ICorPublishProcess iprocess)
 {
     m_process = iprocess;
 }
		public static void Next(this ICorPublishProcessEnum instance, uint celt, out ICorPublishProcess objects, out uint pceltFetched)
		{
			instance.__Next(celt, out objects, out pceltFetched);
			ProcessOutParameter(objects);
		}
Exemple #13
0
 internal CorPublishProcess(ICorPublishProcess iprocess)
 {
     m_process = iprocess;
 }
Exemple #14
0
 public static void GetDisplayName(this ICorPublishProcess instance, uint cchName, out uint pcchName, StringBuilder szName)
 {
     instance.__GetDisplayName(cchName, out pcchName, szName);
 }
 // Methods
 internal ManagedProcessInfoCollection(ICorPublishProcessEnum AllProcesses)
 {
     this.Processes      = AllProcesses;
     this.CurrentProcess = null;
 }
 // Methods
 internal ManagedProcessInfo(ICorPublishProcess SingleProcess)
 {
     this.Process = SingleProcess;
 }
 public static void Next(this CorpubPublishClass instance, uint celt, out ICorPublishProcess objects, out uint pceltFetched)
 {
     instance.__Next(celt, out objects, out pceltFetched);
 }
Exemple #18
0
 public ICorPublishProcess GetProcess(int id)
 {
     Interop.CorPub.ICorPublishProcess process;
     this.corpubPublishClass.GetProcess((uint)id, out process);
     return(ICorPublishProcess.Wrap(process));
 }
 public virtual extern void GetProcess([In] uint pid, [MarshalAs(UnmanagedType.Interface)] out ICorPublishProcess ppProcess);
 public virtual extern void Next([In] uint celt, [MarshalAs(UnmanagedType.Interface)] out ICorPublishProcess objects, out uint pceltFetched);
Exemple #21
0
 public static void Next(this ICorPublishProcessEnum instance, uint celt, out ICorPublishProcess objects, out uint pceltFetched)
 {
     instance.__Next(celt, out objects, out pceltFetched);
 }
        void EnumAppDomainsShown(object sender, EventArgs e)
        {
            ICorPublish publish = (ICorPublish) new CorpubPublish();

            if (publish != null)
            {
                ICorPublishProcess ppProcess = null;
                try
                {
                    publish.GetProcess((uint)procid, out ppProcess);
                }
                catch
                {
                }

                if (ppProcess != null)
                {
                    bool IsManaged = false;
                    ppProcess.IsManaged(out IsManaged);
                    if (IsManaged)
                    {
// Enumerate the domains within the process.
                        ICorPublishAppDomainEnum ppEnum = null;
                        ppProcess.EnumAppDomains(out ppEnum);

                        ICorPublishAppDomain pappDomain; // ICorPublishAppDomain
                        uint aFetched = 0;
                        while (ppEnum.Next(1, out pappDomain, out aFetched) == 0 && aFetched > 0)
                        {
                            StringBuilder szName = null;
                            try
                            {
                                uint pcchName = 0;
                                pappDomain.GetName(0, out pcchName, null);
                                szName = new StringBuilder((int)pcchName);
                                pappDomain.GetName((uint)szName.Capacity, out pcchName, szName);
                            }
                            catch
                            {
                            }

                            string appdomainname = szName.ToString();
                            uint   appdomainid   = 0;
                            pappDomain.GetID(out appdomainid);

                            ListViewItem appdomaintoadd = new ListViewItem(new string[] { appdomainid.ToString(), appdomainname });
                            lvdomains.Items.Add(appdomaintoadd);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Selected process is not a managed .NET process!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else
                {
                    MessageBox.Show("Failed to open slected process \r\n" +
                                    "maybe is not a .NET process!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }