Exemplo n.º 1
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] processInfo)
        {
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                var result =
                    GgpGetName(enum_GETNAME_TYPE.GN_FILENAME, out processInfo[0].bstrFileName);
                if (result != VSConstants.S_OK)
                {
                    return(result);
                }
                processInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                var result =
                    GgpGetName(enum_GETNAME_TYPE.GN_BASENAME, out processInfo[0].bstrBaseName);
                if (result != VSConstants.S_OK)
                {
                    return(result);
                }
                processInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
            {
                var result =
                    GgpGetName(enum_GETNAME_TYPE.GN_TITLE, out processInfo[0].bstrTitle);
                if (result != VSConstants.S_OK)
                {
                    return(result);
                }
                processInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
            {
                var result =
                    GgpGetAttachedSessionName(out processInfo[0].bstrAttachedSessionName);
                if (result != VSConstants.S_OK)
                {
                    return(result);
                }
                processInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
            {
                processInfo[0].dwSessionId = 0;
                processInfo[0].Fields     |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
            {
                processInfo[0].Flags   = 0;
                processInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }

            return(VSConstants.S_OK);
        }
Exemplo n.º 2
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     pProcessInfo[0].Fields       = Fields;
     pProcessInfo[0].bstrTitle    = "ttt";
     pProcessInfo[0].bstrBaseName = "ttt";
     pProcessInfo[0].bstrFileName = "ttt";
     return(Constants.S_OK);
 }
Exemplo n.º 3
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) {
     // The various string fields should match the strings returned by GetName - keep them in sync when making any changes here.
     var pi = new PROCESS_INFO();
     pi.Fields = Fields;
     pi.bstrFileName = _exe;
     pi.bstrBaseName = BaseName;
     pi.bstrTitle = Title;
     pi.ProcessId.dwProcessId = (uint)_pid;
     pProcessInfo[0] = pi;
     return 0;
 }
Exemplo n.º 4
0
        /// <summary>
        /// Gets a description of the process.
        /// </summary>
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            DLog.Debug(DContext.VSDebuggerComCall, "IDebugProcess2.GetInfo {0}", fields);

            var foundFields = (enum_PROCESS_INFO_FIELDS)0;
            var info        = new PROCESS_INFO();

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                info.bstrFileName = apkPath;
                foundFields      |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                info.bstrBaseName = Path.GetFileName(apkPath);
                foundFields      |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
            {
                info.bstrTitle = Path.GetFileName(apkPath);
                foundFields   |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
            {
                var arr = new AD_PROCESS_ID[0];
                GetPhysicalProcessId(arr);
                info.ProcessId = arr[0];
                foundFields   |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
            {
                info.dwSessionId = 1;
                foundFields     |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
            {
                info.bstrAttachedSessionName = "<deprecated>";
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME) != 0)
            {
                var fileTime = DateTime.Now.ToFileTime();
                info.CreationTime.dwLowDateTime  = (uint)(fileTime & 0xFFFFFFFF);
                info.CreationTime.dwHighDateTime = (uint)(fileTime >> 32);
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
            {
                pProcessInfo[0].Flags = GetProcessStatus();
                foundFields          |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }
            pProcessInfo[0].Fields = foundFields;
            return(VSConstants.S_OK);
        }
Exemplo n.º 5
0
        int IDebugProcess2.GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
        {
            pProcessInfo[0]              = new PROCESS_INFO();
            pProcessInfo[0].Fields       = Fields;
            pProcessInfo[0].bstrFileName = "test.lua";
            pProcessInfo[0].bstrBaseName = "base";
            pProcessInfo[0].bstrTitle    = "title";
            pProcessInfo[0].dwSessionId  = 1;
            pProcessInfo[0].Flags        = enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING;

            return(VSConstants.S_OK);
        }
Exemplo n.º 6
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            Log.Debug("Process: GetInfo");

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                pProcessInfo[0].bstrFileName = Node.FileName;
                pProcessInfo[0].Flags = enum_PROCESS_INFO_FLAGS.PIFLAG_DEBUGGER_ATTACHED |
                                        enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING;
                pProcessInfo[0].Fields = enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME | enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }
            return VSConstants.S_OK;
        }
Exemplo n.º 7
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            Log.Debug("Process: GetInfo");

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                pProcessInfo[0].bstrFileName = Node.FileName;
                pProcessInfo[0].Flags        = enum_PROCESS_INFO_FLAGS.PIFLAG_DEBUGGER_ATTACHED |
                                               enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING;
                pProcessInfo[0].Fields = enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME | enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }
            return(VSConstants.S_OK);
        }
