public static SafeTokenHandle FromProcess(IntPtr hProcess, AccessTypes desiredAccess = AccessTypes.TokenDuplicate) { SafeTokenHandle val; if (!NativeMethods.OpenProcessToken(hProcess, desiredAccess, out val)) { throw new System.ComponentModel.Win32Exception(); } return(val); }