purdueduke
I am trying to build a custom tuntap driver. I followed the instructions and used buildtap.py to create a new 9.0.21 IPv6 supported driver. I then signed it. It was build on Windows 2012 and I am trying to install it on a different Windows 2012 driver.
Trying to install, results in the below:
c:\tapinstall.exe install driver\OemVista.inf tavvetun
Device node created. Install is complete when drivers are installed...
Updating drivers for tavvetun from C:\Users\gary\tuntap\driver\OemVista.inf.
tapinstall.exe failed.
setupapi.dev look like the following:
>>> [Device Install (UpdateDriverForPlugAndPlayDevices) - tavvetun]
>>> Section start 2015/04/19 17:32:34.968
cmd: bin\tapinstall.exe install driver\OemVista.inf tavvetun
dvi: {Build Driver List} 17:32:34.968
dvi: Searching for hardware ID(s):
dvi: tavvetun
cpy: Policy is set to make all digital signatures equal.
dvi: {Build Driver List - exit(0x00000000)} 17:32:34.968
dvi: {DIF_SELECTBESTCOMPATDRV} 17:32:34.968
dvi: Using exported function 'NetClassInstaller' in module 'C:\Windows\system32\NetCfgx.dll'.
dvi: Class installer == NetCfgx.dll,NetClassInstaller
dvi: Using exported function 'WlanDeviceClassCoInstaller' in module 'C:\Windows\system32\wlaninst.dll'.
dvi: CoInstaller 1 == wlaninst.dll,WlanDeviceClassCoInstaller
dvi: Using exported function 'WwanDeviceClassCoInstaller' in module 'C:\Windows\system32\wwaninst.dll'.
dvi: CoInstaller 2 == wwaninst.dll,WwanDeviceClassCoInstaller
dvi: CoInstaller 1: Enter 17:32:34.983
dvi: CoInstaller 1: Exit
dvi: CoInstaller 2: Enter 17:32:34.983
dvi: CoInstaller 2: Exit
dvi: Class installer: Enter 17:32:34.983
dvi: Class installer: Exit
dvi: Default installer: Enter 17:32:34.983
dvi: {Select Best Driver}
! dvi: Selecting driver failed(0xe0000228)
dvi: {Select Best Driver - exit(0xe0000228)}
! dvi: Default installer: failed!
! dvi: Error 0xe0000228: There are no compatible drivers for this device.
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:32:34.983
dvi: {DIF_DESTROYPRIVATEDATA} 17:32:34.983
dvi: CoInstaller 1: Enter 17:32:34.983
dvi: CoInstaller 1: Exit
dvi: CoInstaller 2: Enter 17:32:34.983
dvi: CoInstaller 2: Exit
dvi: Class installer: Enter 17:32:34.983
dvi: Class installer: Exit
dvi: {DIF_DESTROYPRIVATEDATA - exit(0x00000000)} 17:32:34.983
OemVista.inf looks like:
; ****************************************************************************
; * 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 = tavvetun.cat
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider = %Provider%
Class = Net
; This version number should match the version
; number given in SOURCES.
DriverVer=11/05/2014,9.00.00.21
[Strings]
DeviceDescription = "Tavve GVI Adapter V9"
Provider = "Tavve"
;----------------------------------------------------------------
; Manufacturer + Product Section (Done)
;----------------------------------------------------------------
[Manufacturer]
%Provider% = tavvetun
[tavvetun]
%DeviceDescription% = tavvetun.ndi, root\tavvetun ; Root enumerated
%DeviceDescription% = tavvetun.ndi, tavvetun ; 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 ------------
[tavvetun.ndi]
CopyFiles = tavvetun.driver, tavvetun.files
AddReg = tavvetun.reg
AddReg = tavvetun.params.reg
Characteristics =
*IfType = 0x6 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x0 ; NdisMedium802_3
*PhysicalMediaType = 14 ; NdisPhysicalMedium802_3
[tavvetun.ndi.Services]
AddService = tavvetun, 2, tavvetun.service
[tavvetun.reg]
HKR, Ndi, Service, 0, "tavvetun"
HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
HKR, , Manufacturer, 0, "%Provider%"
HKR, , ProductName, 0, "%DeviceDescription%"
[tavvetun.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 ---------------
[tavvetun.service]
DisplayName = %DeviceDescription%
ServiceType = 1
StartType = 3
ErrorControl = 1
LoadOrderGroup = NDIS
ServiceBinary = %12%\tavvetun.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%, tavvetun.sys
; SourceDisksFiles
; filename_on_source = diskID[, [subdir][, size]]
; e100bex.sys = 1,, ; on distribution disk 1
[SourceDisksFiles]
tavvetun.sys = 1
[DestinationDirs]
tavvetun.files = 11
tavvetun.driver = 12
[tavvetun.files]
; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
[tavvetun.driver]
tavvetun.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK
;---------------------------------------------------------------
; End
;---------------------------------------------------------------
The one section is OemVista.inf which looks a little odd to me is the Characteristics line.
Any help or debugging ideas would be greatly appreciated!