Exemplo n.º 8
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
        {
            // The various string fields should match the strings returned by GetName - keep them in sync when making any changes here.
            var pi = new PROCESS_INFO();

            pi.Fields                = Fields;
            pi.bstrFileName          = this._exe;
            pi.bstrBaseName          = this.BaseName;
            pi.bstrTitle             = this.Title;
            pi.ProcessId.dwProcessId = (uint)this._id;
            pProcessInfo[0]          = pi;
            return(VSConstants.S_OK);
        }
Exemplo n.º 9
0
            public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
            {
                // The various string fields should match the strings returned by GetName - keep them in sync when making any changes here.
                var pi = new PROCESS_INFO {
                    Fields       = Fields,
                    bstrFileName = Name,
                    bstrBaseName = Name,
                    bstrTitle    = "",
                    ProcessId    = { dwProcessId = ProcessId }
                };

                pProcessInfo[0] = pi;
                return(VSConstants.S_OK);
            }
Exemplo n.º 10
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
        {
            // The various string fields should match the strings returned by GetName - keep them in sync when making any changes here.
            var pi = new PROCESS_INFO
            {
                Fields       = Fields,
                bstrFileName = _exe,
                bstrBaseName = BaseName,
                bstrTitle    = Title
            };

            pi.ProcessId.dwProcessId = (uint)_pid;
            pProcessInfo[0]          = pi;
            return(0);
        }
