Windows 7 tap support improved
This commit is contained in:
parent
df27003998
commit
45e5ec76dd
6 changed files with 211 additions and 5 deletions
191
deploy/data/windows/tap/x86_64_windows_7/OemVista.inf
Normal file
191
deploy/data/windows/tap/x86_64_windows_7/OemVista.inf
Normal file
|
@ -0,0 +1,191 @@
|
|||
; ****************************************************************************
|
||||
; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. *
|
||||
; * This program is free software; you can redistribute it and/or modify *
|
||||
; * it under the terms of the GNU General Public License version 2 *
|
||||
; * as published by the Free Software Foundation. *
|
||||
; ****************************************************************************
|
||||
|
||||
; SYNTAX CHECKER
|
||||
; cd \WINDDK\3790\tools\chkinf
|
||||
; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf
|
||||
; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm
|
||||
|
||||
; INSTALL/REMOVE DRIVER
|
||||
; tapinstall install OemVista.inf tapoas
|
||||
; tapinstall update OemVista.inf tapoas
|
||||
; tapinstall remove tapoas
|
||||
|
||||
;*********************************************************
|
||||
; Note to Developers:
|
||||
;
|
||||
; If you are bundling the TAP-Windows driver with your app,
|
||||
; you should try to rename it in such a way that it will
|
||||
; not collide with other instances of TAP-Windows defined
|
||||
; by other apps. Multiple versions of the TAP-Windows
|
||||
; driver, each installed by different apps, can coexist
|
||||
; on the same machine if you follow these guidelines.
|
||||
; NOTE: these instructions assume you are editing the
|
||||
; generated OemWin2k.inf file, not the source
|
||||
; OemWin2k.inf.in file which is preprocessed by winconfig
|
||||
; and uses macro definitions from settings.in.
|
||||
;
|
||||
; (1) Rename all tapXXXX instances in this file to
|
||||
; something different (use at least 5 characters
|
||||
; for this name!)
|
||||
; (2) Change the "!define TAP" definition in openvpn.nsi
|
||||
; to match what you changed tapXXXX to.
|
||||
; (3) Change TARGETNAME in SOURCES to match what you
|
||||
; changed tapXXXX to.
|
||||
; (4) Change TAP_COMPONENT_ID in common.h to match what
|
||||
; you changed tapXXXX to.
|
||||
; (5) Change SZDEPENDENCIES in service.h to match what
|
||||
; you changed tapXXXX to.
|
||||
; (6) Change DeviceDescription and Provider strings.
|
||||
; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you
|
||||
; set DeviceDescription to.
|
||||
;
|
||||
;*********************************************************
|
||||
|
||||
[Version]
|
||||
Signature = "$Windows NT$"
|
||||
CatalogFile = tap0901.cat
|
||||
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
|
||||
Provider = %Provider%
|
||||
Class = Net
|
||||
|
||||
; This version number should match the version
|
||||
; number given in SOURCES.
|
||||
DriverVer=04/21/2016,9.00.00.21
|
||||
|
||||
[Strings]
|
||||
DeviceDescription = "TAP-Windows Adapter V9"
|
||||
Provider = "TAP-Windows Provider V9"
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; Manufacturer + Product Section (Done)
|
||||
;----------------------------------------------------------------
|
||||
[Manufacturer]
|
||||
%Provider% = tap0901, NTamd64
|
||||
|
||||
[tap0901.NTamd64]
|
||||
%DeviceDescription% = tap0901.ndi, root\tap0901 ; Root enumerated
|
||||
%DeviceDescription% = tap0901.ndi, tap0901 ; Legacy
|
||||
|
||||
;---------------------------------------------------------------
|
||||
; Driver Section (Done)
|
||||
;---------------------------------------------------------------
|
||||
|
||||
;----------------- Characteristics ------------
|
||||
; NCF_PHYSICAL = 0x04
|
||||
; NCF_VIRTUAL = 0x01
|
||||
; NCF_SOFTWARE_ENUMERATED = 0x02
|
||||
; NCF_HIDDEN = 0x08
|
||||
; NCF_NO_SERVICE = 0x10
|
||||
; NCF_HAS_UI = 0x80
|
||||
;----------------- Characteristics ------------
|
||||
|
||||
[tap0901.ndi]
|
||||
CopyFiles = tap0901.driver, tap0901.files
|
||||
AddReg = tap0901.reg
|
||||
AddReg = tap0901.params.reg
|
||||
Characteristics =
|
||||
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
|
||||
*MediaType = 0x0 ; NdisMedium802_3
|
||||
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
|
||||
|
||||
[tap0901.ndi.Services]
|
||||
AddService = tap0901, 2, tap0901.service
|
||||
|
||||
[tap0901.reg]
|
||||
HKR, Ndi, Service, 0, "tap0901"
|
||||
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
|
||||
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
|
||||
HKR, , Manufacturer, 0, "%Provider%"
|
||||
HKR, , ProductName, 0, "%DeviceDescription%"
|
||||
|
||||
[tap0901.params.reg]
|
||||
HKR, Ndi\params\MTU, ParamDesc, 0, "MTU"
|
||||
HKR, Ndi\params\MTU, Type, 0, "int"
|
||||
HKR, Ndi\params\MTU, Default, 0, "1500"
|
||||
HKR, Ndi\params\MTU, Optional, 0, "0"
|
||||
HKR, Ndi\params\MTU, Min, 0, "100"
|
||||
HKR, Ndi\params\MTU, Max, 0, "1500"
|
||||
HKR, Ndi\params\MTU, Step, 0, "1"
|
||||
HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status"
|
||||
HKR, Ndi\params\MediaStatus, Type, 0, "enum"
|
||||
HKR, Ndi\params\MediaStatus, Default, 0, "0"
|
||||
HKR, Ndi\params\MediaStatus, Optional, 0, "0"
|
||||
HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled"
|
||||
HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected"
|
||||
HKR, Ndi\params\MAC, ParamDesc, 0, "MAC Address"
|
||||
HKR, Ndi\params\MAC, Type, 0, "edit"
|
||||
HKR, Ndi\params\MAC, Optional, 0, "1"
|
||||
HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access"
|
||||
HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum"
|
||||
HKR, Ndi\params\AllowNonAdmin, Default, 0, "1"
|
||||
HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0"
|
||||
HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed"
|
||||
HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed"
|
||||
|
||||
;----------------------------------------------------------------
|
||||
; Service Section
|
||||
;----------------------------------------------------------------
|
||||
|
||||
;---------- Service Type -------------
|
||||
; SERVICE_KERNEL_DRIVER = 0x01
|
||||
; SERVICE_WIN32_OWN_PROCESS = 0x10
|
||||
;---------- Service Type -------------
|
||||
|
||||
;---------- Start Mode ---------------
|
||||
; SERVICE_BOOT_START = 0x0
|
||||
; SERVICE_SYSTEM_START = 0x1
|
||||
; SERVICE_AUTO_START = 0x2
|
||||
; SERVICE_DEMAND_START = 0x3
|
||||
; SERVICE_DISABLED = 0x4
|
||||
;---------- Start Mode ---------------
|
||||
|
||||
[tap0901.service]
|
||||
DisplayName = %DeviceDescription%
|
||||
ServiceType = 1
|
||||
StartType = 3
|
||||
ErrorControl = 1
|
||||
LoadOrderGroup = NDIS
|
||||
ServiceBinary = %12%\tap0901.sys
|
||||
|
||||
;-----------------------------------------------------------------
|
||||
; File Installation
|
||||
;-----------------------------------------------------------------
|
||||
|
||||
;----------------- Copy Flags ------------
|
||||
; COPYFLG_NOSKIP = 0x02
|
||||
; COPYFLG_NOVERSIONCHECK = 0x04
|
||||
;----------------- Copy Flags ------------
|
||||
|
||||
; SourceDisksNames
|
||||
; diskid = description[, [tagfile] [, <unused>, subdir]]
|
||||
; 1 = "Intel Driver Disk 1",e100bex.sys,,
|
||||
|
||||
[SourceDisksNames]
|
||||
1 = %DeviceDescription%, tap0901.sys
|
||||
|
||||
; SourceDisksFiles
|
||||
; filename_on_source = diskID[, [subdir][, size]]
|
||||
; e100bex.sys = 1,, ; on distribution disk 1
|
||||
|
||||
[SourceDisksFiles]
|
||||
tap0901.sys = 1
|
||||
|
||||
[DestinationDirs]
|
||||
tap0901.files = 11
|
||||
tap0901.driver = 12
|
||||
|
||||
[tap0901.files]
|
||||
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
|
||||
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
|
||||
|
||||
[tap0901.driver]
|
||||
tap0901.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
|
||||
|
||||
;---------------------------------------------------------------
|
||||
; End
|
||||
;---------------------------------------------------------------
|
BIN
deploy/data/windows/tap/x86_64_windows_7/OpenVPN.cer
Normal file
BIN
deploy/data/windows/tap/x86_64_windows_7/OpenVPN.cer
Normal file
Binary file not shown.
BIN
deploy/data/windows/tap/x86_64_windows_7/tap0901.cat
Normal file
BIN
deploy/data/windows/tap/x86_64_windows_7/tap0901.cat
Normal file
Binary file not shown.
BIN
deploy/data/windows/tap/x86_64_windows_7/tap0901.sys
Normal file
BIN
deploy/data/windows/tap/x86_64_windows_7/tap0901.sys
Normal file
Binary file not shown.
BIN
deploy/data/windows/tap/x86_64_windows_7/tapinstall.exe
Normal file
BIN
deploy/data/windows/tap/x86_64_windows_7/tapinstall.exe
Normal file
Binary file not shown.
|
@ -3,6 +3,7 @@
|
|||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionMatchIterator>
|
||||
#include <QCoreApplication>
|
||||
#include <QOperatingSystemVersion>
|
||||
|
||||
#include "tapcontroller_win.h"
|
||||
|
||||
|
@ -253,7 +254,14 @@ bool TapController::checkOpenVpn()
|
|||
QString TapController::getTapInstallPath()
|
||||
{
|
||||
#ifdef Q_OS_WIN
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "\\tapinstall.exe";
|
||||
|
||||
if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7) {
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "_windows_7\\tapinstall.exe";
|
||||
}
|
||||
else {
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "\\tapinstall.exe";
|
||||
}
|
||||
|
||||
// if (QSysInfo::currentCpuArchitecture() == "i386") {
|
||||
// return qApp->applicationDirPath() + "\\openvpn\\drivers_x32\\tapinstall.exe";
|
||||
// }
|
||||
|
@ -269,16 +277,21 @@ QString TapController::getOpenVpnPath()
|
|||
{
|
||||
#ifdef Q_OS_WIN
|
||||
//return qApp->applicationDirPath() + "\\openvpn\\"+ QSysInfo::currentCpuArchitecture() + "\\openvpn.exe";
|
||||
return qApp->applicationDirPath() + "\\openvpn\\i386\\openvpn.exe";
|
||||
|
||||
//return qApp->applicationDirPath() + "\\openvpn\\bin\\openvpn.exe";
|
||||
return qApp->applicationDirPath() + "\\openvpn\\i386\\openvpn.exe";
|
||||
#endif
|
||||
return "";
|
||||
}
|
||||
|
||||
QString TapController::getTapDriverDir()
|
||||
{
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "\\";
|
||||
if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7) {
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "_windows_7\\";
|
||||
}
|
||||
else {
|
||||
return qApp->applicationDirPath() + "\\tap\\"+ QSysInfo::currentCpuArchitecture() + "\\";
|
||||
}
|
||||
|
||||
|
||||
// if (QSysInfo::currentCpuArchitecture() == "i386") {
|
||||
// return qApp->applicationDirPath() + "\\openvpn\\drivers_x32\\";
|
||||
|
@ -312,7 +325,9 @@ bool TapController::removeDriver(const QString& tapInstanceId)
|
|||
|
||||
bool TapController::setupDriver()
|
||||
{
|
||||
//setupDriverCertificate();
|
||||
if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7) {
|
||||
setupDriverCertificate();
|
||||
}
|
||||
|
||||
QStringList tapList = getTapList();
|
||||
for (QString tap : tapList) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue