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); }
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); }
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; }
/// <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); }
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); }
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; }
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); }
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); }
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); }
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); }
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); }
/// <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)); } }
// 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); }
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; }
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); }
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); }
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); }
public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) { throw new NotImplementedException(); }
/// <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); }
public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) { throw new NotImplementedException(); }
/// <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; }
public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) { DebugHelper.TraceEnteringMethod(); throw new NotImplementedException(); }
/// <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); } }
public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) { DebugHelper.TraceEnteringMethod(); throw new NotImplementedException(); }
// 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); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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); } }
/// <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; }
public int GetInfo(enum_PROCESS_INFO_FIELDS Fields, PROCESS_INFO[] pProcessInfo) { return VSConstants.S_OK; }