示例#1
0
 private object GetHandle(NtHandle handle)
 {
     using (var proc = NtProcess.Open(handle.ProcessId, ProcessAccessRights.DupHandle))
     {
         return(NtObject.DuplicateHandle(proc, new IntPtr(handle.Handle), DestinationProcess,
                                         GetDesiredAccess(), ObjectAttributes ?? 0, GetOptions()));
     }
 }
示例#2
0
        private IntPtr GetHandle()
        {
            IntPtr handle = SourceHandle;

            if (ParameterSetName == "FromObject")
            {
                handle = Object.Handle.DangerousGetHandle();
            }

            return(NtObject.DuplicateHandle(SourceProcess, handle, DestinationProcess, DesiredAccess ?? 0, ObjectAttributes ?? 0, GetOptions()));
        }
示例#3
0
 private object GetHandle(IntPtr handle)
 {
     return(NtObject.DuplicateHandle(SourceProcess, handle, DestinationProcess,
                                     GetDesiredAccess(), ObjectAttributes ?? 0, GetOptions()));
 }