Exemplo n.º 11
0
        int IDebugProcess2.GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                pProcessInfo[0].bstrBaseName = Constants.RemotePortName;
                pProcessInfo[0].Fields      |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
            {
                pProcessInfo[0].bstrAttachedSessionName = Constants.RemotePortName;
                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }

            return(VSConstants.S_OK);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Gets a description of the process. (http://msdn.microsoft.com/en-us/library/bb145895.aspx)
        /// </summary>
        /// <param name="Fields"> A combination of values from the PROCESS_INFO_FIELDS enumeration that specifies which fields of
        /// the pProcessInfo parameter are to be filled in. </param>
        /// <param name="pProcessInfo"> A PROCESS_INFO structure that is filled in with a description of the process. </param>
        /// <returns> VSConstants.S_OK. </returns>
        public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
        {
            try
            {
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
                {
                    pProcessInfo[0].bstrFileName = this._name;
                    pProcessInfo[0].Fields      |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
                {
                    pProcessInfo[0].bstrBaseName = this._name.Substring(_name.LastIndexOf('/') + 1);
                    pProcessInfo[0].Fields      |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
                {
                    pProcessInfo[0].bstrTitle = this._name;
                    pProcessInfo[0].Fields   |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
                {
                    pProcessInfo[0].ProcessId.dwProcessId   = Convert.ToUInt32(this._processID);
                    pProcessInfo[0].ProcessId.ProcessIdType = (uint)enum_AD_PROCESS_ID.AD_PROCESS_ID_SYSTEM;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
                {
//                    pProcessInfo[0].dwSessionId = 0;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
                {
//                    pProcessInfo[0].bstrAttachedSessionName = null;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME) != 0)
                {
//                    pProcessInfo[0].CreationTime = null;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME;
                }

                return(VSConstants.S_OK);
            }
            catch (Exception e)
            {
                return(EngineUtils.UnexpectedException(e));
            }
        }
Exemplo n.º 13
0
 // Token: 0x06000187 RID: 391 RVA: 0x000061A4 File Offset: 0x000043A4
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] processInfo)
 {
     processInfo[0].Fields = Fields;
     if (this.IsSet(Fields, enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME))
     {
         processInfo[0].bstrFileName = this.name;
     }
     if (this.IsSet(Fields, enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME))
     {
         processInfo[0].bstrBaseName = Path.GetFileName(this.name);
     }
     if (this.IsSet(Fields, enum_PROCESS_INFO_FIELDS.PIF_TITLE))
     {
         processInfo[0].bstrTitle = Path.GetFileName(this.name);
     }
     return(0);
 }
Exemplo n.º 14
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                pProcessInfo[0].bstrFileName = GetFileName();
                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                pProcessInfo[0].bstrBaseName = GetBaseName();
                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
            {
                string title = GetTitle();
                if (title != null)
                {
                    pProcessInfo[0].bstrTitle = title;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
                }
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
            {
                GetADProcessId(out pProcessInfo[0].ProcessId);
                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
            {
                pProcessInfo[0].Flags = 0;

                if (!_isSameUser || !this.HasRealCommandLine)
                {
                    pProcessInfo[0].Flags |= enum_PROCESS_INFO_FLAGS.PIFLAG_SYSTEM_PROCESS;
                }

                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }

            return HR.S_OK;
        }
Exemplo n.º 15
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                pProcessInfo[0].bstrFileName = GetFileName();
                pProcessInfo[0].Fields      |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                pProcessInfo[0].bstrBaseName = GetBaseName();
                pProcessInfo[0].Fields      |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
            {
                string title = GetTitle();
                if (title != null)
                {
                    pProcessInfo[0].bstrTitle = title;
                    pProcessInfo[0].Fields   |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
                }
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
            {
                GetADProcessId(out pProcessInfo[0].ProcessId);
                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
            }

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
            {
                pProcessInfo[0].Flags = 0;

                if (!_isSameUser || !this.HasRealCommandLine)
                {
                    pProcessInfo[0].Flags |= enum_PROCESS_INFO_FLAGS.PIFLAG_SYSTEM_PROCESS;
                }

                pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }

            return(HR.S_OK);
        }
Exemplo n.º 16
0
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                pProcessInfo[0].bstrFileName = Node.FileName;
                pProcessInfo[0].Flags        = enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING;

                if (Node.Debugger != null)
                {
                    pProcessInfo[0].Flags = pProcessInfo[0].Flags | enum_PROCESS_INFO_FLAGS.PIFLAG_DEBUGGER_ATTACHED;
                }

                pProcessInfo[0].Fields                = fields;
                pProcessInfo[0].bstrBaseName          = _processName;
                pProcessInfo[0].bstrTitle             = string.Empty;
                pProcessInfo[0].ProcessId.dwProcessId = ProcessId;
                pProcessInfo[0].dwSessionId           = 0;
            }
            return(VSConstants.S_OK);
        }
Exemplo n.º 17
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     if ((enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME & Fields) != 0)
     {
         pProcessInfo[0].bstrFileName = name;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME & Fields) != 0)
     {
         pProcessInfo[0].bstrBaseName = name;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_TITLE & Fields) != 0)
     {
         pProcessInfo[0].bstrTitle = "Duke";
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID & Fields) != 0)
     {
         pProcessInfo[0].ProcessId = procId;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID & Fields) != 0)
     {
         pProcessInfo[0].dwSessionId = 1;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME & Fields) != 0)
     {
         pProcessInfo[0].bstrAttachedSessionName = "Squirrel Session";;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME & Fields) != 0)
     {
         pProcessInfo[0].CreationTime.dwHighDateTime = 0;
         pProcessInfo[0].CreationTime.dwLowDateTime  = 0;
     }
     if ((enum_PROCESS_INFO_FIELDS.PIF_FLAGS & Fields) != 0)
     {
         pProcessInfo[0].Flags = (enum_PROCESS_INFO_FLAGS)processState;
     }
     pProcessInfo[0].Fields = Fields;
     return(Microsoft.VisualStudio.VSConstants.S_OK);
 }
