Open oblomingo opened 2 months ago
Just tried installing 2.6.12 on my Arm64 dev box, looks good. Here are driver installation logs for comparison:
>>> [Device Install (DiInstallDevice) - ROOT\NET\0001]
>>> Section start 2024/09/05 13:39:29.625
cmd: C:\Windows\System32\MsiExec.exe -Embedding A1249009EF83D9DC3F20002BEA3EFBB4 E Global\MSI0000
ndv: Flags: 0x00000000
ndv: Search options: 0x00000002
ndv: Searching default INF path
dvi: {Build Driver List} 13:39:29.627
dvi: Searching for hardware ID(s):
dvi: ovpn-dco
dvi: Created Driver Node:
dvi: HardwareID - ovpn-dco
dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_51acf7251abebc91\ovpn-dco.inf
dvi: DevDesc - OpenVPN Data Channel Offload
dvi: Section - ovpn-dco_Device.NT
dvi: Rank - 0x00ff0000
dvi: Signer Score - WHQL
dvi: DrvDate - 10/08/2023
dvi: Version - 1.0.0.0
dvi: Created Driver Node:
dvi: HardwareID - ovpn-dco
dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf
dvi: DevDesc - OpenVPN Data Channel Offload
dvi: Section - ovpn-dco_Device.NT
dvi: Rank - 0x00ff0000
dvi: Signer Score - WHQL
dvi: DrvDate - 05/22/2024
dvi: Version - 1.2.1.0
dvi: {Build Driver List - exit(0x00000000)} 13:39:29.687
dvi: {DIF_SELECTBESTCOMPATDRV} 13:39:29.687
dvi: Default installer: Enter 13:39:29.687
dvi: {Select Best Driver}
dvi: Class GUID of device changed to: {4d36e972-e325-11ce-bfc1-08002be10318}.
dvi: Selected Driver:
dvi: Description - OpenVPN Data Channel Offload
dvi: InfFile - c:\windows\system32\driverstore\filerepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf
dvi: Section - ovpn-dco_Device
dvi: {Select Best Driver - exit(0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 13:39:29.687
ndv: Driver package 'C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf' is already imported.
sto: {Setup Import Driver Package: C:\WINDOWS\INF\oem58.inf} 13:39:29.687
sto: Driver package already imported as 'oem58.inf'.
sto: {Setup Import Driver Package - exit (0x00000000)} 13:39:29.687
dvi: Searching for hardware ID(s):
dvi: ovpn-dco
dvi: Class GUID of device changed to: {4d36e972-e325-11ce-bfc1-08002be10318}.
ump: {Plug and Play Service: Device Install for ROOT\NET\0001}
dvi: Install flags: 0x00010011
dvi: {Core Device Install} 13:39:29.703
dvi: {Configure Device - ROOT\NET\0001} 13:39:29.719
dvi: Device Status: 0x01802001
dvi: Parent Device: HTREE\ROOT\0
sto: {Configure Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf} 13:39:29.719
sto: Source Filter = ovpn-dco
inf: Config Options = IsolationCompat
inf: Class GUID = {4d36e972-e325-11ce-bfc1-08002be10318}
inf: Class Options = Configurable
inf: {Configure Driver: OpenVPN Data Channel Offload}
inf: Section Name = ovpn-dco_Device.NT
inf: {Add Service: ovpn-dco}
inf: Flags = 0x2
inf: Start Type = 3
inf: Service Type = 1
inf: Error Control = 1
inf: Image Path = \SystemRoot\System32\drivers\ovpn-dco.sys
inf: Display Name = ovpn-dco
inf: Updated service 'ovpn-dco'.
inf: {Add Service: exit(0x00000000)}
inf: Hardware Id = ovpn-dco
inf: {Configure Driver Configuration: ovpn-dco_Device.NT}
inf: Service Name = ovpn-dco
inf: Config Flags = 0x00000000
inf: {Configure Driver Configuration: exit(0x00000000)}
inf: {Configure Driver: exit(0x00000000)}
flq: {FILE_QUEUE_COMMIT} 13:39:29.735
flq: Copying 'C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.sys' to 'C:\WINDOWS\System32\drivers\ovpn-dco.sys'.
idb: Last driver package 'ovpn-dco.inf_arm64_51acf7251abebc91' to copy 'C:\WINDOWS\System32\drivers\ovpn-dco.sys' needs reconfiguration.
flq: {FILE_QUEUE_COMMIT - exit(0x00000000)} 13:39:29.751
dvi: Existing files modified, may need to restart related services.
sto: {Configure Driver Package: exit(0x00000bc3)} 13:39:29.751
dvi: Restart required for any devices using this driver.
dvi: Install Device: Configuring device. 13:39:29.751
dvi: Configuration: oem58.inf:ovpn-dco,ovpn-dco_Device
dvi: Install Device: Configuring device completed. 13:39:29.758
dvi: Device Status: 0x01802001
dvi: {Restarting Devices} 13:39:29.758
dvi: Start: ROOT\NET\0001
! dvi: Device 'ROOT\NET\0001' pending start: Device has problem: 0x38 (CM_PROB_NEED_CLASS_CONFIG), problem status: 0x00000000.
dvi: {Restarting Devices exit} 13:39:29.783
dvi: {Configure Device - exit(0x00000000)} 13:39:29.783
dvi: {Core Device Install - exit(0x00000000)} 13:39:29.783
dvi: Waiting for device post-install to complete. 13:39:29.788
dvi: Device post-install completed. 13:39:29.923
dvi: Device Status: 0x0180200b
ump: {Plug and Play Service: Device Install exit(00000000)}
<<< Section end 2024/09/05 13:39:29.949
<<< [Exit status: SUCCESS]
>>> [Device Install (DiInstallDevice) - ROOT\NET\0002]
>>> Section start 2024/09/05 13:42:51.215
cmd: "C:\Program Files\OpenVPN\bin\tapctl.exe" create --hwid ovpn-dco --name "OpenVPN Data Channel Offload Custom Name"
ndv: Flags: 0x00000000
ndv: Search options: 0x00000002
ndv: Searching default INF path
dvi: {Build Driver List} 13:42:51.231
dvi: Searching for hardware ID(s):
dvi: ovpn-dco
dvi: Created Driver Node:
dvi: HardwareID - ovpn-dco
dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_51acf7251abebc91\ovpn-dco.inf
dvi: DevDesc - OpenVPN Data Channel Offload
dvi: Section - ovpn-dco_Device.NT
dvi: Rank - 0x00ff0000
dvi: Signer Score - WHQL
dvi: DrvDate - 10/08/2023
dvi: Version - 1.0.0.0
dvi: Created Driver Node:
dvi: HardwareID - ovpn-dco
dvi: InfName - C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf
dvi: DevDesc - OpenVPN Data Channel Offload
dvi: Section - ovpn-dco_Device.NT
dvi: Rank - 0x00ff0000
dvi: Signer Score - WHQL
dvi: DrvDate - 05/22/2024
dvi: Version - 1.2.1.0
dvi: {Build Driver List - exit(0x00000000)} 13:42:51.533
dvi: {DIF_SELECTBESTCOMPATDRV} 13:42:51.533
dvi: Default installer: Enter 13:42:51.549
dvi: {Select Best Driver}
dvi: Class GUID of device changed to: {4d36e972-e325-11ce-bfc1-08002be10318}.
dvi: Selected Driver:
dvi: Description - OpenVPN Data Channel Offload
dvi: InfFile - c:\windows\system32\driverstore\filerepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf
dvi: Section - ovpn-dco_Device
dvi: {Select Best Driver - exit(0x00000000)}
dvi: Default installer: Exit
dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 13:42:51.596
ndv: Driver package 'C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf' is already imported.
sto: {Setup Import Driver Package: C:\WINDOWS\INF\oem58.inf} 13:42:51.612
sto: Driver package already imported as 'oem58.inf'.
sto: {Setup Import Driver Package - exit (0x00000000)} 13:42:51.629
dvi: Searching for hardware ID(s):
dvi: ovpn-dco
dvi: Class GUID of device changed to: {4d36e972-e325-11ce-bfc1-08002be10318}.
ump: {Plug and Play Service: Device Install for ROOT\NET\0002}
dvi: Install flags: 0x00010001
dvi: {Core Device Install} 13:42:51.706
dvi: {Configure Device - ROOT\NET\0002} 13:42:51.706
dvi: Device Status: 0x01802001
dvi: Parent Device: HTREE\ROOT\0
sto: {Configure Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.inf} 13:42:51.706
sto: Source Filter = ovpn-dco
inf: Config Options = IsolationCompat
inf: Class GUID = {4d36e972-e325-11ce-bfc1-08002be10318}
inf: Class Options = Configurable
inf: {Configure Driver: OpenVPN Data Channel Offload}
inf: Section Name = ovpn-dco_Device.NT
inf: {Add Service: ovpn-dco}
inf: Flags = 0x2
inf: Start Type = 3
inf: Service Type = 1
inf: Error Control = 1
inf: Image Path = \SystemRoot\System32\drivers\ovpn-dco.sys
inf: Display Name = ovpn-dco
inf: Updated service 'ovpn-dco'.
inf: {Add Service: exit(0x00000000)}
inf: Hardware Id = ovpn-dco
inf: {Configure Driver Configuration: ovpn-dco_Device.NT}
inf: Service Name = ovpn-dco
inf: Config Flags = 0x00000000
inf: {Configure Driver Configuration: exit(0x00000000)}
inf: {Configure Driver: exit(0x00000000)}
flq: {FILE_QUEUE_COMMIT} 13:42:51.722
flq: Copying 'C:\WINDOWS\System32\DriverStore\FileRepository\ovpn-dco.inf_arm64_17aed440edc0a3bb\ovpn-dco.sys' to 'C:\WINDOWS\System32\drivers\ovpn-dco.sys'.
cpy: Existing file 'C:\WINDOWS\System32\drivers\ovpn-dco.sys' remains unchanged.
flq: {FILE_QUEUE_COMMIT - exit(0x00000000)} 13:42:51.738
sto: {Configure Driver Package: exit(0x00000000)} 13:42:51.738
dvi: Install Device: Configuring device. 13:42:51.738
dvi: Configuration: oem58.inf:ovpn-dco,ovpn-dco_Device
dvi: Install Device: Configuring device completed. 13:42:51.738
dvi: Device Status: 0x01802001
dvi: Install Device: Starting device 'ROOT\NET\0002'. 13:42:51.738
dvi: Install Device: Starting device completed. 13:42:51.738
! dvi: Device pending start: Device has problem: 0x38 (CM_PROB_NEED_CLASS_CONFIG), problem status: 0x00000000.
dvi: {Configure Device - exit(0x00000000)} 13:42:51.750
dvi: {Core Device Install - exit(0x00000000)} 13:42:51.753
dvi: Waiting for device post-install to complete. 13:42:51.757
dvi: Device post-install completed. 13:42:51.877
dvi: Device Status: 0x0180200b
ump: {Plug and Play Service: Device Install exit(00000000)}
<<< Section end 2024/09/05 13:42:51.912
<<< [Exit status: SUCCESS]
As you may see, your driver installation log looks somewhat different. You are installing from C:\Program Files\Common Files\ovpn-dco\Win11\ovpn-dco.inf
, but you are supposed to install from the driver store, to where custom action copies the driver:
/* copy driver to driver store */
if (!SetupCopyOEMInfW(pathToInf, NULL, SPOST_PATH, 0, NULL, 0, NULL, NULL)) {
msg(M_NONFATAL | M_ERRNO, "%s: SetupCopyOEMInf(\"%ls\") failed", __FUNCTION__, pathToInf);
return;
}
Does it work if user installs OpenVPN 2.6.12 ?
Hey, We have found that some users can't use OpenVPN protocol, cause installer can't install a Arm64 network adapter. The installer has OpenVPN DCO merged module taken from this Github page and a custom action:
C:\Program Files\xxx\Resources\arm64\tapctl.exe" create --hwid ovpn-dco --name "OpenVPN Data Channel Offload Custom Name"
It seems the installer can successfully install a driver. Please take a look at a log part from setupapi.dev.log:but the second part doesn't work:
The user tried to run a command line to get information about the driver
Get-WmiObject Win32_PnPSignedDriver | Where-Object { $_.DeviceName -like "*OpenVPN Data Channel Offload*" } | Format-List *
and got nothing. Why may it happen? Why does the log state that the driver installed successfully, but it is impossible to find the driver and create a network adapter?