当前位置: 首页>>代码示例>>C#>>正文


C# SafeProcessHandle.DangerousGetHandle方法代码示例

本文整理汇总了C#中Microsoft.Win32.SafeHandles.SafeProcessHandle.DangerousGetHandle方法的典型用法代码示例。如果您正苦于以下问题:C# SafeProcessHandle.DangerousGetHandle方法的具体用法?C# SafeProcessHandle.DangerousGetHandle怎么用?C# SafeProcessHandle.DangerousGetHandle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.Win32.SafeHandles.SafeProcessHandle的用法示例。


在下文中一共展示了SafeProcessHandle.DangerousGetHandle方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Protect

		public Protect(SafeProcessHandle handle, VirtualQueryInfo info, int protect)
		{
			this.handle = handle;
			this.info = info;
			this.protect = protect;

			if (protect == info.Protect)
				return;

			int oldProtect;
			if (!Win32.VirtualProtectEx(handle.DangerousGetHandle(), (IntPtr)info.StartAddress, (IntPtr)info.RegionSize, protect, out oldProtect))
				throw new Win32Exception();
		}
开发者ID:xyandro,项目名称:NeoEdit,代码行数:13,代码来源:Protect.cs

示例2: ProcessWaitHandle

        internal ProcessWaitHandle(SafeProcessHandle processHandle)
        {
            // Get the process ID from the process handle.  The handle is just a facade that wraps
            // the process ID, and closing the handle won't affect the process or its ID at all.
            // So we can grab it, and it's not "dangerous".
            int processId = (int)processHandle.DangerousGetHandle();

            // Create a wait state holder for this process ID.  This gives us access to the shared
            // wait state associated with this process.
            _waitStateHolder = new ProcessWaitState.Holder(processId);

            // Get the wait state's event, and use that event's safe wait handle
            // in place of ours.  This will let code register for completion notifications
            // on this ProcessWaitHandle and be notified when the wait state's handle completes.
            ManualResetEvent mre = _waitStateHolder._state.EnsureExitedEvent();
            this.SetSafeWaitHandle(mre.GetSafeWaitHandle());
        }
开发者ID:noahfalk,项目名称:corefx,代码行数:17,代码来源:ProcessWaitHandle.Unix.cs

示例3: ProcessName_internal

		static string ProcessName_internal(SafeProcessHandle handle)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return ProcessName_internal (handle.DangerousGetHandle ());
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BrzVlad,项目名称:mono,代码行数:11,代码来源:Process.cs

示例4: GetModules_internal

		ProcessModule[] GetModules_internal (SafeProcessHandle handle)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return GetModules_internal (handle.DangerousGetHandle ());
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BrzVlad,项目名称:mono,代码行数:11,代码来源:Process.cs

示例5: TerminateProcess

		public static bool TerminateProcess (SafeProcessHandle processHandle, int exitCode)
		{
			bool release = false;
			try {
				processHandle.DangerousAddRef (ref release);
				return TerminateProcess (processHandle.DangerousGetHandle (), exitCode);
			} finally {
				if (release)
					processHandle.DangerousRelease ();
			}
		}
开发者ID:BogdanovKirill,项目名称:mono,代码行数:11,代码来源:NativeMethods.cs

示例6: SetPriorityClass

		public static bool SetPriorityClass(SafeProcessHandle handle, int priorityClass)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return SetPriorityClass (handle.DangerousGetHandle (), priorityClass);
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BogdanovKirill,项目名称:mono,代码行数:11,代码来源:NativeMethods.cs

示例7: GetProcessTimes

		public static bool GetProcessTimes (SafeProcessHandle handle, out long creation, out long exit, out long kernel, out long user)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return GetProcessTimes (handle.DangerousGetHandle (), out creation, out exit, out kernel, out user);
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BogdanovKirill,项目名称:mono,代码行数:11,代码来源:NativeMethods.cs

示例8: SetProcessWorkingSetSize

		public static bool SetProcessWorkingSetSize (SafeProcessHandle handle, IntPtr min, IntPtr max)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return SetProcessWorkingSetSize (handle.DangerousGetHandle (), min, max);
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BogdanovKirill,项目名称:mono,代码行数:11,代码来源:NativeMethods.cs

示例9: WaitForInputIdle

		public static int WaitForInputIdle (SafeProcessHandle handle, int milliseconds)
		{
			bool release = false;
			try {
				handle.DangerousAddRef (ref release);
				return WaitForInputIdle (handle.DangerousGetHandle (), milliseconds);
			} finally {
				if (release)
					handle.DangerousRelease ();
			}
		}
开发者ID:BogdanovKirill,项目名称:mono,代码行数:11,代码来源:NativeMethods.cs

示例10: GetProcessIdFromHandle

 /// <summary>Gets the ID of a process from a handle to the process.</summary>
 /// <param name="processHandle">The handle.</param>
 /// <returns>The process ID.</returns>
 public static int GetProcessIdFromHandle(SafeProcessHandle processHandle)
 {
     return (int)processHandle.DangerousGetHandle(); // not actually dangerous; just wraps a process ID
 }
开发者ID:naamunds,项目名称:corefx,代码行数:7,代码来源:ProcessManager.Unix.cs

示例11: GetLogicalName

		static unsafe string GetLogicalName(SafeProcessHandle handle)
		{
			var data = new byte[2048];
			int size = data.Length;
			var result = NtQueryObject(handle.DangerousGetHandle(), OBJECT_INFORMATION_CLASS.ObjectNameInformation, data, size, ref size);
			if (result < NtStatus.Success)
				throw new Win32Exception();

			string name;
			fixed (byte* dataPtr = data)
				name = ((UNICODE_STRING*)dataPtr)->ToString();

			foreach (var pair in TranslateMap)
				if (name.StartsWith(pair.Key))
					name = pair.Value + name.Substring(pair.Key.Length);

			return name;
		}
开发者ID:xyandro,项目名称:NeoEdit,代码行数:18,代码来源:HandleHelper.cs


注:本文中的Microsoft.Win32.SafeHandles.SafeProcessHandle.DangerousGetHandle方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。