Upload from CMSOURE

This commit is contained in:
2025-09-15 10:49:45 -04:00
parent a45e247939
commit 2e34222036
359 changed files with 355510 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -0,0 +1,57 @@
<#
.SYNOPSIS
This script is a template that allows you to extend the toolkit with your own custom functions.
# LICENSE #
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks on Windows.
Copyright (C) 2017 - Sean Lillis, Dan Cunningham, Muhammad Mashwani, Aman Motazedian.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
.DESCRIPTION
The script is automatically dot-sourced by the AppDeployToolkitMain.ps1 script.
.NOTES
Toolkit Exit Code Ranges:
60000 - 68999: Reserved for built-in exit codes in Deploy-Application.ps1, Deploy-Application.exe, and AppDeployToolkitMain.ps1
69000 - 69999: Recommended for user customized exit codes in Deploy-Application.ps1
70000 - 79999: Recommended for user customized exit codes in AppDeployToolkitExtensions.ps1
.LINK
http://psappdeploytoolkit.com
#>
[CmdletBinding()]
Param (
)
##*===============================================
##* VARIABLE DECLARATION
##*===============================================
# Variables: Script
[string]$appDeployToolkitExtName = 'PSAppDeployToolkitExt'
[string]$appDeployExtScriptFriendlyName = 'App Deploy Toolkit Extensions'
[version]$appDeployExtScriptVersion = [version]'1.5.0'
[string]$appDeployExtScriptDate = '02/12/2017'
[hashtable]$appDeployExtScriptParameters = $PSBoundParameters
##*===============================================
##* FUNCTION LISTINGS
##*===============================================
# <Your custom functions go here>
##*===============================================
##* END FUNCTION LISTINGS
##*===============================================
##*===============================================
##* SCRIPT BODY
##*===============================================
If ($scriptParentPath) {
Write-Log -Message "Script [$($MyInvocation.MyCommand.Definition)] dot-source invoked by [$(((Get-Variable -Name MyInvocation).Value).ScriptName)]" -Source $appDeployToolkitExtName
}
Else {
Write-Log -Message "Script [$($MyInvocation.MyCommand.Definition)] invoked directly" -Source $appDeployToolkitExtName
}
##*===============================================
##* END SCRIPT BODY
##*===============================================

View File

@@ -0,0 +1,132 @@
<#
.SYNOPSIS
Displays a graphical console to browse the help for the App Deployment Toolkit functions
# LICENSE #
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks on Windows.
Copyright (C) 2017 - Sean Lillis, Dan Cunningham, Muhammad Mashwani, Aman Motazedian.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
.DESCRIPTION
Displays a graphical console to browse the help for the App Deployment Toolkit functions
.EXAMPLE
AppDeployToolkitHelp.ps1
.NOTES
.LINK
http://psappdeploytoolkit.com
#>
##*===============================================
##* VARIABLE DECLARATION
##*===============================================
## Variables: Script
[string]$appDeployToolkitHelpName = 'PSAppDeployToolkitHelp'
[string]$appDeployHelpScriptFriendlyName = 'App Deploy Toolkit Help'
[version]$appDeployHelpScriptVersion = [version]'3.6.5'
[string]$appDeployHelpScriptDate = '02/12/2017'
## Variables: Environment
[string]$scriptDirectory = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
# Dot source the App Deploy Toolkit Functions
. "$scriptDirectory\AppDeployToolkitMain.ps1" -DisableLogging
##*===============================================
##* END VARIABLE DECLARATION
##*===============================================
##*===============================================
##* FUNCTION LISTINGS
##*===============================================
Function Show-HelpConsole {
## Import the Assemblies
Add-Type -AssemblyName 'System.Windows.Forms' -ErrorAction 'Stop'
Add-Type -AssemblyName System.Drawing -ErrorAction 'Stop'
## Form Objects
$HelpForm = New-Object -TypeName 'System.Windows.Forms.Form'
$HelpListBox = New-Object -TypeName 'System.Windows.Forms.ListBox'
$HelpTextBox = New-Object -TypeName 'System.Windows.Forms.RichTextBox'
$InitialFormWindowState = New-Object -TypeName 'System.Windows.Forms.FormWindowState'
## Form Code
$System_Drawing_Size = New-Object -TypeName 'System.Drawing.Size'
$System_Drawing_Size.Height = 665
$System_Drawing_Size.Width = 957
$HelpForm.ClientSize = $System_Drawing_Size
$HelpForm.DataBindings.DefaultDataSourceUpdateMode = 0
$HelpForm.Name = 'HelpForm'
$HelpForm.Text = 'PowerShell App Deployment Toolkit Help Console'
$HelpForm.WindowState = 'Normal'
$HelpForm.ShowInTaskbar = $true
$HelpForm.FormBorderStyle = 'Fixed3D'
$HelpForm.MaximizeBox = $false
$HelpForm.Icon = New-Object -TypeName 'System.Drawing.Icon' -ArgumentList $AppDeployLogoIcon
$HelpListBox.Anchor = 7
$HelpListBox.BorderStyle = 1
$HelpListBox.DataBindings.DefaultDataSourceUpdateMode = 0
$HelpListBox.Font = New-Object -TypeName 'System.Drawing.Font' -ArgumentList ('Microsoft Sans Serif', 9.75, 1, 3, 1)
$HelpListBox.FormattingEnabled = $true
$HelpListBox.ItemHeight = 16
$System_Drawing_Point = New-Object -TypeName 'System.Drawing.Point'
$System_Drawing_Point.X = 0
$System_Drawing_Point.Y = 0
$HelpListBox.Location = $System_Drawing_Point
$HelpListBox.Name = 'HelpListBox'
$System_Drawing_Size = New-Object -TypeName 'System.Drawing.Size'
$System_Drawing_Size.Height = 658
$System_Drawing_Size.Width = 271
$HelpListBox.Size = $System_Drawing_Size
$HelpListBox.Sorted = $true
$HelpListBox.TabIndex = 2
$HelpListBox.add_SelectedIndexChanged({ $HelpTextBox.Text = Get-Help -Name $HelpListBox.SelectedItem -Full | Out-String })
$helpFunctions = Get-Command -CommandType 'Function' | Where-Object { ($_.HelpUri -match 'psappdeploytoolkit') -and ($_.Definition -notmatch 'internal script function') } | Select-Object -ExpandProperty Name
ForEach ($helpFunction in $helpFunctions) {
$null = $HelpListBox.Items.Add($helpFunction)
}
$HelpForm.Controls.Add($HelpListBox)
$HelpTextBox.Anchor = 11
$HelpTextBox.BorderStyle = 1
$HelpTextBox.DataBindings.DefaultDataSourceUpdateMode = 0
$HelpTextBox.Font = New-Object -TypeName 'System.Drawing.Font' -ArgumentList ('Microsoft Sans Serif', 8.5, 0, 3, 1)
$HelpTextBox.ForeColor = [System.Drawing.Color]::FromArgb(255, 0, 0, 0)
$System_Drawing_Point = New-Object -TypeName System.Drawing.Point
$System_Drawing_Point.X = 277
$System_Drawing_Point.Y = 0
$HelpTextBox.Location = $System_Drawing_Point
$HelpTextBox.Name = 'HelpTextBox'
$HelpTextBox.ReadOnly = $True
$System_Drawing_Size = New-Object -TypeName 'System.Drawing.Size'
$System_Drawing_Size.Height = 658
$System_Drawing_Size.Width = 680
$HelpTextBox.Size = $System_Drawing_Size
$HelpTextBox.TabIndex = 1
$HelpTextBox.Text = ''
$HelpForm.Controls.Add($HelpTextBox)
## Save the initial state of the form
$InitialFormWindowState = $HelpForm.WindowState
## Init the OnLoad event to correct the initial state of the form
$HelpForm.add_Load($OnLoadForm_StateCorrection)
## Show the Form
$null = $HelpForm.ShowDialog()
}
##*===============================================
##* END FUNCTION LISTINGS
##*===============================================
##*===============================================
##* SCRIPT BODY
##*===============================================
Write-Log -Message "Load [$appDeployHelpScriptFriendlyName] console..." -Source $appDeployToolkitHelpName
## Show the help console
Show-HelpConsole
Write-Log -Message "[$appDeployHelpScriptFriendlyName] console closed." -Source $appDeployToolkitHelpName
##*===============================================
##* END SCRIPT BODY
##*===============================================

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

View File

