internal ProcessWaitHandle(IntPtr processHandle) {
SafeWaitHandle waitHandle;
if (!Kernel32.DuplicateHandle(new HandleRef(this, Kernel32.GetCurrentProcess()), processHandle,
new HandleRef(this, Kernel32.GetCurrentProcess()),
out waitHandle, 0, false, Kernel32.DUPLICATE_SAME_ACCESS)) {
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}
SafeWaitHandle = waitHandle;
}
}