Exemplo n.º 18
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
   throw new NotImplementedException();
 }
Exemplo n.º 19
0
 /// <summary>
 /// Gets a description of the process.
 /// </summary>
 /// <param name="Fields">A combination of values from the PROCESS_INFO_FIELDS enumeration that specifies which fields of the pProcessInfo parameter are to be filled in.</param>
 /// <param name="pProcessInfo">A PROCESS_INFO structure that is filled in with a description of the process.</param>
 /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns>
 public virtual int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     Logger.Debug(string.Empty);
     return(VSConstants.E_NOTIMPL);
 }
Exemplo n.º 20
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 21
0
 /// <summary>
 /// Gets a description of the process.
 /// </summary>
 /// <param name="Fields">A combination of values from the PROCESS_INFO_FIELDS enumeration that specifies which fields of the pProcessInfo parameter are to be filled in.</param>
 /// <param name="pProcessInfo">A PROCESS_INFO structure that is filled in with a description of the process.</param>
 /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns>
 public virtual int GetInfo( enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo )
 {
     Logger.Debug( string.Empty );
     return VSConstants.E_NOTIMPL;
 }
Exemplo n.º 22
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     DebugHelper.TraceEnteringMethod();
     throw new NotImplementedException();
 }
Exemplo n.º 23
0
        /// <summary>
        /// Gets a description of the process. (http://msdn.microsoft.com/en-us/library/bb145895.aspx)
        /// </summary>
        /// <param name="Fields"> A combination of values from the PROCESS_INFO_FIELDS enumeration that specifies which fields of 
        /// the pProcessInfo parameter are to be filled in. </param>
        /// <param name="pProcessInfo"> A PROCESS_INFO structure that is filled in with a description of the process. </param>
        /// <returns> VSConstants.S_OK. </returns>
        public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
        {
            try
            {
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
                {
                    pProcessInfo[0].bstrFileName = this._name;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
                {
                    pProcessInfo[0].bstrBaseName = this._name.Substring(_name.LastIndexOf('/') + 1);
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
                {
                    pProcessInfo[0].bstrTitle = this._name;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
                {
                    pProcessInfo[0].ProcessId.dwProcessId = Convert.ToUInt32(this._processID);
                    pProcessInfo[0].ProcessId.ProcessIdType = (uint)enum_AD_PROCESS_ID.AD_PROCESS_ID_SYSTEM;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
                {
            //                    pProcessInfo[0].dwSessionId = 0;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
                {
            //                    pProcessInfo[0].bstrAttachedSessionName = null;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
                }
                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME) != 0)
                {
            //                    pProcessInfo[0].CreationTime = null;
                    pProcessInfo[0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME;
                }

                return VSConstants.S_OK;
            }
            catch (Exception e)
            {
                return EngineUtils.UnexpectedException(e);
            }
        }
Exemplo n.º 24
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     DebugHelper.TraceEnteringMethod();
     throw new NotImplementedException();
 }
Exemplo n.º 25
0
 // Token: 0x06000188 RID: 392 RVA: 0x0000621D File Offset: 0x0000441D
 private bool IsSet(enum_PROCESS_INFO_FIELDS f, enum_PROCESS_INFO_FIELDS b)
 {
     return((f & b) > 0);
 }
Exemplo n.º 26
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO [] infoArray)
        {
            //
            // Gets a description of the process.
            //

            LoggingUtils.PrintFunction();

            try
            {
                infoArray [0] = new PROCESS_INFO();

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
                {
                    LoggingUtils.RequireOk(GetName(enum_GETNAME_TYPE.GN_FILENAME, out infoArray [0].bstrFileName));

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
                {
                    LoggingUtils.RequireOk(GetName(enum_GETNAME_TYPE.GN_BASENAME, out infoArray [0].bstrBaseName));

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
                {
                    LoggingUtils.RequireOk(GetName(enum_GETNAME_TYPE.GN_TITLE, out infoArray [0].bstrTitle));

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
                {
                    AD_PROCESS_ID [] processId = new AD_PROCESS_ID [1];

                    LoggingUtils.RequireOk(GetPhysicalProcessId(processId));

                    infoArray [0].ProcessId = processId [0];

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
                {
                    // We currently don't support multiple sessions, so all processes are in session 1.

                    infoArray [0].dwSessionId = 1;

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
                {
                    // Oddly enough, SESSION_NAME is requested... even though the docs clearly state that it's deprecated.

                    infoArray [0].bstrAttachedSessionName = "[Attached session name is deprecated]";

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME) != 0)
                {
                    // Not entirely clear how this should be implemented.

                    /*Microsoft.VisualStudio.OLE.Interop.FILETIME filetime;
                     *
                     * infoArray [0].CreationTime = filetime;
                     *
                     * infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME;*/
                }

                if ((Fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
                {
                    infoArray [0].Flags |= enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING;

                    if (DebuggeeProgram.AttachedEngine != null)
                    {
                        infoArray [0].Flags |= enum_PROCESS_INFO_FLAGS.PIFLAG_DEBUGGER_ATTACHED;
                    }

                    //enum_PROCESS_INFO_FLAGS.PIFLAG_DEBUGGER_ATTACHED
                    //enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_STOPPED
                    //enum_PROCESS_INFO_FLAGS.PIFLAG_PROCESS_RUNNING

                    if (!NativeProcess.IsUserProcess)
                    {
                        infoArray [0].Flags |= enum_PROCESS_INFO_FLAGS.PIFLAG_SYSTEM_PROCESS;
                    }

                    infoArray [0].Fields |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
                }

                return(Constants.S_OK);
            }
            catch (Exception e)
            {
                LoggingUtils.HandleException(e);

                return(Constants.E_FAIL);
            }
        }
Exemplo n.º 27
0
        /// <summary>
        /// Gets a description of the process.
        /// </summary>
        public int GetInfo(enum_PROCESS_INFO_FIELDS fields, PROCESS_INFO[] pProcessInfo)
        {
            DLog.Debug(DContext.VSDebuggerComCall, "IDebugProcess2.GetInfo {0}", fields);

            var foundFields = (enum_PROCESS_INFO_FIELDS)0;
            var info = new PROCESS_INFO();

            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME) != 0)
            {
                info.bstrFileName = apkPath;
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_FILE_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME) != 0)
            {
                info.bstrBaseName = Path.GetFileName(apkPath);
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_BASE_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_TITLE) != 0)
            {
                info.bstrTitle = Path.GetFileName(apkPath);
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_TITLE;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID) != 0)
            {
                var arr = new AD_PROCESS_ID[0];
                GetPhysicalProcessId(arr);
                info.ProcessId = arr[0];
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_PROCESS_ID;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID) != 0)
            {
                info.dwSessionId = 1;
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_SESSION_ID;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME) != 0)
            {
                info.bstrAttachedSessionName = "<deprecated>";
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_ATTACHED_SESSION_NAME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME) != 0)
            {
                var fileTime = DateTime.Now.ToFileTime();
                info.CreationTime.dwLowDateTime = (uint) (fileTime & 0xFFFFFFFF);
                info.CreationTime.dwHighDateTime = (uint) (fileTime >> 32);
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_CREATION_TIME;
            }
            if ((fields & enum_PROCESS_INFO_FIELDS.PIF_FLAGS) != 0)
            {
                pProcessInfo[0].Flags = GetProcessStatus();
                foundFields |= enum_PROCESS_INFO_FIELDS.PIF_FLAGS;
            }
            pProcessInfo[0].Fields = foundFields;
            return VSConstants.S_OK;
        }
Exemplo n.º 28
0
 public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo)
 {
     return VSConstants.S_OK;
 }