@@ -0,0 +1,775 @@
// Date Modified: 01-08-2016
// Version Number: 3.6.8
using System;
using System.Text;
using System.Collections;
using System.ComponentModel;
using System.DirectoryServices;
using System.Security.Principal;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME;
namespace PSADT
{
public class Msi
{
enum LoadLibraryFlags : int
{
DONT_RESOLVE_DLL_REFERENCES = 0x00000001,
LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010,
LOAD_LIBRARY_AS_DATAFILE = 0x00000002,
LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x00000040,
LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x00000020,
LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, LoadLibraryFlags dwFlags);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern int LoadString(IntPtr hInstance, int uID, StringBuilder lpBuffer, int nBufferMax);
// Get MSI exit code message from msimsg.dll resource dll
public static string GetMessageFromMsiExitCode(int errCode)
{
IntPtr hModuleInstance = LoadLibraryEx("msimsg.dll", IntPtr.Zero, LoadLibraryFlags.LOAD_LIBRARY_AS_DATAFILE);
StringBuilder sb = new StringBuilder(255);
LoadString(hModuleInstance, errCode, sb, sb.Capacity + 1);
return sb.ToString();
}
}
public class Explorer
{
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
private const int WM_SETTINGCHANGE = 0x1a;
private const int SMTO_ABORTIFHUNG = 0x0002;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern bool SendNotifyMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
private static extern IntPtr SendMessageTimeout(IntPtr hWnd, int Msg, IntPtr wParam, string lParam, int fuFlags, int uTimeout, IntPtr lpdwResult);
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = false)]
private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2);
public static void RefreshDesktopAndEnvironmentVariables()
{
// Update desktop icons
SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, IntPtr.Zero, null, SMTO_ABORTIFHUNG, 100, IntPtr.Zero);
// Update environment variables
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, IntPtr.Zero, "Environment", SMTO_ABORTIFHUNG, 100, IntPtr.Zero);
}
}
public sealed class FileVerb
{
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int LoadString(IntPtr h, int id, StringBuilder sb, int maxBuffer);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr LoadLibrary(string s);
public static string GetPinVerb(int VerbId)
{
IntPtr hShell32 = LoadLibrary("shell32.dll");
const int nChars = 255;
StringBuilder Buff = new StringBuilder("", nChars);
LoadString(hShell32, VerbId, Buff, Buff.Capacity);
return Buff.ToString();
}
}
public sealed class IniFile
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, StringBuilder lpString, string lpFileName);
public static string GetIniValue(string section, string key, string filepath)
{
string sDefault = "";
const int nChars = 1024;
StringBuilder Buff = new StringBuilder(nChars);
GetPrivateProfileString(section, key, sDefault, Buff, Buff.Capacity, filepath);
return Buff.ToString();
}
public static void SetIniValue(string section, string key, StringBuilder value, string filepath)
{
WritePrivateProfileString(section, key, value, filepath);
}
}
public class UiAutomation
{
public enum GetWindow_Cmd : int
{
GW_HWNDFIRST = 0,
GW_HWNDLAST = 1,
GW_HWNDNEXT = 2,
GW_HWNDPREV = 3,
GW_OWNER = 4,
GW_CHILD = 5,
GW_ENABLEDPOPUP = 6
}
public enum ShowWindowEnum
{
Hide = 0,
ShowNormal = 1,
ShowMinimized = 2,
ShowMaximized = 3,
Maximize = 3,
ShowNormalNoActivate = 4,
Show = 5,
Minimize = 6,
ShowMinNoActivate = 7,
ShowNoActivate = 8,
Restore = 9,
ShowDefault = 10,
ForceMinimized = 11
}
public enum UserNotificationState
{
// http://msdn.microsoft.com/en-us/library/bb762533(v=vs.85).aspx
ScreenSaverOrLockedOrFastUserSwitching =1, // A screen saver is displayed, the machine is locked, or a nonactive Fast User Switching session is in progress.
FullScreenOrPresentationModeOrLoginScreen =2, // A full-screen application is running or Presentation Settings are applied. Presentation Settings allow a user to put their machine into a state fit for an uninterrupted presentation, such as a set of PowerPoint slides, with a single click. Also returns this state if machine is at the login screen.
RunningDirect3DFullScreen =3, // A full-screen, exclusive mode, Direct3D application is running.
PresentationMode =4, // The user has activated Windows presentation settings to block notifications and pop-up messages.
AcceptsNotifications =5, // None of the other states are found, notifications can be freely sent.
QuietTime =6, // Introduced in Windows 7. The current user is in "quiet time", which is the first hour after a new user logs into his or her account for the first time.
WindowsStoreAppRunning =7 // Introduced in Windows 8. A Windows Store app is running.
}
// Only for Vista or above
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern int SHQueryUserNotificationState(out UserNotificationState pquns);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool EnumWindows(EnumWindowsProcD lpEnumFunc, ref IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetWindowTextLength(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
private static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
private static extern IntPtr GetShellWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWindowEnabled(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern bool IsWindowVisible(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsIconic(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool ShowWindow(IntPtr hWnd, ShowWindowEnum flags);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SetActiveWindow(IntPtr hwnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SetFocus(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern bool BringWindowToTop(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetCurrentThreadId();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern bool AttachThreadInput(int idAttach, int idAttachTo, bool fAttach);
[DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr GetWindowLong32(IntPtr hWnd, int nIndex);
[DllImport("user32.dll", EntryPoint = "GetWindowLongPtr", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, int nIndex);
public delegate bool EnumWindowsProcD(IntPtr hWnd, ref IntPtr lItems);
public static bool EnumWindowsProc(IntPtr hWnd, ref IntPtr lItems)
{
if (hWnd != IntPtr.Zero)
{
GCHandle hItems = GCHandle.FromIntPtr(lItems);
List<IntPtr> items = hItems.Target as List<IntPtr>;
items.Add(hWnd);
return true;
}
else
{
return false;
}
}
public static List<IntPtr> EnumWindows()
{
try
{
List<IntPtr> items = new List<IntPtr>();
EnumWindowsProcD CallBackPtr = new EnumWindowsProcD(EnumWindowsProc);
GCHandle hItems = GCHandle.Alloc(items);
IntPtr lItems = GCHandle.ToIntPtr(hItems);
EnumWindows(CallBackPtr, ref lItems);
return items;
}
catch (Exception ex)
{
throw new Exception("An error occured during window enumeration: " + ex.Message);
}
}
public static string GetWindowText(IntPtr hWnd)
{
int iTextLength = GetWindowTextLength(hWnd);
if (iTextLength > 0)
{
StringBuilder sb = new StringBuilder(iTextLength);
GetWindowText(hWnd, sb, iTextLength + 1);
return sb.ToString();
}
else
{
return String.Empty;
}
}
public static bool BringWindowToFront(IntPtr windowHandle)
{
bool breturn = false;
if (IsIconic(windowHandle))
{
// Show minimized window because SetForegroundWindow does not work for minimized windows
ShowWindow(windowHandle, ShowWindowEnum.ShowMaximized);
}
int lpdwProcessId;
int windowThreadProcessId = GetWindowThreadProcessId(GetForegroundWindow(), out lpdwProcessId);
int currentThreadId = GetCurrentThreadId();
AttachThreadInput(windowThreadProcessId, currentThreadId, true);
BringWindowToTop(windowHandle);
breturn = SetForegroundWindow(windowHandle);
SetActiveWindow(windowHandle);
SetFocus(windowHandle);
AttachThreadInput(windowThreadProcessId, currentThreadId, false);
return breturn;
}
public static int GetWindowThreadProcessId(IntPtr windowHandle)
{
int processID = 0;
GetWindowThreadProcessId(windowHandle, out processID);
return processID;
}
public static IntPtr GetWindowLong(IntPtr hWnd, int nIndex)
{
if (IntPtr.Size == 4)
{
return GetWindowLong32(hWnd, nIndex);
}
return GetWindowLongPtr64(hWnd, nIndex);
}
public static string GetUserNotificationState()
{
// Only works for Windows Vista or higher
UserNotificationState state;
int returnVal = SHQueryUserNotificationState(out state);
return state.ToString();
}
}
public class QueryUser
{
[DllImport("wtsapi32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr WTSOpenServer(string pServerName);
[DllImport("wtsapi32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern void WTSCloseServer(IntPtr hServer);
[DllImport("wtsapi32.dll", CharSet = CharSet.Ansi, SetLastError = false)]
public static extern bool WTSQuerySessionInformation(IntPtr hServer, int sessionId, WTS_INFO_CLASS wtsInfoClass, out IntPtr pBuffer, out int pBytesReturned);
[DllImport("wtsapi32.dll", CharSet = CharSet.Ansi, SetLastError = false)]
public static extern int WTSEnumerateSessions(IntPtr hServer, int Reserved, int Version, out IntPtr pSessionInfo, out int pCount);
[DllImport("wtsapi32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern void WTSFreeMemory(IntPtr pMemory);
[DllImport("winsta.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int WinStationQueryInformation(IntPtr hServer, int sessionId, int information, ref WINSTATIONINFORMATIONW pBuffer, int bufferLength, ref int returnedLength);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern int GetCurrentProcessId();
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern bool ProcessIdToSessionId(int processId, ref int pSessionId);
public class TerminalSessionData
{
public int SessionId;
public string ConnectionState;
public string SessionName;
public bool IsUserSession;
public TerminalSessionData(int sessionId, string connState, string sessionName, bool isUserSession)
{
SessionId = sessionId;
ConnectionState = connState;
SessionName = sessionName;
IsUserSession = isUserSession;
}
}
public class TerminalSessionInfo
{
public string NTAccount;
public string SID;
public string UserName;
public string DomainName;
public int SessionId;
public string SessionName;
public string ConnectState;
public bool IsCurrentSession;
public bool IsConsoleSession;
public bool IsActiveUserSession;
public bool IsUserSession;
public bool IsRdpSession;
public bool IsLocalAdmin;
public DateTime? LogonTime;
public TimeSpan? IdleTime;
public DateTime? DisconnectTime;
public string ClientName;
public string ClientProtocolType;
public string ClientDirectory;
public int ClientBuildNumber;
}
[StructLayout(LayoutKind.Sequential)]
private struct WTS_SESSION_INFO
{
public Int32 SessionId;
[MarshalAs(UnmanagedType.LPStr)]
public string SessionName;
public WTS_CONNECTSTATE_CLASS State;
}
[StructLayout(LayoutKind.Sequential)]
public struct WINSTATIONINFORMATIONW
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 70)]
private byte[] Reserved1;
public int SessionId;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
private byte[] Reserved2;
public FILETIME ConnectTime;
public FILETIME DisconnectTime;
public FILETIME LastInputTime;
public FILETIME LoginTime;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1096)]
private byte[] Reserved3;
public FILETIME CurrentTime;
}
public enum WINSTATIONINFOCLASS
{
WinStationInformation = 8
}
public enum WTS_CONNECTSTATE_CLASS
{
Active,
Connected,
ConnectQuery,
Shadow,
Disconnected,
Idle,
Listen,
Reset,
Down,
Init
}
public enum WTS_INFO_CLASS
{
SessionId=4,
UserName,
SessionName,
DomainName,
ConnectState,
ClientBuildNumber,
ClientName,
ClientDirectory,
ClientProtocolType=16
}
private static IntPtr OpenServer(string Name)
{
IntPtr server = WTSOpenServer(Name);
return server;
}
private static void CloseServer(IntPtr ServerHandle)
{
WTSCloseServer(ServerHandle);
}
private static IList<T> PtrToStructureList<T>(IntPtr ppList, int count) where T : struct
{
List<T> result = new List<T>();
long pointer = ppList.ToInt64();
int sizeOf = Marshal.SizeOf(typeof(T));
for (int index = 0; index < count; index++)
{
T item = (T) Marshal.PtrToStructure(new IntPtr(pointer), typeof(T));
result.Add(item);
pointer += sizeOf;
}
return result;
}
public static DateTime? FileTimeToDateTime(FILETIME ft)
{
if (ft.dwHighDateTime == 0 && ft.dwLowDateTime == 0)
{
return null;
}
long hFT = (((long) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;
return DateTime.FromFileTime(hFT);
}
public static WINSTATIONINFORMATIONW GetWinStationInformation(IntPtr server, int sessionId)
{
int retLen = 0;
WINSTATIONINFORMATIONW wsInfo = new WINSTATIONINFORMATIONW();
WinStationQueryInformation(server, sessionId, (int) WINSTATIONINFOCLASS.WinStationInformation, ref wsInfo, Marshal.SizeOf(typeof(WINSTATIONINFORMATIONW)), ref retLen);
return wsInfo;
}
public static TerminalSessionData[] ListSessions(string ServerName)
{
IntPtr server = IntPtr.Zero;
if (ServerName == "localhost" || ServerName == String.Empty)
{
ServerName = Environment.MachineName;
}
List<TerminalSessionData> results = new List<TerminalSessionData>();
try
{
server = OpenServer(ServerName);
IntPtr ppSessionInfo = IntPtr.Zero;
int count;
bool _isUserSession = false;
IList<WTS_SESSION_INFO> sessionsInfo;
if (WTSEnumerateSessions(server, 0, 1, out ppSessionInfo, out count) == 0)
{
throw new Win32Exception();
}
try
{
sessionsInfo = PtrToStructureList<WTS_SESSION_INFO>(ppSessionInfo, count);
}
finally
{
WTSFreeMemory(ppSessionInfo);
}
foreach (WTS_SESSION_INFO sessionInfo in sessionsInfo)
{
if (sessionInfo.SessionName != "Services" && sessionInfo.SessionName != "RDP-Tcp")
{
_isUserSession = true;
}
results.Add(new TerminalSessionData(sessionInfo.SessionId, sessionInfo.State.ToString(), sessionInfo.SessionName, _isUserSession));
_isUserSession = false;
}
}
finally
{
CloseServer(server);
}
TerminalSessionData[] returnData = results.ToArray();
return returnData;
}
public static TerminalSessionInfo GetSessionInfo(string ServerName, int SessionId)
{
IntPtr server = IntPtr.Zero;
IntPtr buffer = IntPtr.Zero;
int bytesReturned;
TerminalSessionInfo data = new TerminalSessionInfo();
bool _IsCurrentSessionId = false;
bool _IsConsoleSession = false;
bool _IsUserSession = false;
int currentSessionID = 0;
string _NTAccount = String.Empty;
if (ServerName == "localhost" || ServerName == String.Empty)
{
ServerName = Environment.MachineName;
}
if (ProcessIdToSessionId(GetCurrentProcessId(), ref currentSessionID) == false)
{
currentSessionID = -1;
}
// Get all members of the local administrators group
bool _IsLocalAdminCheckSuccess = false;
List<string> localAdminGroupSidsList = new List<string>();
try
{
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + ServerName + ",Computer");
string localAdminGroupName = new SecurityIdentifier("S-1-5-32-544").Translate(typeof(NTAccount)).Value.Split('\\')[1];
DirectoryEntry admGroup = localMachine.Children.Find(localAdminGroupName, "group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
if (member.Name != String.Empty)
{
localAdminGroupSidsList.Add((new NTAccount(member.Name)).Translate(typeof(SecurityIdentifier)).Value);
}
}
_IsLocalAdminCheckSuccess = true;
}
catch { }
try
{
server = OpenServer(ServerName);
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.ClientBuildNumber, out buffer, out bytesReturned) == false)
{
return data;
}
int lData = Marshal.ReadInt32(buffer);
data.ClientBuildNumber = lData;
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.ClientDirectory, out buffer, out bytesReturned) == false)
{
return data;
}
string strData = Marshal.PtrToStringAnsi(buffer);
data.ClientDirectory = strData;
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.ClientName, out buffer, out bytesReturned) == false)
{
return data;
}
strData = Marshal.PtrToStringAnsi(buffer);
data.ClientName = strData;
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.ClientProtocolType, out buffer, out bytesReturned) == false)
{
return data;
}
Int16 intData = Marshal.ReadInt16(buffer);
if (intData == 2)
{
strData = "RDP";
data.IsRdpSession = true;
}
else
{
strData = "";
data.IsRdpSession = false;
}
data.ClientProtocolType = strData;
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.ConnectState, out buffer, out bytesReturned) == false)
{
return data;
}
lData = Marshal.ReadInt32(buffer);
data.ConnectState = ((WTS_CONNECTSTATE_CLASS) lData).ToString();
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.SessionId, out buffer, out bytesReturned) == false)
{
return data;
}
lData = Marshal.ReadInt32(buffer);
data.SessionId = lData;
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.DomainName, out buffer, out bytesReturned) == false)
{
return data;
}
strData = Marshal.PtrToStringAnsi(buffer).ToUpper();
data.DomainName = strData;
if (strData != String.Empty)
{
_NTAccount = strData;
}
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.UserName, out buffer, out bytesReturned) == false)
{
return data;
}
strData = Marshal.PtrToStringAnsi(buffer);
data.UserName = strData;
if (strData != String.Empty)
{
data.NTAccount = _NTAccount + "\\" + strData;
string _Sid = (new NTAccount(_NTAccount + "\\" + strData)).Translate(typeof(SecurityIdentifier)).Value;
data.SID = _Sid;
if (_IsLocalAdminCheckSuccess == true)
{
foreach (string localAdminGroupSid in localAdminGroupSidsList)
{
if (localAdminGroupSid == _Sid)
{
data.IsLocalAdmin = true;
break;
}
else
{
data.IsLocalAdmin = false;
}
}
}
}
if (WTSQuerySessionInformation(server, SessionId, WTS_INFO_CLASS.SessionName, out buffer, out bytesReturned) == false)
{
return data;
}
strData = Marshal.PtrToStringAnsi(buffer);
data.SessionName = strData;
if (strData != "Services" && strData != "RDP-Tcp" && data.UserName != String.Empty)
{
_IsUserSession = true;
}
data.IsUserSession = _IsUserSession;
if (strData == "Console")
{
_IsConsoleSession = true;
}
data.IsConsoleSession = _IsConsoleSession;
WINSTATIONINFORMATIONW wsInfo = GetWinStationInformation(server, SessionId);
DateTime? _loginTime = FileTimeToDateTime(wsInfo.LoginTime);
DateTime? _lastInputTime = FileTimeToDateTime(wsInfo.LastInputTime);
DateTime? _disconnectTime = FileTimeToDateTime(wsInfo.DisconnectTime);
DateTime? _currentTime = FileTimeToDateTime(wsInfo.CurrentTime);
TimeSpan? _idleTime = (_currentTime != null && _lastInputTime != null) ? _currentTime.Value - _lastInputTime.Value : TimeSpan.Zero;
data.LogonTime = _loginTime;
data.IdleTime = _idleTime;
data.DisconnectTime = _disconnectTime;
if (currentSessionID == SessionId)
{
_IsCurrentSessionId = true;
}
data.IsCurrentSession = _IsCurrentSessionId;
}
finally
{
WTSFreeMemory(buffer);
buffer = IntPtr.Zero;
CloseServer(server);
}
return data;
}
public static TerminalSessionInfo[] GetUserSessionInfo(string ServerName)
{
if (ServerName == "localhost" || ServerName == String.Empty)
{
ServerName = Environment.MachineName;
}
// Find and get detailed information for all user sessions
// Also determine the active user session. If a console user exists, then that will be the active user session.
// If no console user exists but users are logged in, such as on terminal servers, then select the first logged-in non-console user that is either 'Active' or 'Connected' as the active user.
TerminalSessionData[] sessions = ListSessions(ServerName);
TerminalSessionInfo sessionInfo = new TerminalSessionInfo();
List<TerminalSessionInfo> userSessionsInfo = new List<TerminalSessionInfo>();
string firstActiveUserNTAccount = String.Empty;
bool IsActiveUserSessionSet = false;
foreach (TerminalSessionData session in sessions)
{
if (session.IsUserSession == true)
{
sessionInfo = GetSessionInfo(ServerName, session.SessionId);
if (sessionInfo.IsUserSession == true)
{
if ((firstActiveUserNTAccount == String.Empty) && (sessionInfo.ConnectState == "Active" || sessionInfo.ConnectState == "Connected"))
{
firstActiveUserNTAccount = sessionInfo.NTAccount;
}
if (sessionInfo.IsConsoleSession == true)
{
sessionInfo.IsActiveUserSession = true;
IsActiveUserSessionSet = true;
}
else
{
sessionInfo.IsActiveUserSession = false;
}
userSessionsInfo.Add(sessionInfo);
}
}
}
TerminalSessionInfo[] userSessions = userSessionsInfo.ToArray();
if (IsActiveUserSessionSet == false)
{
foreach (TerminalSessionInfo userSession in userSessions)
{
if (userSession.NTAccount == firstActiveUserNTAccount)
{
userSession.IsActiveUserSession = true;
break;
}
}
}
return userSessions;
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

View File

@@ -0,0 +1,226 @@
<#
.SYNOPSIS
This script performs the installation or uninstallation of an application(s).
# LICENSE #
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks on Windows.
Copyright (C) 2017 - Sean Lillis, Dan Cunningham, Muhammad Mashwani, Aman Motazedian.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
.DESCRIPTION
The script is provided as a template to perform an install or uninstall of an application(s).
The script either performs an "Install" deployment type or an "Uninstall" deployment type.
The install deployment type is broken down into 3 main sections/phases: Pre-Install, Install, and Post-Install.
The script dot-sources the AppDeployToolkitMain.ps1 script which contains the logic and functions required to install or uninstall an application.
.PARAMETER DeploymentType
The type of deployment to perform. Default is: Install.
.PARAMETER DeployMode
Specifies whether the installation should be run in Interactive, Silent, or NonInteractive mode. Default is: Interactive. Options: Interactive = Shows dialogs, Silent = No dialogs, NonInteractive = Very silent, i.e. no blocking apps. NonInteractive mode is automatically set if it is detected that the process is not user interactive.
.PARAMETER AllowRebootPassThru
Allows the 3010 return code (requires restart) to be passed back to the parent process (e.g. SCCM) if detected from an installation. If 3010 is passed back to SCCM, a reboot prompt will be triggered.
.PARAMETER TerminalServerMode
Changes to "user install mode" and back to "user execute mode" for installing/uninstalling applications for Remote Destkop Session Hosts/Citrix servers.
.PARAMETER DisableLogging
Disables logging to file for the script. Default is: $false.
.EXAMPLE
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -DeployMode 'Silent'; Exit $LastExitCode }"
.EXAMPLE
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -AllowRebootPassThru; Exit $LastExitCode }"
.EXAMPLE
powershell.exe -Command "& { & '.\Deploy-Application.ps1' -DeploymentType 'Uninstall'; Exit $LastExitCode }"
.EXAMPLE
Deploy-Application.exe -DeploymentType "Install" -DeployMode "Silent"
.NOTES
Toolkit Exit Code Ranges:
60000 - 68999: Reserved for built-in exit codes in Deploy-Application.ps1, Deploy-Application.exe, and AppDeployToolkitMain.ps1
69000 - 69999: Recommended for user customized exit codes in Deploy-Application.ps1
70000 - 79999: Recommended for user customized exit codes in AppDeployToolkitExtensions.ps1
.LINK
http://psappdeploytoolkit.com
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory=$false)]
[ValidateSet('Install','Uninstall')]
[string]$DeploymentType = 'Install',
[Parameter(Mandatory=$false)]
[ValidateSet('Interactive','Silent','NonInteractive')]
[string]$DeployMode = 'Interactive',
[Parameter(Mandatory=$false)]
[switch]$AllowRebootPassThru = $false,
[Parameter(Mandatory=$false)]
[switch]$TerminalServerMode = $false,
[Parameter(Mandatory=$false)]
[switch]$DisableLogging = $false
)
Try {
## Set the script execution policy for this process
Try { Set-ExecutionPolicy -ExecutionPolicy 'ByPass' -Scope 'Process' -Force -ErrorAction 'Stop' } Catch {}
##*===============================================
##* VARIABLE DECLARATION
##*===============================================
## Variables: Application
[string]$appVendor = 'Bio-Rad'
[string]$appName = 'CFX Maestro'
[string]$appVersion = '2.3'
[string]$appArch = 'x86_x64'
[string]$appLang = 'EN'
[string]$appRevision = '01'
[string]$appScriptVersion = '1.0.0'
[string]$appScriptDate = '11/21/2023'
[string]$appScriptAuthor = 'John Palmer'
##*===============================================
## Variables: Install Titles (Only set here to override defaults set by the toolkit)
[string]$installName = ''
[string]$installTitle = ''
##* Do not modify section below
#region DoNotModify
## Variables: Exit Code
[int32]$mainExitCode = 0
## Variables: Script
[string]$deployAppScriptFriendlyName = 'Deploy Application'
[version]$deployAppScriptVersion = [version]'3.7.0'
[string]$deployAppScriptDate = '02/13/2018'
[hashtable]$deployAppScriptParameters = $psBoundParameters
## Variables: Environment
If (Test-Path -LiteralPath 'variable:HostInvocation') { $InvocationInfo = $HostInvocation } Else { $InvocationInfo = $MyInvocation }
[string]$scriptDirectory = Split-Path -Path $InvocationInfo.MyCommand.Definition -Parent
## Dot source the required App Deploy Toolkit Functions
Try {
[string]$moduleAppDeployToolkitMain = "$scriptDirectory\AppDeployToolkit\AppDeployToolkitMain.ps1"
If (-not (Test-Path -LiteralPath $moduleAppDeployToolkitMain -PathType 'Leaf')) { Throw "Module does not exist at the specified location [$moduleAppDeployToolkitMain]." }
If ($DisableLogging) { . $moduleAppDeployToolkitMain -DisableLogging } Else { . $moduleAppDeployToolkitMain }
}
Catch {
If ($mainExitCode -eq 0){ [int32]$mainExitCode = 60008 }
Write-Error -Message "Module [$moduleAppDeployToolkitMain] failed to load: `n$($_.Exception.Message)`n `n$($_.InvocationInfo.PositionMessage)" -ErrorAction 'Continue'
## Exit the script, returning the exit code to SCCM
If (Test-Path -LiteralPath 'variable:HostInvocation') { $script:ExitCode = $mainExitCode; Exit } Else { Exit $mainExitCode }
}
#endregion
##* Do not modify section above
##*===============================================
##* END VARIABLE DECLARATION
##*===============================================
If ($deploymentType -ine 'Uninstall') {
##*===============================================
##* PRE-INSTALLATION
##*===============================================
[string]$installPhase = 'Pre-Installation'
Write-Log "Closing related processses"
Show-InstallationWelcome -CloseApps 'BioRadC1000Server, BioRadCFXManager, BioRADMiniOpticonDiscovery'
## Show Progress Message (with the default message)
Show-InstallationProgress
## <Perform Pre-Installation tasks here>
## Import the Trusted Certs required for installation. ##
Copy-File -Path "$dirSupportFiles\*.cer" -Destination 'C:\TEMP\'
# The following only works on W10, so I left it for futue reference #
#Import-Certificate "C:\TEMP\BioRad.cer" -CertStoreLocation Cert:\LocalMachine\TrustedPublisher\
#Import-Certificate "C:\TEMP\Jungo.cer" -CertStoreLocation Cert:\LocalMachine\TrustedPublisher\
certutil -addstore "TrustedPublisher" C:\TEMP\BioRad.cer
certutil -addstore "TrustedPublisher" C:\TEMP\Jungo.cer
##*===============================================
##* INSTALLATION
##*===============================================
[string]$installPhase = 'Installation'
## Handle Zero-Config MSI Installations
If ($useDefaultMsi) {
[hashtable]$ExecuteDefaultMSISplat = @{ Action = 'Install'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
Execute-MSI @ExecuteDefaultMSISplat; If ($defaultMspFiles) { $defaultMspFiles | ForEach-Object { Execute-MSI -Action 'Patch' -Path $_ } }
}
## <Perform Installation tasks here>
Write-Log "Installing Bio-Rad CFX Maestro 2.3"
Execute-Process -Path "$dirFiles\CFX\CFXMaestroSetup.exe" -Parameters '/S /v/qn'
##*===============================================
##* POST-INSTALLATION
##*===============================================
[string]$installPhase = 'Post-Installation'
## <Perform Post-Installation tasks here>
## Remove the Certificates that were copied locally for import.
Remove-Item 'C:\TEMP' -Recurse
}
ElseIf ($deploymentType -ieq 'Uninstall')
{
##*===============================================
##* PRE-UNINSTALLATION
##*===============================================
[string]$installPhase = 'Pre-Uninstallation'
## Show Welcome Message, close Internet Explorer with a 60 second countdown before automatically closing
Show-InstallationWelcome -CloseApps 'BioRadC1000Server, BioRadCFXManager, BioRADMiniOpticonDiscovery' -CloseAppsCountdown 60
## Show Progress Message (with the default message)
Show-InstallationProgress
## <Perform Pre-Uninstallation tasks here>
##*===============================================
##* UNINSTALLATION
##*===============================================
[string]$installPhase = 'Uninstallation'
## Handle Zero-Config MSI Uninstallations
If ($useDefaultMsi) {
[hashtable]$ExecuteDefaultMSISplat = @{ Action = 'Uninstall'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
Execute-MSI @ExecuteDefaultMSISplat
}
# <Perform Uninstallation tasks here>
#Removing CFX Maestro
Write-Log "Removing CFX Maestro."
Remove-MSIApplications -Name 'Maestro' -FilterApplication (,('Publisher', 'Bio-Rad Laboratories, Inc.', 'Exact'))
##*===============================================
##* POST-UNINSTALLATION
##*===============================================
[string]$installPhase = 'Post-Uninstallation'
## <Perform Post-Uninstallation tasks here>
}
##*===============================================
##* END SCRIPT BODY
##*===============================================
## Call the Exit-Script function to perform final cleanup operations
Exit-Script -ExitCode $mainExitCode
}
Catch {
[int32]$mainExitCode = 60001
[string]$mainErrorMessage = "$(Resolve-Error)"
Write-Log -Message $mainErrorMessage -Severity 3 -Source $deployAppScriptFriendlyName
Show-DialogBox -Text $mainErrorMessage -Icon 'Stop'
Exit-Script -ExitCode $mainExitCode
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,170 @@
; Jungo Confidential. Copyright (c) 2010 Jungo. http://www.jungo.com
; Generated by DriverWizard v10.10.
; Installation file (.inf) for "C1000 Flagship" device
; Installation file (.inf) for "S1000 Satellite" device
; Installation file (.inf) for "Mini Cycler" device
; Copyright (c) 2010 Bio-Rad Laboratories
;
;
; Refer to Windows DDK documentation for more information on INF files
******************** Modified 2 Sept 2011 CLusher **************************
; Added cypress unprogrammed vid/pid to the jungo list of devices
******************** Modified 28 Mar 2011 STaran **************************
; Changed name to CFX Connect Thermal Cycler
;******************** Modified 29 Dec 2010 STaran **************************
; Added new CFX2 Thermal Cycler
;******************** Modified 8 Nov 2010 CLusher **************************
; Jungo 10.21
; ****************************************************************************
; ******************** Modified 8 July 2010 STaran **************************
; Updated CatalogFile to reference new Jungo version 10.20
; ****************************************************************************
; ******************** Modified 8 July 2010 CLusher **************************
; added c1000 touch vid/pid
; ****************************************************************************
; ******************** Modified 12 Jan 2010 CLusher **************************
; Updated to Jungo 10.1
; Removed Win98/ME Install lines
; ****************************************************************************
; ******************** Modified 24 Jul 2007 MRegalia *************************
; Removed windrvr6.sys from FilesToCopy section and added wdapi900.dll to be
; copied to the %windir%\System32 directory.
;
; Removed windrvr6.sys from the SourceDisksFiles section and added wdapi900.dll
;
; Removed DefaultDestDir=10 reference.
; *****************************************************************************
; ******************** Modified 25 Jul 2007 MRegalia **************************
; Changed inf file name from BR_Satellite.inf to C1000_ThermalCycler.inf
;
; Change device list names to C1000 Thermal Cycler and S1000 Thermal Cycler.
; Remove Flagship and Satellite references.
;
; Remove copy wdapi900.dll to the %windir%\System32 directory. File is not copied
; until the device is connected. This prevents application from running without
; device attached at least once.
; *****************************************************************************
;
; Version Information
; -------------------
[Version]
Signature="$CHICAGO$" ; Represents all Windows OS's
Provider=%jun%
; For WHQL, you should obtain a catalog signed by Microsoft Hardware Compatibility Labs
CatalogFile=c1000.cat
DriverVer=01/07/2013, 11.2.0
; Select an appropriate class for the device.
; There are several options:
; - Use the Jungo class.
; - Define your own class by generating a private GUID and a class description.
; - Use a system-defined class. This is required for a device that belongs to
; a device class that is supported by system-provided drivers, i.e. HID or USB Audio.
; For example, to replace a default USB mouse driver you have to specify the
; description and GUID of HID class:
; Class=HIDClass
; ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
;
; We use a Jungo class, you may modify here and use a different class:
Class=Jungo
ClassGuid={c671678c-82c1-43f3-d700-0049433e9a4b}
; Driver Information
; ------------------
[Manufacturer]
; You may modify the manufacturer name by changing the Mfg variable in the [Strings]
; section in this INF file.
%Mfg%=DeviceList,NTamd64
; The 'Install' lines under the [DeviceList] include the device name that will
; be displayed in the Device Managerand the hardware ID's.
; You may modify the device names and the hardware ID's.
; The Vendor ID is 0614, and the Product ID is 03fb
; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
"C1000 Touch Thermal Cycler"=Install, USB\VID_0614&PID_057B
"C1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FA
"CFX Connect Thermal Cycler"=Install, USB\VID_0614&PID_057D
"S1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FB
"Bio-Rad Mini Cycler"=Install,USB\VID_4079&PID_0221
"Bio-Rad Mini Optical Module"=Install,USB\VID_4079&PID_0222
"Bio-Rad Mini Cycler UnProgrammed"=Install,USB\VID_0547&PID_2131
"Bio-Rad Locust Thermal Module"=Install,USB\VID_0614&PID_1410
"Bio-Rad Locust Optics Module"=Install,USB\VID_0614&PID_1411
; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
"C1000 Touch Thermal Cycler"=Install, USB\VID_0614&PID_057B
"C1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FA
"CFX Connect Thermal Cycler"=Install, USB\VID_0614&PID_057D
"S1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FB
"Bio-Rad Mini Cycler"=Install,USB\VID_4079&PID_0221
"Bio-Rad Mini Optical Module"=Install,USB\VID_4079&PID_0222
"Bio-Rad Mini Cycler UnProgrammed"=Install,USB\VID_0547&PID_2131
"Bio-Rad Locust Thermal Module"=Install,USB\VID_0614&PID_1410
"Bio-Rad Locust Optics Module"=Install,USB\VID_0614&PID_1411
; Installation Section
; --------------------
[Install.NT] ; Installation script for Windows 2000 and later
CopyFiles=FilesToCopy
AddReg=UpDateRegistry
[FilesToCopy]
; To copy windrvr6.sys upon installation remove the ';' from the start of the following line
;windrvr6.sys ,,,0x40 ; 0x40 == COPYFLG_OVERWRITE_OLDER_ONLY
[ClassInstall32] ; Register a new class in Windows 2000 and later
AddReg=UpDateRegistry
[UpDateRegistry]
HKR,,,,Jungo
HKR,,Icon,,-5
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,, windrvr6.sys
[ControlFlags]
ExcludeFromSelect = * ; Remove all devices listed in this INF file from certain user
; interface displays, from which a user is expected to select a particular device
; for installation.
[PreCopySection]
HKR,,NoSetupUI,,1
; Defining WinDriver6 Service
; ---------------------------
[Install.NT.Services]
Addservice=WinDriver6, 0x00000002, Service_Info
[Service_Info]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\windrvr6.sys
; Source File Information
; -----------------------
[SourceDisksFiles]
;windrvr6.sys=1 ; This indicates that the windrvr6.sys file is located on
; disk number 1 of "Bio-Rad Laboratories Installation disks" set.
;wdapi900.dll=1
[SourceDisksNames]
1="Bio-Rad Laboratories Installation Disk",, ; This indicates that disk number 1
; has the label "Bio-Rad Laboratories Installation Disk". The installer will
; search for windrvr6.sys in this disk.
[DestinationDirs]
;DefaultDestDir=10, System32\Drivers ; The location to which the windrvr6.sys
; file will be copied (10 translates to the correct Windows directory
; on the target machine).
;---------------------------------------------------------------;
[Strings]
jun="Jungo LTD."
Mfg="Bio-Rad Laboratories"

View File

@@ -0,0 +1,10 @@
@ECHO OFF
attrib -r ..\..\..\bioradEV*.dll
attrib -r ..\..\..\bioradMini*.dll
attrib -r ..\..\..\bioradSi*.dll
Copy BioRad*.dll ..\..\..
attrib -r ..\..\..\wdapi*.dll
Copy wdapi*.dll ..\..\..
copy InstallType.txt ..

View File

@@ -0,0 +1,7 @@
Copy BioRad*.dll ..\..\..
attrib -r ..\..\..\wdapi*.dll
Copy wdapi*.dll ..\..\..
call register.bat %1

View File

@@ -0,0 +1,15 @@
if "%~1"=="" goto nolog
echo Registration with log
mkdir "%~1"
wdreg_GUI -inf windrvr6.inf -log "%~1\windrv6_32.txt" -silent install
wdreg_GUI -inf C1000_ThermalCycler.inf -log "%~1\C1000_ThermalCycler_32.txt" -silent install
goto done
:nolog
echo Registration with no log
wdreg_GUI -inf windrvr6.inf -silent install
wdreg_GUI -inf C1000_ThermalCycler.inf -silent install
:done

View File

@@ -0,0 +1,6 @@
wdreg -inf windrvr6.inf uninstall
wdreg -inf C1000_ThermalCycler.inf uninstall
pause

View File

@@ -0,0 +1,84 @@
;
; Jungo Confidential. Copyright (c) 2013 Jungo Ltd. http://www.jungo.com
;
; Installs windrvr6.sys as a driver for a pseudo-device
;
[Version]
Signature=$CHICAGO$
Class=Jungo
ClassGuid={c671678c-82c1-43f3-d700-0049433e9a4b}
Provider=%MFGNAME%
; The catalog file below is digitally signed by Jungo.
; For WHQL, you should obtain a catalog signed by Microsoft Hardware Compatibility Labs
CatalogFile=wd1120.cat
DriverVer=01/07/2013, 11.2.0
[Manufacturer]
%MFGNAME%=DeviceList,NTamd64
[DestinationDirs]
DefaultDestDir=10,System32\Drivers
[SourceDisksFiles]
windrvr6.sys=1
[SourceDisksNames]
1=%INSTDISK%,,,.
;Delete the above line and uncomment the next line for WHQL
;1 = %INSTDISK%,windrvr6.cat,,
; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
%DESCRIPTION%=DriverInstall,*WINDRVR6
; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,*WINDRVR6
[ClassInstall32] ; Register a new class in Windows 2000 and later
AddReg=UpdateRegistry
[UpdateRegistry]
HKR,,,,Jungo
HKR,,Icon,,-5
;------------------------------------------------------------------------------
; Windows 2000 and later Sections (x86 and x64 platforms)
;------------------------------------------------------------------------------
[DriverInstall.NT]
CopyFiles=DriverCopyFiles
[DriverCopyFiles]
windrvr6.sys,,,0x22 ; COPYFLG_NOSKIP | COPYFLG_NO_VERSION_DIALOG
[DriverInstall.NT.Services]
AddService=WinDriver6,2,DriverService
[DriverService]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary=%10%\system32\drivers\windrvr6.sys
AddReg = windrvr6.AddReg
[windrvr6.AddReg]
;Set the value below to 1 to enable legacy read/write of PCI configuration space
HKR, Parameters, PciCfgRwCompat, 0x00010001, 0
[DriverInstall.NT.hw]
AddReg=DriverHwAddReg
[DriverHwAddReg]
HKR,,SampleInfo,,""
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
[Strings]
MFGNAME="Jungo"
INSTDISK="Jungo Installation Disc"
DESCRIPTION="WinDriver"

View File

@@ -0,0 +1,170 @@
; Jungo Confidential. Copyright (c) 2010 Jungo. http://www.jungo.com
; Generated by DriverWizard v10.10.
; Installation file (.inf) for "C1000 Flagship" device
; Installation file (.inf) for "S1000 Satellite" device
; Installation file (.inf) for "Mini Cycler" device
; Copyright (c) 2010 Bio-Rad Laboratories
;
;
; Refer to Windows DDK documentation for more information on INF files
******************** Modified 2 Sept 2011 CLusher **************************
; Added cypress unprogrammed vid/pid to the jungo list of devices
******************** Modified 28 Mar 2011 STaran **************************
; Changed name to CFX Connect Thermal Cycler
;******************** Modified 29 Dec 2010 STaran **************************
; Added new CFX2 Thermal Cycler
;******************** Modified 8 Nov 2010 CLusher **************************
; Jungo 10.21
; ****************************************************************************
; ******************** Modified 8 July 2010 STaran **************************
; Updated CatalogFile to reference new Jungo version 10.20
; ****************************************************************************
; ******************** Modified 8 July 2010 CLusher **************************
; added c1000 touch vid/pid
; ****************************************************************************
; ******************** Modified 12 Jan 2010 CLusher **************************
; Updated to Jungo 10.1
; Removed Win98/ME Install lines
; ****************************************************************************
; ******************** Modified 24 Jul 2007 MRegalia *************************
; Removed windrvr6.sys from FilesToCopy section and added wdapi900.dll to be
; copied to the %windir%\System32 directory.
;
; Removed windrvr6.sys from the SourceDisksFiles section and added wdapi900.dll
;
; Removed DefaultDestDir=10 reference.
; *****************************************************************************
; ******************** Modified 25 Jul 2007 MRegalia **************************
; Changed inf file name from BR_Satellite.inf to C1000_ThermalCycler.inf
;
; Change device list names to C1000 Thermal Cycler and S1000 Thermal Cycler.
; Remove Flagship and Satellite references.
;
; Remove copy wdapi900.dll to the %windir%\System32 directory. File is not copied
; until the device is connected. This prevents application from running without
; device attached at least once.
; *****************************************************************************
;
; Version Information
; -------------------
[Version]
Signature="$CHICAGO$" ; Represents all Windows OS's
Provider=%jun%
; For WHQL, you should obtain a catalog signed by Microsoft Hardware Compatibility Labs
CatalogFile=c1000.cat
DriverVer=01/07/2013, 11.2.0
; Select an appropriate class for the device.
; There are several options:
; - Use the Jungo class.
; - Define your own class by generating a private GUID and a class description.
; - Use a system-defined class. This is required for a device that belongs to
; a device class that is supported by system-provided drivers, i.e. HID or USB Audio.
; For example, to replace a default USB mouse driver you have to specify the
; description and GUID of HID class:
; Class=HIDClass
; ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da}
;
; We use a Jungo class, you may modify here and use a different class:
Class=Jungo
ClassGuid={c671678c-82c1-43f3-d700-0049433e9a4b}
; Driver Information
; ------------------
[Manufacturer]
; You may modify the manufacturer name by changing the Mfg variable in the [Strings]
; section in this INF file.
%Mfg%=DeviceList,NTamd64
; The 'Install' lines under the [DeviceList] include the device name that will
; be displayed in the Device Managerand the hardware ID's.
; You may modify the device names and the hardware ID's.
; The Vendor ID is 0614, and the Product ID is 03fb
; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
"C1000 Touch Thermal Cycler"=Install, USB\VID_0614&PID_057B
"C1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FA
"CFX Connect Thermal Cycler"=Install, USB\VID_0614&PID_057D
"S1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FB
"Bio-Rad Mini Cycler"=Install,USB\VID_4079&PID_0221
"Bio-Rad Mini Optical Module"=Install,USB\VID_4079&PID_0222
"Bio-Rad Mini Cycler UnProgrammed"=Install,USB\VID_0547&PID_2131
"Bio-Rad Locust Thermal Module"=Install,USB\VID_0614&PID_1410
"Bio-Rad Locust Optics Module"=Install,USB\VID_0614&PID_1411
; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
"C1000 Touch Thermal Cycler"=Install, USB\VID_0614&PID_057B
"C1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FA
"CFX Connect Thermal Cycler"=Install, USB\VID_0614&PID_057D
"S1000 Thermal Cycler"=Install, USB\VID_0614&PID_03FB
"Bio-Rad Mini Cycler"=Install,USB\VID_4079&PID_0221
"Bio-Rad Mini Optical Module"=Install,USB\VID_4079&PID_0222
"Bio-Rad Mini Cycler UnProgrammed"=Install,USB\VID_0547&PID_2131
"Bio-Rad Locust Thermal Module"=Install,USB\VID_0614&PID_1410
"Bio-Rad Locust Optics Module"=Install,USB\VID_0614&PID_1411
; Installation Section
; --------------------
[Install.NT] ; Installation script for Windows 2000 and later
CopyFiles=FilesToCopy
AddReg=UpDateRegistry
[FilesToCopy]
; To copy windrvr6.sys upon installation remove the ';' from the start of the following line
;windrvr6.sys ,,,0x40 ; 0x40 == COPYFLG_OVERWRITE_OLDER_ONLY
[ClassInstall32] ; Register a new class in Windows 2000 and later
AddReg=UpDateRegistry
[UpDateRegistry]
HKR,,,,Jungo
HKR,,Icon,,-5
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,, windrvr6.sys
[ControlFlags]
ExcludeFromSelect = * ; Remove all devices listed in this INF file from certain user
; interface displays, from which a user is expected to select a particular device
; for installation.
[PreCopySection]
HKR,,NoSetupUI,,1
; Defining WinDriver6 Service
; ---------------------------
[Install.NT.Services]
Addservice=WinDriver6, 0x00000002, Service_Info
[Service_Info]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\windrvr6.sys
; Source File Information
; -----------------------
[SourceDisksFiles]
;windrvr6.sys=1 ; This indicates that the windrvr6.sys file is located on
; disk number 1 of "Bio-Rad Laboratories Installation disks" set.
;wdapi900.dll=1
[SourceDisksNames]
1="Bio-Rad Laboratories Installation Disk",, ; This indicates that disk number 1
; has the label "Bio-Rad Laboratories Installation Disk". The installer will
; search for windrvr6.sys in this disk.
[DestinationDirs]
;DefaultDestDir=10, System32\Drivers ; The location to which the windrvr6.sys
; file will be copied (10 translates to the correct Windows directory
; on the target machine).
;---------------------------------------------------------------;
[Strings]
jun="Jungo LTD."
Mfg="Bio-Rad Laboratories"

View File

@@ -0,0 +1,10 @@
@ECHO OFF
attrib -r ..\..\..\bioradEV*.dll
attrib -r ..\..\..\bioradMini*.dll
attrib -r ..\..\..\bioradSi*.dll
Copy BioRad*.dll ..\..\..
attrib -r ..\..\..\wdapi*.dll
Copy wdapi*.dll ..\..\..
copy InstallType.txt ..

View File

@@ -0,0 +1,7 @@
Copy BioRad*.dll ..\..\..
attrib -r ..\..\..\wdapi*.dll
Copy wdapi*.dll ..\..\..
call register.bat %1

View File

@@ -0,0 +1,15 @@
if "%~1"=="" goto nolog
echo Registration with log
mkdir "%~1"
wdreg_GUI -inf windrvr6.inf -log "%~1\windrv6_64.txt" -silent install
wdreg_GUI -inf C1000_ThermalCycler.inf -log "%~1\C1000_ThermalCycler_64.txt" -silent install
goto done
:nolog
echo Registration with no log
wdreg_GUI -inf windrvr6.inf -silent install
wdreg_GUI -inf C1000_ThermalCycler.inf -silent install
:done

View File

@@ -0,0 +1,6 @@
wdreg -inf windrvr6.inf uninstall
wdreg -inf C1000_ThermalCycler.inf uninstall
pause

View File

@@ -0,0 +1,84 @@
;
; Jungo Confidential. Copyright (c) 2013 Jungo Ltd. http://www.jungo.com
;
; Installs windrvr6.sys as a driver for a pseudo-device
;
[Version]
Signature=$CHICAGO$
Class=Jungo
ClassGuid={c671678c-82c1-43f3-d700-0049433e9a4b}
Provider=%MFGNAME%
; The catalog file below is digitally signed by Jungo.
; For WHQL, you should obtain a catalog signed by Microsoft Hardware Compatibility Labs
CatalogFile=wd1120.cat
DriverVer=01/07/2013, 11.2.0
[Manufacturer]
%MFGNAME%=DeviceList,NTamd64
[DestinationDirs]
DefaultDestDir=10,System32\Drivers
[SourceDisksFiles]
windrvr6.sys=1
[SourceDisksNames]
1=%INSTDISK%,,,.
;Delete the above line and uncomment the next line for WHQL
;1 = %INSTDISK%,windrvr6.cat,,
; x86 platform, Win9x, Windows 2000 and later
[DeviceList]
%DESCRIPTION%=DriverInstall,*WINDRVR6
; x64 platform, Windows XP x64 edition and later
[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,*WINDRVR6
[ClassInstall32] ; Register a new class in Windows 2000 and later
AddReg=UpdateRegistry
[UpdateRegistry]
HKR,,,,Jungo
HKR,,Icon,,-5
;------------------------------------------------------------------------------
; Windows 2000 and later Sections (x86 and x64 platforms)
;------------------------------------------------------------------------------
[DriverInstall.NT]
CopyFiles=DriverCopyFiles
[DriverCopyFiles]
windrvr6.sys,,,0x22 ; COPYFLG_NOSKIP | COPYFLG_NO_VERSION_DIALOG
[DriverInstall.NT.Services]
AddService=WinDriver6,2,DriverService
[DriverService]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary=%10%\system32\drivers\windrvr6.sys
AddReg = windrvr6.AddReg
[windrvr6.AddReg]
;Set the value below to 1 to enable legacy read/write of PCI configuration space
HKR, Parameters, PciCfgRwCompat, 0x00010001, 0
[DriverInstall.NT.hw]
AddReg=DriverHwAddReg
[DriverHwAddReg]
HKR,,SampleInfo,,""
;------------------------------------------------------------------------------
; String Definitions
;------------------------------------------------------------------------------
[Strings]
MFGNAME="Jungo"
INSTDISK="Jungo Installation Disc"
DESCRIPTION="WinDriver"

View File

@@ -0,0 +1,57 @@
a) signed 2 cat files in \files folder with 2023 biorad certificate
(This may not be absolutely required, as FTDI has there two cat files signed already)
Please note:
- Make sure .cat file are not read-only before issuing the following command
- replace /p ... with actual password below
signtool.exe sign /fd sha256 /a /f "current LSGRD CS.pfx" /p 6P...7D /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v ..\files\*.cat
The following certificate was selected:
Issued to: Bio-Rad Laboratories, Inc
Issued by: Symantec Class 3 SHA256 Code Signing CA
Expires: Thu Mar 09 16:59:59 2023
SHA1 hash: 8311FE0202D3634C444BDB2EA696369667725015
Done Adding Additional Store
Successfully signed: ..\files\ftdibus.cat
Successfully signed: ..\files\ftdiport.cat
Number of files successfully Signed: 2
Number of warnings: 0
Number of errors: 0
b) Removed dpinst.xml so driver can be installed in silent mode
Can now run the 64-Bit version:
dpinst-amd64.exe /S /C
where: /S is for silent
/C reports any errors with is very helpful for troubleshooting problems
See that it installs two FTDI entries under:
Control Panel\All Control Panel Items\Programs and Features
NOTES:
To remove the FTDI driver use CDMuninstallerGUI.exe utility
Start it,
clear product ID field
Click ADD
click [x] generate uninstall log
then click remove devices
The log will show something like this:
Searching DriverStore
Search concluded after finding no results matching VID_0403 and PID_.
Deleting INF Files
pnputil.exe /f /d oem105.inf298
Successfully removed.pnputil.exe /f /d oem106.inf0
Successfully removed.Done
Searching DriverStore
Search concluded after finding no results matching VID_0403 and PID_.
Deleting INF Files
Done

View File

@@ -0,0 +1,270 @@
<?xml version="1.0" ?><dpinst>
<language code="0x0000"><eula type="txt" path="licence.txt"/></language>
<language code="0x0004"><eula type="txt" path="licence.txt"/></language>
<language code="0x001A"><eula type="txt" path="licence.txt"/></language>
<language code="0x007F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0400"><eula type="txt" path="licence.txt"/></language>
<language code="0x0401"><eula type="txt" path="licence.txt"/></language>
<language code="0x0402"><eula type="txt" path="licence.txt"/></language>
<language code="0x0403"><eula type="txt" path="licence.txt"/></language>
<language code="0x0404"><eula type="txt" path="licence.txt"/></language>
<language code="0x0405"><eula type="txt" path="licence.txt"/></language>
<language code="0x0406"><eula type="txt" path="licence.txt"/></language>
<language code="0x0407"><eula type="txt" path="licence.txt"/></language>
<language code="0x0408"><eula type="txt" path="licence.txt"/></language>
<language code="0x0409"><eula type="txt" path="licence.txt"/></language>
<language code="0x040A"><eula type="txt" path="licence.txt"/></language>
<language code="0x040B"><eula type="txt" path="licence.txt"/></language>
<language code="0x040C"><eula type="txt" path="licence.txt"/></language>
<language code="0x040D"><eula type="txt" path="licence.txt"/></language>
<language code="0x040E"><eula type="txt" path="licence.txt"/></language>
<language code="0x040F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0410"><eula type="txt" path="licence.txt"/></language>
<language code="0x0411"><eula type="txt" path="licence.txt"/></language>
<language code="0x0412"><eula type="txt" path="licence.txt"/></language>
<language code="0x0413"><eula type="txt" path="licence.txt"/></language>
<language code="0x0414"><eula type="txt" path="licence.txt"/></language>
<language code="0x0415"><eula type="txt" path="licence.txt"/></language>
<language code="0x0416"><eula type="txt" path="licence.txt"/></language>
<language code="0x0417"><eula type="txt" path="licence.txt"/></language>
<language code="0x0418"><eula type="txt" path="licence.txt"/></language>
<language code="0x0419"><eula type="txt" path="licence.txt"/></language>
<language code="0x041A"><eula type="txt" path="licence.txt"/></language>
<language code="0x041B"><eula type="txt" path="licence.txt"/></language>
<language code="0x041C"><eula type="txt" path="licence.txt"/></language>
<language code="0x041D"><eula type="txt" path="licence.txt"/></language>
<language code="0x041E"><eula type="txt" path="licence.txt"/></language>
<language code="0x041F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0420"><eula type="txt" path="licence.txt"/></language>
<language code="0x0421"><eula type="txt" path="licence.txt"/></language>
<language code="0x0422"><eula type="txt" path="licence.txt"/></language>
<language code="0x0423"><eula type="txt" path="licence.txt"/></language>
<language code="0x0424"><eula type="txt" path="licence.txt"/></language>
<language code="0x0425"><eula type="txt" path="licence.txt"/></language>
<language code="0x0426"><eula type="txt" path="licence.txt"/></language>
<language code="0x0427"><eula type="txt" path="licence.txt"/></language>
<language code="0x0428"><eula type="txt" path="licence.txt"/></language>
<language code="0x0429"><eula type="txt" path="licence.txt"/></language>
<language code="0x042A"><eula type="txt" path="licence.txt"/></language>
<language code="0x042B"><eula type="txt" path="licence.txt"/></language>
<language code="0x042C"><eula type="txt" path="licence.txt"/></language>
<language code="0x042D"><eula type="txt" path="licence.txt"/></language>
<language code="0x042E"><eula type="txt" path="licence.txt"/></language>
<language code="0x042F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0430"><eula type="txt" path="licence.txt"/></language>
<language code="0x0431"><eula type="txt" path="licence.txt"/></language>
<language code="0x0432"><eula type="txt" path="licence.txt"/></language>
<language code="0x0433"><eula type="txt" path="licence.txt"/></language>
<language code="0x0434"><eula type="txt" path="licence.txt"/></language>
<language code="0x0435"><eula type="txt" path="licence.txt"/></language>
<language code="0x0436"><eula type="txt" path="licence.txt"/></language>
<language code="0x0437"><eula type="txt" path="licence.txt"/></language>
<language code="0x0438"><eula type="txt" path="licence.txt"/></language>
<language code="0x0439"><eula type="txt" path="licence.txt"/></language>
<language code="0x043A"><eula type="txt" path="licence.txt"/></language>
<language code="0x043B"><eula type="txt" path="licence.txt"/></language>
<language code="0x043C"><eula type="txt" path="licence.txt"/></language>
<language code="0x043D"><eula type="txt" path="licence.txt"/></language>
<language code="0x043E"><eula type="txt" path="licence.txt"/></language>
<language code="0x043F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0440"><eula type="txt" path="licence.txt"/></language>
<language code="0x0441"><eula type="txt" path="licence.txt"/></language>
<language code="0x0442"><eula type="txt" path="licence.txt"/></language>
<language code="0x0443"><eula type="txt" path="licence.txt"/></language>
<language code="0x0444"><eula type="txt" path="licence.txt"/></language>
<language code="0x0445"><eula type="txt" path="licence.txt"/></language>
<language code="0x0446"><eula type="txt" path="licence.txt"/></language>
<language code="0x0447"><eula type="txt" path="licence.txt"/></language>
<language code="0x0448"><eula type="txt" path="licence.txt"/></language>
<language code="0x0449"><eula type="txt" path="licence.txt"/></language>
<language code="0x044A"><eula type="txt" path="licence.txt"/></language>
<language code="0x044B"><eula type="txt" path="licence.txt"/></language>
<language code="0x044C"><eula type="txt" path="licence.txt"/></language>
<language code="0x044D"><eula type="txt" path="licence.txt"/></language>
<language code="0x044E"><eula type="txt" path="licence.txt"/></language>
<language code="0x044F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0450"><eula type="txt" path="licence.txt"/></language>
<language code="0x0451"><eula type="txt" path="licence.txt"/></language>
<language code="0x0452"><eula type="txt" path="licence.txt"/></language>
<language code="0x0453"><eula type="txt" path="licence.txt"/></language>
<language code="0x0454"><eula type="txt" path="licence.txt"/></language>
<language code="0x0455"><eula type="txt" path="licence.txt"/></language>
<language code="0x0456"><eula type="txt" path="licence.txt"/></language>
<language code="0x0457"><eula type="txt" path="licence.txt"/></language>
<language code="0x0458"><eula type="txt" path="licence.txt"/></language>
<language code="0x0459"><eula type="txt" path="licence.txt"/></language>
<language code="0x045A"><eula type="txt" path="licence.txt"/></language>
<language code="0x045B"><eula type="txt" path="licence.txt"/></language>
<language code="0x045C"><eula type="txt" path="licence.txt"/></language>
<language code="0x045D"><eula type="txt" path="licence.txt"/></language>
<language code="0x045E"><eula type="txt" path="licence.txt"/></language>
<language code="0x045F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0460"><eula type="txt" path="licence.txt"/></language>
<language code="0x0461"><eula type="txt" path="licence.txt"/></language>
<language code="0x0462"><eula type="txt" path="licence.txt"/></language>
<language code="0x0463"><eula type="txt" path="licence.txt"/></language>
<language code="0x0464"><eula type="txt" path="licence.txt"/></language>
<language code="0x0465"><eula type="txt" path="licence.txt"/></language>
<language code="0x0466"><eula type="txt" path="licence.txt"/></language>
<language code="0x0467"><eula type="txt" path="licence.txt"/></language>
<language code="0x0468"><eula type="txt" path="licence.txt"/></language>
<language code="0x0469"><eula type="txt" path="licence.txt"/></language>
<language code="0x046A"><eula type="txt" path="licence.txt"/></language>
<language code="0x046B"><eula type="txt" path="licence.txt"/></language>
<language code="0x046C"><eula type="txt" path="licence.txt"/></language>
<language code="0x046D"><eula type="txt" path="licence.txt"/></language>
<language code="0x046E"><eula type="txt" path="licence.txt"/></language>
<language code="0x046F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0470"><eula type="txt" path="licence.txt"/></language>
<language code="0x0471"><eula type="txt" path="licence.txt"/></language>
<language code="0x0472"><eula type="txt" path="licence.txt"/></language>
<language code="0x0473"><eula type="txt" path="licence.txt"/></language>
<language code="0x0474"><eula type="txt" path="licence.txt"/></language>
<language code="0x0475"><eula type="txt" path="licence.txt"/></language>
<language code="0x0476"><eula type="txt" path="licence.txt"/></language>
<language code="0x0477"><eula type="txt" path="licence.txt"/></language>
<language code="0x0478"><eula type="txt" path="licence.txt"/></language>
<language code="0x0479"><eula type="txt" path="licence.txt"/></language>
<language code="0x047A"><eula type="txt" path="licence.txt"/></language>
<language code="0x047C"><eula type="txt" path="licence.txt"/></language>
<language code="0x047E"><eula type="txt" path="licence.txt"/></language>
<language code="0x0480"><eula type="txt" path="licence.txt"/></language>
<language code="0x0481"><eula type="txt" path="licence.txt"/></language>
<language code="0x0482"><eula type="txt" path="licence.txt"/></language>
<language code="0x0483"><eula type="txt" path="licence.txt"/></language>
<language code="0x0484"><eula type="txt" path="licence.txt"/></language>
<language code="0x0485"><eula type="txt" path="licence.txt"/></language>
<language code="0x0486"><eula type="txt" path="licence.txt"/></language>
<language code="0x0487"><eula type="txt" path="licence.txt"/></language>
<language code="0x0488"><eula type="txt" path="licence.txt"/></language>
<language code="0x048C"><eula type="txt" path="licence.txt"/></language>
<language code="0x0492"><eula type="txt" path="licence.txt"/></language>
<language code="0x04FF"><eula type="txt" path="licence.txt"/></language>
<language code="0x0800"><eula type="txt" path="licence.txt"/></language>
<language code="0x0801"><eula type="txt" path="licence.txt"/></language>
<language code="0x0803"><eula type="txt" path="licence.txt"/></language>
<language code="0x0804"><eula type="txt" path="licence.txt"/></language>
<language code="0x0807"><eula type="txt" path="licence.txt"/></language>
<language code="0x0809"><eula type="txt" path="licence.txt"/></language>
<language code="0x080A"><eula type="txt" path="licence.txt"/></language>
<language code="0x080C"><eula type="txt" path="licence.txt"/></language>
<language code="0x0810"><eula type="txt" path="licence.txt"/></language>
<language code="0x0813"><eula type="txt" path="licence.txt"/></language>
<language code="0x0814"><eula type="txt" path="licence.txt"/></language>
<language code="0x0816"><eula type="txt" path="licence.txt"/></language>
<language code="0x0818"><eula type="txt" path="licence.txt"/></language>
<language code="0x0819"><eula type="txt" path="licence.txt"/></language>
<language code="0x081A"><eula type="txt" path="licence.txt"/></language>
<language code="0x081D"><eula type="txt" path="licence.txt"/></language>
<language code="0x0820"><eula type="txt" path="licence.txt"/></language>
<language code="0x082C"><eula type="txt" path="licence.txt"/></language>
<language code="0x082E"><eula type="txt" path="licence.txt"/></language>
<language code="0x0832"><eula type="txt" path="licence.txt"/></language>
<language code="0x083B"><eula type="txt" path="licence.txt"/></language>
<language code="0x083C"><eula type="txt" path="licence.txt"/></language>
<language code="0x083E"><eula type="txt" path="licence.txt"/></language>
<language code="0x0843"><eula type="txt" path="licence.txt"/></language>
<language code="0x0845"><eula type="txt" path="licence.txt"/></language>
<language code="0x0846"><eula type="txt" path="licence.txt"/></language>
<language code="0x0849"><eula type="txt" path="licence.txt"/></language>
<language code="0x0850"><eula type="txt" path="licence.txt"/></language>
<language code="0x0851"><eula type="txt" path="licence.txt"/></language>
<language code="0x0859"><eula type="txt" path="licence.txt"/></language>
<language code="0x085D"><eula type="txt" path="licence.txt"/></language>
<language code="0x085F"><eula type="txt" path="licence.txt"/></language>
<language code="0x0860"><eula type="txt" path="licence.txt"/></language>
<language code="0x0861"><eula type="txt" path="licence.txt"/></language>
<language code="0x0867"><eula type="txt" path="licence.txt"/></language>
<language code="0x086B"><eula type="txt" path="licence.txt"/></language>
<language code="0x0873"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C00"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C01"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C04"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C07"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C09"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C0A"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C0C"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C1A"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C3B"><eula type="txt" path="licence.txt"/></language>
<language code="0x0C6B"><eula type="txt" path="licence.txt"/></language>
<language code="0x1000"><eula type="txt" path="licence.txt"/></language>
<language code="0x1001"><eula type="txt" path="licence.txt"/></language>
<language code="0x1004"><eula type="txt" path="licence.txt"/></language>
<language code="0x1007"><eula type="txt" path="licence.txt"/></language>
<language code="0x1009"><eula type="txt" path="licence.txt"/></language>
<language code="0x100A"><eula type="txt" path="licence.txt"/></language>
<language code="0x100C"><eula type="txt" path="licence.txt"/></language>
<language code="0x101A"><eula type="txt" path="licence.txt"/></language>
<language code="0x103B"><eula type="txt" path="licence.txt"/></language>
<language code="0x1400"><eula type="txt" path="licence.txt"/></language>
<language code="0x1401"><eula type="txt" path="licence.txt"/></language>
<language code="0x1404"><eula type="txt" path="licence.txt"/></language>
<language code="0x1407"><eula type="txt" path="licence.txt"/></language>
<language code="0x1409"><eula type="txt" path="licence.txt"/></language>
<language code="0x140A"><eula type="txt" path="licence.txt"/></language>
<language code="0x140C"><eula type="txt" path="licence.txt"/></language>
<language code="0x141A"><eula type="txt" path="licence.txt"/></language>
<language code="0x143B"><eula type="txt" path="licence.txt"/></language>
<language code="0x1801"><eula type="txt" path="licence.txt"/></language>
<language code="0x1809"><eula type="txt" path="licence.txt"/></language>
<language code="0x180A"><eula type="txt" path="licence.txt"/></language>
<language code="0x180C"><eula type="txt" path="licence.txt"/></language>
<language code="0x181A"><eula type="txt" path="licence.txt"/></language>
<language code="0x183B"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C01"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C09"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C0A"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C0C"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C1A"><eula type="txt" path="licence.txt"/></language>
<language code="0x1C3B"><eula type="txt" path="licence.txt"/></language>
<language code="0x2001"><eula type="txt" path="licence.txt"/></language>
<language code="0x2009"><eula type="txt" path="licence.txt"/></language>
<language code="0x200A"><eula type="txt" path="licence.txt"/></language>
<language code="0x200C"><eula type="txt" path="licence.txt"/></language>
<language code="0x201A"><eula type="txt" path="licence.txt"/></language>
<language code="0x203B"><eula type="txt" path="licence.txt"/></language>
<language code="0x2401"><eula type="txt" path="licence.txt"/></language>
<language code="0x2409"><eula type="txt" path="licence.txt"/></language>
<language code="0x240A"><eula type="txt" path="licence.txt"/></language>
<language code="0x240C"><eula type="txt" path="licence.txt"/></language>
<language code="0x243B"><eula type="txt" path="licence.txt"/></language>
<language code="0x2801"><eula type="txt" path="licence.txt"/></language>
<language code="0x2809"><eula type="txt" path="licence.txt"/></language>
<language code="0x280A"><eula type="txt" path="licence.txt"/></language>
<language code="0x280C"><eula type="txt" path="licence.txt"/></language>
<language code="0x2C01"><eula type="txt" path="licence.txt"/></language>
<language code="0x2C09"><eula type="txt" path="licence.txt"/></language>
<language code="0x2C0A"><eula type="txt" path="licence.txt"/></language>
<language code="0x2C0C"><eula type="txt" path="licence.txt"/></language>
<language code="0x3001"><eula type="txt" path="licence.txt"/></language>
<language code="0x3009"><eula type="txt" path="licence.txt"/></language>
<language code="0x300A"><eula type="txt" path="licence.txt"/></language>
<language code="0x300C"><eula type="txt" path="licence.txt"/></language>
<language code="0x3401"><eula type="txt" path="licence.txt"/></language>
<language code="0x3409"><eula type="txt" path="licence.txt"/></language>
<language code="0x340A"><eula type="txt" path="licence.txt"/></language>
<language code="0x340C"><eula type="txt" path="licence.txt"/></language>
<language code="0x3801"><eula type="txt" path="licence.txt"/></language>
<language code="0x3809"><eula type="txt" path="licence.txt"/></language>
<language code="0x380A"><eula type="txt" path="licence.txt"/></language>
<language code="0x380C"><eula type="txt" path="licence.txt"/></language>
<language code="0x3C01"><eula type="txt" path="licence.txt"/></language>
<language code="0x3C09"><eula type="txt" path="licence.txt"/></language>
<language code="0x3C0A"><eula type="txt" path="licence.txt"/></language>
<language code="0x3C0C"><eula type="txt" path="licence.txt"/></language>
<language code="0x4001"><eula type="txt" path="licence.txt"/></language>
<language code="0x4009"><eula type="txt" path="licence.txt"/></language>
<language code="0x400A"><eula type="txt" path="licence.txt"/></language>
<language code="0x4409"><eula type="txt" path="licence.txt"/></language>
<language code="0x440A"><eula type="txt" path="licence.txt"/></language>
<language code="0x4809"><eula type="txt" path="licence.txt"/></language>
<language code="0x480A"><eula type="txt" path="licence.txt"/></language>
<language code="0x4C0A"><eula type="txt" path="licence.txt"/></language>
<language code="0x500A"><eula type="txt" path="licence.txt"/></language>
<language code="0x540A"><eula type="txt" path="licence.txt"/></language>
<language code="0x580A"><eula type="txt" path="licence.txt"/></language>
<language code="0x781A"><eula type="txt" path="licence.txt"/></language>
<language code="0x7C04"><eula type="txt" path="licence.txt"/></language>
<language code="0x7C1A"><eula type="txt" path="licence.txt"/></language>
<language code="0xE40C"><eula type="txt" path="licence.txt"/></language>
</dpinst>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,502 @@
; FTDIBUS.INF
;
; Copyright <20> 2000-2017 Future Technology Devices International Limited
;
; USB serial converter driver installation file for Windows 7, Windows 8, Windows 8.1, Windows 10,
; Server 2008 R2, Server 2012 R2 and Server 2016.
;
;
; IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT
; SOFTWARE: This licence agreement (Licence) is a legal agreement between you (Licensee or
; you) and Future Technology Devices International Limited of 2 Seaward Place, Centurion Business
; Park, Glasgow G41 1HH, Scotland (UK Company Number SC136640) (Licensor or we) for use of
; driver software provided by the Licensor(Software).
;
; BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE
; WHICH WILL BIND YOU. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE
; UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST DISCONTINUE
; INSTALLATION OF THE SOFTWARE NOW.
;
; 1. GRANT AND SCOPE OF LICENCE
;
; 1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby
; grants to you a non-exclusive, non-transferable, royalty free licence to use the Software on
; the terms of this Licence.
;
; 1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was
; manufactured for, and sold by, the Licensor or a member of the Licensor's group of
; companies. It does not include any counterfeit or fake products.
;
; 1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a
; "Device") then you may install the Software onto that device. If you are a seller or distributor
; of a Device then you may distribute the Software with the Device. If you are a user of a
; Device then you may install the Software on the Device, or onto a computer system in order
; to use the Device.
;
; 1.4 In each of those cases you may:
;
; 1.4.1 install and use the Software for your purposes only; and
;
; 1.4.2 only use the Software in conjunction with products based on and/or incorporating a
; Genuine FTDI Component.
;
; 1.5 The Software will not function properly on or with a component that is not a Genuine FTDI
; Component. Use of the Software as a driver for, or installation of the Software onto, a
; component that is not a Genuine FTDI Component, including without limitation counterfeit
; components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT. It is the Licensee's
; responsibility to make sure that all chips it installs the Software on, or uses the Software as a
; driver for, are Genuine FTDI Components. If in doubt then contact the Licensor.
;
; 2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of
; the product manufacturer to maintain any changes and subsequent WHQL re-certification as
; a result of making these changes.
;
; 3. LICENSEE'S UNDERTAKINGS
;
; 3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake:
;
; 3.1.1 not to copy the Software, except where such copying is incidental to normal use of
; the Software or where it is necessary for the purpose of back-up or operational
; security;
;
; 3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the
; Software or any part of it;
;
; 3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software
; nor permit the Software or any part of it to be combined with, or become
; incorporated in, any other programs;
;
; 3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based
; on the whole or any part of the Software;
;
; 3.1.5 to keep all copies of the Software secure;
;
; 3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the
; Software in any form; and
;
; 3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in
; part (including, but not limited to, program listings, object and source program
; listings, object code and source code) to any person.
;
; 4. INTELLECTUAL PROPERTY RIGHTS
;
; 4.1 You acknowledge that all intellectual property rights in the Software throughout the world
; belong to the Licensor, that rights in the Software are licensed (not sold) to you, and that you
; have no rights in, or to, the Software other than the right to use them in accordance with the
; terms of this Licence.
;
; 5. WARRANTY
;
; 5.1 To the maximum extent permitted by applicable law, the software is provided "as is".
;
; 5.2 All implied warranties, implied conditions and/or implied licences are excluded from this
; Licence, including but not limited to implied warranties of quality and/or fitness for purpose (in
; all cases) to the fullest extent permitted by law.
;
; 5.3 You acknowledge that the Software has not been developed to meet your individual
; requirements and that the Software may not be uninterrupted or free of bugs or errors.
;
; 6. LICENSOR'S LIABILITY
;
; 6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable
; for any:
;
; 6.1.1 special loss or damage;
;
; 6.1.2 incidental loss or damage;
;
; 6.1.3 indirect or consequential loss or damage:
;
; 6.1.4 loss of income;
;
; 6.1.5 loss of business;
;
; 6.1.6 loss of profits;
;
; 6.1.7 loss of revenue;
;
; 6.1.8 loss of contracts;
;
; 6.1.9 business interruption;
;
; 6.1.10 loss of the use of money or anticipated savings;
;
; 6.1.11 loss of information;
;
; 6.1.12 loss of opportunity;
;
; 6.1.13 loss of goodwill or reputation; and/or
;
; 6.1.14 loss of, damage to or corruption of data;
;
; (in each case) of any kind howsoever arising and whether caused by delict (including
; negligence), breach of contract or otherwise.
;
; 6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars.
;
; 6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud.
;
; 7. TERMINATION
;
; 7.1 The Licensor may terminate this Licence immediately if:
;
; 7.1.1 you fail to comply with any of the terms and conditions of the Licence; or
;
; 7.1.2 you commence or participate in any legal proceedings against the Licensor.
;
; 7.2 Upon termination:
;
; 7.2.1 all rights granted to you under this Licence shall cease;
;
; 7.2.2 you must cease all activities authorised by this Licence; and
;
; 7.2.3 you must immediately delete or remove the Software from all computer equipment
; in your possession and immediately destroy all copies of the Software then in your
; possession, custody or control.
;
; 8. TRANSFER OF RIGHTS AND OBLIGATIONS
;
; 8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your
; rights or obligations arising under it.
;
; 8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence,
; or any of his rights or obligations arising under it, at any time during the term of the Licence.
;
; 9. WAIVER
;
; 9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance
; of any of your obligations under this Licence, or if the Licensor fails to exercise any of the
; rights or remedies to which he is entitled under this Licence, this shall not constitute a waiver
; of such rights or remedies and shall not relieve you from compliance with such obligations.
;
; 9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent
; default.
;
; 9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is
; expressly stated to be a waiver and is communicated to you in writing.
;
; 10. SEVERABILITY
;
; If any of the terms of this Licence are determined by any competent authority to be invalid,
; unlawful or unenforceable to any extent, such term, condition or provision will to that extent be
; severed from the remaining terms, conditions and provisions which will continue to be valid to
; the fullest extent permitted by law.
;
; 11. ENTIRE AGREEMENT
;
; 11.1 This Licence constitutes the whole agreement between us and supersedes any previous
; arrangement, understanding or agreement between us, relating to the licensing of the
; Software.
;
; 11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement,
; representation, warranty or understanding other than those expressly set out in this Licence.
; Each party agrees that it will have no remedy in respect of any statement, representation,
; warranty or understanding that is not expressly set out in this Licence. Each party agrees that
; its only remedy in respect of those representations, statements, assurances and warranties
; that are set out in this Licence will be for breach of contract in accordance with the terms of
; this Licence.
;
; 11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have
; for fraud.
;
; 12. MISCELLANEOUS
;
; 12.1 This Licence does not create a partnership or joint venture between the parties to it, nor
; authorise a party to act as agent for the other.
;
; 12.2 This Licence does not create any legal rights enforceable by any third party.
;
; 12.3 This Licence may only be varied by express written legal agreement between the parties.
;
; 13. LAW AND JURISDICTION
;
; This Licence, its subject matter or its formation (including non-contractual disputes or claims)
; shall be governed by and construed in accordance with Scots law and submitted to the non-
; exclusive jurisdiction of the Scottish courts.
;
[Version]
Signature="$Windows NT$"
DriverPackageType=PlugAndPlay
DriverPackageDisplayName=%DESC%
Class=USB
ClassGUID={36fc9e60-c465-11cf-8056-444553540000}
Provider=%FTDI%
CatalogFile=ftdibus.cat
DriverVer=08/16/2017,2.12.28
[SourceDisksNames]
1=%DriversDisk%,,,
[SourceDisksFiles]
ftdibus.sys = 1,i386
ftbusui.dll = 1,i386
ftd2xx.dll = 1,i386
FTLang.Dll = 1,i386
[SourceDisksFiles.amd64]
ftdibus.sys = 1,amd64
ftbusui.dll = 1,amd64
ftd2xx64.dll = 1,amd64
ftd2xx.dll = 1,i386
FTLang.Dll = 1,amd64
[DestinationDirs]
FtdiBus.NT.Copy = 10,system32\drivers
FtdiBus.NT.Copy2 = 10,system32
FtdiBus.NTamd64.Copy = 10,system32\drivers
FtdiBus.NTamd64.Copy2 = 10,system32
FtdiBus.NTamd64.Copy3 = 10,syswow64
[Manufacturer]
%Ftdi%=FtdiHw,NTamd64
[FtdiHw]
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6001
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_00
%USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6010&MI_01
%USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_00
%USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_01
%USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_02
%USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6011&MI_03
%USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6014
%USB\VID_0403&PID_6015.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6015
%USB\VID_0403&PID_601B&REV_1400.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&REV_1400
%USB\VID_0403&PID_601B&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_00
%USB\VID_0403&PID_601B&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_01
%USB\VID_0403&PID_601B&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_02
%USB\VID_0403&PID_601B&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601B&MI_03
%USB\VID_0403&PID_601C&REV_1700.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&REV_1700
%USB\VID_0403&PID_601C&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_00
%USB\VID_0403&PID_601C&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_01
%USB\VID_0403&PID_601C&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_02
%USB\VID_0403&PID_601C&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_601C&MI_03
%USB\VID_0403&PID_0FEC.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0FEC
%USB\VID_0403&PID_6031&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6031&MI_00
%USB\VID_0403&PID_6031&REV_2400.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6031&REV_2400
%USB\VID_0403&PID_6032&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6032&MI_00
%USB\VID_0403&PID_6032&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6032&MI_01
%USB\VID_0403&PID_6033&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_00
%USB\VID_0403&PID_6033&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_01
%USB\VID_0403&PID_6033&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6033&MI_02
%USB\VID_0403&PID_6034&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6034&MI_00
%USB\VID_0403&PID_6034&REV_2500.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6034&REV_2500
%USB\VID_0403&PID_6035&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6035&MI_00
%USB\VID_0403&PID_6035&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6035&MI_01
%USB\VID_0403&PID_6036&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_00
%USB\VID_0403&PID_6036&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_01
%USB\VID_0403&PID_6036&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6036&MI_02
%USB\VID_0403&PID_6037&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_00
%USB\VID_0403&PID_6037&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_01
%USB\VID_0403&PID_6037&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_02
%USB\VID_0403&PID_6037&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6037&MI_03
%USB\VID_0403&PID_6038&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_00
%USB\VID_0403&PID_6038&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_01
%USB\VID_0403&PID_6038&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_02
%USB\VID_0403&PID_6038&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_03
%USB\VID_0403&PID_6038&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6038&MI_04
%USB\VID_0403&PID_6039&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_00
%USB\VID_0403&PID_6039&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_01
%USB\VID_0403&PID_6039&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_02
%USB\VID_0403&PID_6039&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_03
%USB\VID_0403&PID_6039&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_04
%USB\VID_0403&PID_6039&MI_05.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_6039&MI_05
%USB\VID_0403&PID_603A&MI_00.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_00
%USB\VID_0403&PID_603A&MI_01.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_01
%USB\VID_0403&PID_603A&MI_02.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_02
%USB\VID_0403&PID_603A&MI_03.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_03
%USB\VID_0403&PID_603A&MI_04.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_04
%USB\VID_0403&PID_603A&MI_05.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_05
%USB\VID_0403&PID_603A&MI_06.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603A&MI_06
%USB\VID_0403&PID_603E.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_603E
%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_0000
[FtdiHw.NTamd64]
%USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6001
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_00
%USB\VID_0403&PID_6010&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6010&MI_01
%USB\VID_0403&PID_6011&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_00
%USB\VID_0403&PID_6011&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_01
%USB\VID_0403&PID_6011&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_02
%USB\VID_0403&PID_6011&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6011&MI_03
%USB\VID_0403&PID_6014.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6014
%USB\VID_0403&PID_6015.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6015
%USB\VID_0403&PID_601B&REV_1400.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&REV_1400
%USB\VID_0403&PID_601B&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_00
%USB\VID_0403&PID_601B&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_01
%USB\VID_0403&PID_601B&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_02
%USB\VID_0403&PID_601B&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601B&MI_03
%USB\VID_0403&PID_601C&REV_1700.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&REV_1700
%USB\VID_0403&PID_601C&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_00
%USB\VID_0403&PID_601C&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_01
%USB\VID_0403&PID_601C&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_02
%USB\VID_0403&PID_601C&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_601C&MI_03
%USB\VID_0403&PID_0FEC.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_0FEC
%USB\VID_0403&PID_6031&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6031&MI_00
%USB\VID_0403&PID_6031&REV_2400.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6031&REV_2400
%USB\VID_0403&PID_6032&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6032&MI_00
%USB\VID_0403&PID_6032&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6032&MI_01
%USB\VID_0403&PID_6033&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_00
%USB\VID_0403&PID_6033&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_01
%USB\VID_0403&PID_6033&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6033&MI_02
%USB\VID_0403&PID_6034&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6034&MI_00
%USB\VID_0403&PID_6034&REV_2500.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&REV_2500
%USB\VID_0403&PID_6035&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&MI_00
%USB\VID_0403&PID_6035&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6035&MI_01
%USB\VID_0403&PID_6036&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_00
%USB\VID_0403&PID_6036&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_01
%USB\VID_0403&PID_6036&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6036&MI_02
%USB\VID_0403&PID_6037&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_00
%USB\VID_0403&PID_6037&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_01
%USB\VID_0403&PID_6037&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_02
%USB\VID_0403&PID_6037&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6037&MI_03
%USB\VID_0403&PID_6038&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_00
%USB\VID_0403&PID_6038&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_01
%USB\VID_0403&PID_6038&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_02
%USB\VID_0403&PID_6038&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_03
%USB\VID_0403&PID_6038&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6038&MI_04
%USB\VID_0403&PID_6039&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_00
%USB\VID_0403&PID_6039&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_01
%USB\VID_0403&PID_6039&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_02
%USB\VID_0403&PID_6039&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_03
%USB\VID_0403&PID_6039&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_04
%USB\VID_0403&PID_6039&MI_05.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_6039&MI_05
%USB\VID_0403&PID_603A&MI_00.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_00
%USB\VID_0403&PID_603A&MI_01.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_01
%USB\VID_0403&PID_603A&MI_02.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_02
%USB\VID_0403&PID_603A&MI_03.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_03
%USB\VID_0403&PID_603A&MI_04.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_04
%USB\VID_0403&PID_603A&MI_05.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_05
%USB\VID_0403&PID_603A&MI_06.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603A&MI_06
%USB\VID_0403&PID_603E.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_603E
%USB\VID_0403&PID_0000.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_0000
[ControlFlags]
ExcludeFromSelect=*
[FtdiBus.NT]
CopyFiles=FtdiBus.NT.Copy,FtdiBus.NT.Copy2
AddReg=FtdiBus.NT.AddReg
[FtdiBus.NTamd64]
CopyFiles=FtdiBus.NTamd64.Copy,FtdiBus.NTamd64.Copy2,FtdiBus.NTamd64.Copy3
AddReg=FtdiBus.NT.AddReg
[FtdiBus.NT.Services]
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService, FtdiBus.NT.EventLog_Inst
[FtdiBus.NTamd64.Services]
AddService = FTDIBUS, 0x00000002, FtdiBus.NT.AddService, FtdiBus.NT.EventLog_Inst
[FtdiBus.NT.AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\ftdibus.sys
LoadOrderGroup = Base
[FtdiBus.NT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,ftdibus.sys
HKR,,EnumPropPages32,,"ftbusui.dll,FTBUSUIPropPageProvider"
[FtdiBus.NT.EventLog_Inst]
AddReg = FtdiBus.NT.EventLog_Inst.AddReg
[FtdiBus.NT.EventLog_Inst.AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\ftdibus.sys"
HKR,,TypesSupported,0x00010001,7
[FtdiBus.NT.HW]
AddReg=FtdiBus.NT.HW.AddReg
[FtdiBus.NTamd64.HW]
AddReg=FtdiBus.NT.HW.AddReg
[FtdiBus.NT.HW.AddReg]
;HKR,,"ConfigData",0x00010001,0x00000016
[FtdiBus.NT.Copy]
ftdibus.sys
[FtdiBus.NT.Copy2]
ftbusui.dll
ftd2xx.dll
FTLang.dll
[FtdiBus.NTamd64.Copy]
ftdibus.sys
[FtdiBus.NTamd64.Copy2]
ftbusui.dll
ftd2xx.dll,ftd2xx64.dll
FTLang.dll
[FtdiBus.NTamd64.Copy3]
ftd2xx.dll
[Strings]
Ftdi="FTDI"
DESC="CDM Driver Package - Bus/D2XX Driver"
DriversDisk="FTDI USB Drivers Disk"
USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6010&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6010&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6011&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6011&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6011&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6011&MI_03.DeviceDesc="USB Serial Converter D"
USB\VID_0403&PID_6014.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6015.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_601B&REV_1400.DeviceDesc="FT4222 Mode 3 Device"
USB\VID_0403&PID_601B&MI_00.DeviceDesc="FT4222 Interface A"
USB\VID_0403&PID_601B&MI_01.DeviceDesc="FT4222 Interface B"
USB\VID_0403&PID_601B&MI_02.DeviceDesc="FT4222 Interface C"
USB\VID_0403&PID_601B&MI_03.DeviceDesc="FT4222 Interface D"
USB\VID_0403&PID_601C&REV_1700.DeviceDesc="FT4222H Mode 3 Device"
USB\VID_0403&PID_601C&MI_00.DeviceDesc="FT4222H Interface A"
USB\VID_0403&PID_601C&MI_01.DeviceDesc="FT4222H Interface B"
USB\VID_0403&PID_601C&MI_02.DeviceDesc="FT4222H Interface C"
USB\VID_0403&PID_601C&MI_03.DeviceDesc="FT4222H Interface D"
USB\VID_0403&PID_0FEC.DeviceDesc="UMFT4222PROG"
USB\VID_0403&PID_6031&MI_00.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6031&REV_2400.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6032&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6032&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6033&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6033&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6033&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6034&MI_00.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6034&REV_2500.DeviceDesc="USB Serial Converter"
USB\VID_0403&PID_6035&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6035&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6036&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6036&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6036&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6037&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6037&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6037&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6037&MI_03.DeviceDesc="USB Serial Converter D"
USB\VID_0403&PID_6038&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6038&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6038&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6038&MI_03.DeviceDesc="USB Serial Converter D"
USB\VID_0403&PID_6038&MI_04.DeviceDesc="USB Serial Converter E"
USB\VID_0403&PID_6039&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_6039&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_6039&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_6039&MI_03.DeviceDesc="USB Serial Converter D"
USB\VID_0403&PID_6039&MI_04.DeviceDesc="USB Serial Converter E"
USB\VID_0403&PID_6039&MI_05.DeviceDesc="USB Serial Converter F"
USB\VID_0403&PID_603A&MI_00.DeviceDesc="USB Serial Converter A"
USB\VID_0403&PID_603A&MI_01.DeviceDesc="USB Serial Converter B"
USB\VID_0403&PID_603A&MI_02.DeviceDesc="USB Serial Converter C"
USB\VID_0403&PID_603A&MI_03.DeviceDesc="USB Serial Converter D"
USB\VID_0403&PID_603A&MI_04.DeviceDesc="USB Serial Converter E"
USB\VID_0403&PID_603A&MI_05.DeviceDesc="USB Serial Converter F"
USB\VID_0403&PID_603A&MI_06.DeviceDesc="USB Serial Converter G"
USB\VID_0403&PID_603E.DeviceDesc="UMFTPD3A Programming Board"
USB\VID_0403&PID_0000.DeviceDesc="USB Serial Converter"
SvcDesc="USB Serial Converter Driver"
ClassName="USB"

View File

@@ -0,0 +1,392 @@
; FTDIPORT.INF
;
; Copyright <20> 2000-2017 Future Technology Devices International Limited
;
; USB serial port driver installation file for Windows 7, Windows 8, Windows 8.1, Windows 10,
; Server 2008 R2, Server 2012 R2 and Server 2016.
;
;
; IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT
; SOFTWARE: This licence agreement (Licence) is a legal agreement between you (Licensee or
; you) and Future Technology Devices International Limited of 2 Seaward Place, Centurion Business
; Park, Glasgow G41 1HH, Scotland (UK Company Number SC136640) (Licensor or we) for use of
; driver software provided by the Licensor(Software).
;
; BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE
; WHICH WILL BIND YOU. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE
; UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST DISCONTINUE
; INSTALLATION OF THE SOFTWARE NOW.
;
; 1. GRANT AND SCOPE OF LICENCE
;
; 1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby
; grants to you a non-exclusive, non-transferable, royalty free licence to use the Software on
; the terms of this Licence.
;
; 1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was
; manufactured for, and sold by, the Licensor or a member of the Licensor's group of
; companies. It does not include any counterfeit or fake products.
;
; 1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a
; "Device") then you may install the Software onto that device. If you are a seller or distributor
; of a Device then you may distribute the Software with the Device. If you are a user of a
; Device then you may install the Software on the Device, or onto a computer system in order
; to use the Device.
;
; 1.4 In each of those cases you may:
;
; 1.4.1 install and use the Software for your purposes only; and
;
; 1.4.2 only use the Software in conjunction with products based on and/or incorporating a
; Genuine FTDI Component.
;
; 1.5 The Software will not function properly on or with a component that is not a Genuine FTDI
; Component. Use of the Software as a driver for, or installation of the Software onto, a
; component that is not a Genuine FTDI Component, including without limitation counterfeit
; components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT. It is the Licensee's
; responsibility to make sure that all chips it installs the Software on, or uses the Software as a
; driver for, are Genuine FTDI Components. If in doubt then contact the Licensor.
;
; 2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of
; the product manufacturer to maintain any changes and subsequent WHQL re-certification as
; a result of making these changes.
;
; 3. LICENSEE'S UNDERTAKINGS
;
; 3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake:
;
; 3.1.1 not to copy the Software, except where such copying is incidental to normal use of
; the Software or where it is necessary for the purpose of back-up or operational
; security;
;
; 3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the
; Software or any part of it;
;
; 3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software
; nor permit the Software or any part of it to be combined with, or become
; incorporated in, any other programs;
;
; 3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based
; on the whole or any part of the Software;
;
; 3.1.5 to keep all copies of the Software secure;
;
; 3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the
; Software in any form; and
;
; 3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in
; part (including, but not limited to, program listings, object and source program
; listings, object code and source code) to any person.
;
; 4. INTELLECTUAL PROPERTY RIGHTS
;
; 4.1 You acknowledge that all intellectual property rights in the Software throughout the world
; belong to the Licensor, that rights in the Software are licensed (not sold) to you, and that you
; have no rights in, or to, the Software other than the right to use them in accordance with the
; terms of this Licence.
;
; 5. WARRANTY
;
; 5.1 To the maximum extent permitted by applicable law, the software is provided "as is".
;
; 5.2 All implied warranties, implied conditions and/or implied licences are excluded from this
; Licence, including but not limited to implied warranties of quality and/or fitness for purpose (in
; all cases) to the fullest extent permitted by law.
;
; 5.3 You acknowledge that the Software has not been developed to meet your individual
; requirements and that the Software may not be uninterrupted or free of bugs or errors.
;
; 6. LICENSOR'S LIABILITY
;
; 6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable
; for any:
;
; 6.1.1 special loss or damage;
;
; 6.1.2 incidental loss or damage;
;
; 6.1.3 indirect or consequential loss or damage:
;
; 6.1.4 loss of income;
;
; 6.1.5 loss of business;
;
; 6.1.6 loss of profits;
;
; 6.1.7 loss of revenue;
;
; 6.1.8 loss of contracts;
;
; 6.1.9 business interruption;
;
; 6.1.10 loss of the use of money or anticipated savings;
;
; 6.1.11 loss of information;
;
; 6.1.12 loss of opportunity;
;
; 6.1.13 loss of goodwill or reputation; and/or
;
; 6.1.14 loss of, damage to or corruption of data;
;
; (in each case) of any kind howsoever arising and whether caused by delict (including
; negligence), breach of contract or otherwise.
;
; 6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars.
;
; 6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud.
;
; 7. TERMINATION
;
; 7.1 The Licensor may terminate this Licence immediately if:
;
; 7.1.1 you fail to comply with any of the terms and conditions of the Licence; or
;
; 7.1.2 you commence or participate in any legal proceedings against the Licensor.
;
; 7.2 Upon termination:
;
; 7.2.1 all rights granted to you under this Licence shall cease;
;
; 7.2.2 you must cease all activities authorised by this Licence; and
;
; 7.2.3 you must immediately delete or remove the Software from all computer equipment
; in your possession and immediately destroy all copies of the Software then in your
; possession, custody or control.
;
; 8. TRANSFER OF RIGHTS AND OBLIGATIONS
;
; 8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your
; rights or obligations arising under it.
;
; 8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence,
; or any of his rights or obligations arising under it, at any time during the term of the Licence.
;
; 9. WAIVER
;
; 9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance
; of any of your obligations under this Licence, or if the Licensor fails to exercise any of the
; rights or remedies to which he is entitled under this Licence, this shall not constitute a waiver
; of such rights or remedies and shall not relieve you from compliance with such obligations.
;
; 9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent
; default.
;
; 9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is
; expressly stated to be a waiver and is communicated to you in writing.
;
; 10. SEVERABILITY
;
; If any of the terms of this Licence are determined by any competent authority to be invalid,
; unlawful or unenforceable to any extent, such term, condition or provision will to that extent be
; severed from the remaining terms, conditions and provisions which will continue to be valid to
; the fullest extent permitted by law.
;
; 11. ENTIRE AGREEMENT
;
; 11.1 This Licence constitutes the whole agreement between us and supersedes any previous
; arrangement, understanding or agreement between us, relating to the licensing of the
; Software.
;
; 11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement,
; representation, warranty or understanding other than those expressly set out in this Licence.
; Each party agrees that it will have no remedy in respect of any statement, representation,
; warranty or understanding that is not expressly set out in this Licence. Each party agrees that
; its only remedy in respect of those representations, statements, assurances and warranties
; that are set out in this Licence will be for breach of contract in accordance with the terms of
; this Licence.
;
; 11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have
; for fraud.
;
; 12. MISCELLANEOUS
;
; 12.1 This Licence does not create a partnership or joint venture between the parties to it, nor
; authorise a party to act as agent for the other.
;
; 12.2 This Licence does not create any legal rights enforceable by any third party.
;
; 12.3 This Licence may only be varied by express written legal agreement between the parties.
;
; 13. LAW AND JURISDICTION
;
; This Licence, its subject matter or its formation (including non-contractual disputes or claims)
; shall be governed by and construed in accordance with Scots law and submitted to the non-
; exclusive jurisdiction of the Scottish courts.
;
[Version]
Signature="$Windows NT$"
DriverPackageType=PlugAndPlay
DriverPackageDisplayName=%DESC%
Class=Ports
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
Provider=%FTDI%
CatalogFile=ftdiport.cat
DriverVer=08/16/2017,2.12.28
[SourceDisksNames]
1=%DriversDisk%,,,
[SourceDisksFiles]
ftser2k.sys=1,i386
ftserui2.dll=1,i386
ftcserco.dll = 1,i386
[SourceDisksFiles.amd64]
ftser2k.sys=1,amd64
ftserui2.dll=1,amd64
ftcserco.dll = 1,amd64
[DestinationDirs]
FtdiPort.NT.Copy=10,system32\drivers
FtdiPort.NT.CopyUI=10,system32
FtdiPort.NT.CopyCoInst=10,system32
[ControlFlags]
ExcludeFromSelect=*
[Manufacturer]
%FTDI%=FtdiHw,NTamd64
[FtdiHw]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6010
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6014
%VID_0403&PID_6015.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6015
%VID_0403&PID_6031.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6031
%VID_0403&PID_6032.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6032
%VID_0403&PID_6033.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6033
%VID_0403&PID_6034.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6034
%VID_0403&PID_6035.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6035
%VID_0403&PID_6036.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6036
%VID_0403&PID_6037.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6037
%VID_0403&PID_6038.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6038
%VID_0403&PID_6039.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6039
%VID_0403&PID_603A.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_603A
%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_0000
[FtdiHw.NTamd64]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6010
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6011
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6014
%VID_0403&PID_6015.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6015
%VID_0403&PID_6031.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6031
%VID_0403&PID_6032.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6032
%VID_0403&PID_6033.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6033
%VID_0403&PID_6034.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6034
%VID_0403&PID_6035.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6035
%VID_0403&PID_6036.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6036
%VID_0403&PID_6037.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6037
%VID_0403&PID_6038.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6038
%VID_0403&PID_6039.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6039
%VID_0403&PID_603A.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_603A
%VID_0403&PID_0000.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_0000
[FtdiPort.NT.AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\ftser2k.sys
LoadOrderGroup = Base
; -------------- Serenum Driver install section
[SerEnum_AddService]
DisplayName = %SerEnum.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\serenum.sys
LoadOrderGroup = PNP Filter
[FtdiPort.NT.AddReg]
HKR,,EnumPropPages32,,"ftserui2.dll,SerialPortPropPageProvider"
[FtdiPort.NT.Copy]
ftser2k.sys
[FtdiPort.NT.CopyUI]
ftserui2.dll
[FtdiPort.NT.CopyCoInst]
ftcserco.dll
[FtdiPort.NT]
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
AddReg=FtdiPort.NT.AddReg
[FtdiPort.NTamd64]
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
AddReg=FtdiPort.NT.AddReg
[FtdiPort.NT.HW]
AddReg=FtdiPort.NT.HW.AddReg
[FtdiPort.NTamd64.HW]
AddReg=FtdiPort.NT.HW.AddReg
[FtdiPort.NT.Services]
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
AddService = Serenum,,SerEnum_AddService
DelService = FTSERIAL
[FtdiPort.NTamd64.Services]
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
AddService = Serenum,,SerEnum_AddService
DelService = FTSERIAL
[FtdiPort.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00
HKR,,"MinReadTimeout",0x00010001,0
HKR,,"MinWriteTimeout",0x00010001,0
HKR,,"LatencyTimer",0x00010001,16
[FtdiPort.NT.CoInstallers]
AddReg=FtdiPort.NT.CoInstallers.AddReg
CopyFiles=FtdiPort.NT.CopyCoInst
[FtdiPort.NTamd64.CoInstallers]
AddReg=FtdiPort.NT.CoInstallers.AddReg
CopyFiles=FtdiPort.NT.CopyCoInst
[FtdiPort.NT.CoInstallers.AddReg]
HKR,,CoInstallers32,0x00010000,"ftcserco.Dll,FTCSERCoInstaller"
;---------------------------------------------------------------;
[Strings]
FTDI="FTDI"
DESC="CDM Driver Package - VCP Driver"
DriversDisk="FTDI USB Drivers Disk"
PortsClassName = "Ports (COM & LPT)"
VID_0403&PID_6001.DeviceDesc="USB Serial Port"
VID_0403&PID_6010.DeviceDesc="USB Serial Port"
VID_0403&PID_6011.DeviceDesc="USB Serial Port"
VID_0403&PID_6014.DeviceDesc="USB Serial Port"
VID_0403&PID_6015.DeviceDesc="USB Serial Port"
VID_0403&PID_6031.DeviceDesc="USB Serial Port"
VID_0403&PID_6032.DeviceDesc="USB Serial Port"
VID_0403&PID_6033.DeviceDesc="USB Serial Port"
VID_0403&PID_6034.DeviceDesc="USB Serial Port"
VID_0403&PID_6035.DeviceDesc="USB Serial Port"
VID_0403&PID_6036.DeviceDesc="USB Serial Port"
VID_0403&PID_6037.DeviceDesc="USB Serial Port"
VID_0403&PID_6038.DeviceDesc="USB Serial Port"
VID_0403&PID_6039.DeviceDesc="USB Serial Port"
VID_0403&PID_603A.DeviceDesc="USB Serial Port"
VID_0403&PID_0000.DeviceDesc="USB Serial Port"
SvcDesc="USB Serial Port Driver"
SerEnum.SvcDesc="Serenum Filter Driver"

View File

@@ -0,0 +1,144 @@
IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT SOFTWARE:
This licence agreement (Licence) is a legal agreement between you (Licensee or you) and Future Technology Devices International Limited of 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, Scotland (UK Company Number SC136640) (Licensor or we) for use of driver software provided by the Licensor(Software).
BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE WHICH WILL BIND YOU. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST DISCONTINUE INSTALLATION OF THE SOFTWARE NOW.
1. GRANT AND SCOPE OF LICENCE
1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby grants to you a non-exclusive, non-transferable, royalty free licence to use the Software on the terms of this Licence.
1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was manufactured for, and sold by, the Licensor or a member of the Licensor's group of companies. It does not include any counterfeit or fake products.
1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a "Device") then you may install the Software onto that device. If you are a seller or distributor of a Device then you may distribute the Software with the Device. If you are a user of a Device then you may install the Software on the Device, or onto a computer system in order to use the Device.
1.4 In each of those cases you may:
1.4.1 install and use the Software for your purposes only; and
1.4.2 only use the Software in conjunction with products based on and/or incorporating a Genuine FTDI Component.
1.5 The Software will not function properly on or with a component that is not a Genuine FTDI Component. Use of the Software as a driver for, or installation of the Software onto, a component that is not a Genuine FTDI Component, including without limitation counterfeit components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT. It is the Licensee's responsibility to make sure that all chips it installs the Software on, or uses the Software as a driver for, are Genuine FTDI Components. If in doubt then contact the Licensor.
2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of the product manufacturer to maintain any changes and subsequent WHQL re-certification as a result of making these changes.
3. LICENSEE'S UNDERTAKINGS
3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake:
3.1.1 not to copy the Software, except where such copying is incidental to normal use of the Software or where it is necessary for the purpose of back-up or operational security;
3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the Software or any part of it;
3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software nor permit the Software or any part of it to be combined with, or become incorporated in, any other programs;
3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based on the whole or any part of the Software;
3.1.5 to keep all copies of the Software secure;
3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the Software in any form; and
3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in part (including, but not limited to, program listings, object and source program listings, object code and source code) to any person.
4. INTELLECTUAL PROPERTY RIGHTS
4.1 You acknowledge that all intellectual property rights in the Software throughout the world belong to the Licensor, that rights in the Software are licensed (not sold) to you, and that you have no rights in, or to, the Software other than the right to use them in accordance with the terms of this Licence.
5. WARRANTY
5.1 To the maximum extent permitted by applicable law, the software is provided "as is".
5.2 All implied warranties, implied conditions and/or implied licences are excluded from this Licence, including but not limited to implied warranties of quality and/or fitness for purpose (in all cases) to the fullest extent permitted by law.
5.3 You acknowledge that the Software has not been developed to meet your individual requirements and that the Software may not be uninterrupted or free of bugs or errors.
6. LICENSOR'S LIABILITY
6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable for any:
6.1.1 special loss or damage;
6.1.2 incidental loss or damage;
6.1.3 indirect or consequential loss or damage:
6.1.4 loss of income;
6.1.5 loss of business;
6.1.6 loss of profits;
6.1.7 loss of revenue;
6.1.8 loss of contracts;
6.1.9 business interruption;
6.1.10 loss of the use of money or anticipated savings;
6.1.11 loss of information;
6.1.12 loss of opportunity;
6.1.13 loss of goodwill or reputation; and/or
6.1.14 loss of, damage to or corruption of data;
(in each case) of any kind howsoever arising and whether caused by delict (including negligence), breach of contract or otherwise.
6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars.
6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud.
7. TERMINATION
7.1 The Licensor may terminate this Licence immediately if:
7.1.1 you fail to comply with any of the terms and conditions of the Licence; or
7.1.2 you commence or participate in any legal proceedings against the Licensor.
7.2 Upon termination:
7.2.1 all rights granted to you under this Licence shall cease;
7.2.2 you must cease all activities authorised by this Licence; and
7.2.3 you must immediately delete or remove the Software from all computer equipment in your possession and immediately destroy all copies of the Software then in your possession, custody or control.
8. TRANSFER OF RIGHTS AND OBLIGATIONS
8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your rights or obligations arising under it.
8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence, or any of his rights or obligations arising under it, at any time during the term of the Licence.
9. WAIVER
9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance of any of your obligations under this Licence, or if the Licensor fails to exercise any of the rights or remedies to which he is entitled under this Licence, this shall not constitute a waiver of such rights or remedies and shall not relieve you from compliance with such obligations.
9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent default.
9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is expressly stated to be a waiver and is communicated to you in writing.
10. SEVERABILITY
If any of the terms of this Licence are determined by any competent authority to be invalid, unlawful or unenforceable to any extent, such term, condition or provision will to that extent be severed from the remaining terms, conditions and provisions which will continue to be valid to the fullest extent permitted by law.
11. ENTIRE AGREEMENT
11.1 This Licence constitutes the whole agreement between us and supersedes any previous arrangement, understanding or agreement between us, relating to the licensing of the Software.
11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement, representation, warranty or understanding other than those expressly set out in this Licence. Each party agrees that it will have no remedy in respect of any statement, representation, warranty or understanding that is not expressly set out in this Licence. Each party agrees that its only remedy in respect of those representations, statements, assurances and warranties that are set out in this Licence will be for breach of contract in accordance with the terms of this Licence.
11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have for fraud.
12. MISCELLANEOUS
12.1 This Licence does not create a partnership or joint venture between the parties to it, nor authorise a party to act as agent for the other.
12.2 This Licence does not create any legal rights enforceable by any third party.
12.3 This Licence may only be varied by express written legal agreement between the parties.
13. LAW AND JURISDICTION
This Licence, its subject matter or its formation (including non-contractual disputes or claims) shall be governed by and construed in accordance with Scots law and submitted to the non-exclusive jurisdiction of the Scottish courts.

Some files were not shown because too many files have changed in this diff Show More