コード例 #1
0
 public static SafeFileHandle DuplicateHandle(this SafeFileHandle sourceHandle, ProcessHandle sourceAndTargetProcess, FileAccessRights desiredAccess, bool inheritHandle, DuplicateHandleOptions options)
 {
     SafeFileHandle targetHandle;
     if (!NativeMethods.DuplicateHandle(sourceAndTargetProcess, sourceHandle, sourceAndTargetProcess, out targetHandle, desiredAccess, inheritHandle, options))
     {
         ErrorHelper.ThrowCustomWin32Exception();
     }
     return targetHandle;
 }
コード例 #2
0
 public IProcessInformation CreateAsUser(TokenHandle token, string applicationName, string commandLine, bool inheritHandles, ProcessCreationFlags creationFlags, EnvironmentBlockHandle environment, string currentDirectory, ProcessStartInfo startInfo, ProcessSecurity processSecurity = null, ThreadSecurity threadSecurity = null)
 {
     return(ProcessHandle.CreateAsUser(token, applicationName, commandLine, inheritHandles, creationFlags, environment, currentDirectory, startInfo, processSecurity, threadSecurity));
 }
コード例 #3
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public ProcessWaitHandle(ProcessHandle processHandle)
 {
     SafeWaitHandle waitHandle;
     if (!NativeMethods.DuplicateHandle(GetCurrentProcess(), processHandle, GetCurrentProcess(), out waitHandle, 0, false, DuplicateHandleOptions.SameAccess))
     {
         ErrorHelper.ThrowCustomWin32Exception();
     }
     SafeWaitHandle = waitHandle;
 }
コード例 #4
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool TerminateProcess(ProcessHandle processHandle, int exitCode);
コード例 #5
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool OpenProcessToken(ProcessHandle processHandle, TokenAccessRights desiredAccess, out TokenHandle tokenHandle);
コード例 #6
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool IsWow64Process(ProcessHandle processHandle, [Out] [MarshalAs(UnmanagedType.Bool)] out bool isWow64Process);
コード例 #7
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool GetProcessTimes(ProcessHandle processHandle, out long creationTime, out long exitTime, out long kernelTime, out long userTime);
コード例 #8
0
 public static extern bool DuplicateHandle(ProcessHandle sourceProcessHandle, ProcessHandle sourceHandle, ProcessHandle targetProcess, out SafeWaitHandle targetHandle, uint desiredAccess, bool inheritHandle, DuplicateHandleOptions options);
コード例 #9
0
 public static extern bool GetProcessTimes(ProcessHandle processHandle, out long creationTime, out long exitTime, out long kernelTime, out long userTime);
コード例 #10
0
 public static extern bool OpenProcessToken(ProcessHandle processHandle, TokenAccessRights desiredAccess, out TokenHandle tokenHandle);
コード例 #11
0
 public static extern bool IsWow64Process(ProcessHandle processHandle, [Out][MarshalAs(UnmanagedType.Bool)] out bool isWow64Process);
コード例 #12
0
 public static extern bool IsProcessInJob(ProcessHandle processHandle, JobObjectHandle jobHandle, out bool result);
コード例 #13
0
 public static extern int GetProcessId(ProcessHandle processHandle);
コード例 #14
0
 public static extern bool TerminateProcess(ProcessHandle processHandle, int exitCode);
コード例 #15
0
 public IProcessInformation CreateWithToken(TokenHandle token, ProcessLogonFlags logonFlags, string applicationName, string commandLine, ProcessCreationFlags creationFlags, EnvironmentBlockHandle environment, string currentDirectory, ProcessStartInfo startupInfo)
 {
     return(ProcessHandle.CreateWithToken(token, logonFlags, applicationName, commandLine, creationFlags, environment, currentDirectory, startupInfo));
 }
コード例 #16
0
 public ProcessSecurity(ProcessHandle handle, AccessControlSections includeSections, bool isContainer = false)
     : base(isContainer, ResourceType.KernelObject, handle, includeSections)
 {
 }
コード例 #17
0
 public static extern bool K32GetProcessMemoryInfo(ProcessHandle processHandle, out ProcessMemoryCountersEx memoryCounters, int size);
コード例 #18
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern int GetProcessId(ProcessHandle processHandle);
コード例 #19
0
 public static extern bool QueryFullProcessImageNameW(ProcessHandle processHandle, PathFormat format, [Out] StringBuilder exeName, ref uint size);
コード例 #20
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool IsProcessInJob(ProcessHandle processHandle, JobObjectHandle jobHandle, out bool result);
コード例 #21
0
 public ProcessExitMonitor(ProcessHandle processHandle)
 {
     _processWaitHandle = new ProcessWaitHandle(processHandle);
     ThreadPool.RegisterWaitForSingleObject(_processWaitHandle, HandleExited, null, -1, true);
 }
コード例 #22
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool K32GetProcessMemoryInfo(ProcessHandle processHandle, out ProcessMemoryCountersEx memoryCounters, int size);
コード例 #23
0
ファイル: Process.cs プロジェクト: tdctaz/NativeWindows
 public Process(ProcessHandle handle)
 {
     _handle = handle;
 }
コード例 #24
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool QueryFullProcessImageNameW(ProcessHandle processHandle, PathFormat format, [Out] StringBuilder exeName, ref uint size);
コード例 #25
0
 public void AssignProcess(ProcessHandle processHandle)
 {
     _handle.AssignProcess(processHandle);
 }
コード例 #26
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public ProcessExitMonitor(ProcessHandle processHandle)
 {
     _processWaitHandle = new ProcessWaitHandle(processHandle);
     ThreadPool.RegisterWaitForSingleObject(_processWaitHandle, HandleExited, null, -1, true);
 }
コード例 #27
0
 public ProcessSecurity(ProcessHandle handle, AccessControlSections includeSections, bool isContainer = false)
     : base(isContainer, ResourceType.KernelObject, handle, includeSections)
 {
 }
コード例 #28
0
 public Process(ProcessHandle handle)
 {
     _handle = handle;
 }
コード例 #29
0
 public static extern bool DuplicateHandle(ProcessHandle sourceProcessHandle, SafeHandle sourceHandle, ProcessHandle targetProcess, out SafeFileHandle targetHandle, FileAccessRights desiredAccess, bool inheritHandle, DuplicateHandleOptions options);
コード例 #30
0
 public IProcessInformation CreateWithLogin(string username, string domain, string password, ProcessLogonFlags logonFlags, string applicationName, string commandLine, ProcessCreationFlags creationFlags, EnvironmentBlockHandle environment, string currentDirectory, ProcessStartInfo startupInfo)
 {
     return(ProcessHandle.CreateWithLogin(username, domain, password, logonFlags, applicationName, commandLine, creationFlags, environment, currentDirectory, startupInfo));
 }
コード例 #31
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool DuplicateHandle(ProcessHandle sourceProcessHandle, ProcessHandle sourceHandle, ProcessHandle targetProcess, out SafeWaitHandle targetHandle, uint desiredAccess, bool inheritHandle, DuplicateHandleOptions options);
コード例 #32
0
        public IProcess OpenProcess(int processId, ProcessAccessRights desiredAccess = ProcessAccessRights.AllAccess, bool inheritHandle = false)
        {
            var handle = ProcessHandle.OpenProcess(processId, desiredAccess, inheritHandle);

            return(new Process(handle));
        }
コード例 #33
0
ファイル: ProcessHandle.cs プロジェクト: tdctaz/NativeWindows
 public static extern bool GetExitCodeProcess(ProcessHandle processHandle, out int exitCode);
コード例 #34
0
 public static extern bool AssignProcessToJobObject(JobObjectHandle handle, ProcessHandle processHandle);
コード例 #35
0
 public static extern bool GetExitCodeProcess(ProcessHandle processHandle, out int exitCode);