"Driver list already built" error message

179 views Asked by At

While trying to install a network driver on win server 2008, i received the following msg box:

{Unable to find any drivers for this device}

In addition, this was setupapi.app.log output:

>>>  [Build Driver List - unknown device]
>>>  Section start 2014/11/12 14:59:09.946
      cmd: C:\windows\Explorer.EXE
!    dvi: Driver list already built
<<<  Section end 2014/11/12 14:59:09.946
<<<  [Exit status: SUCCESS]

This driver was previously installed on win server 2003.

Here is the INF file:

; -- NETSF.INF --
;
; Passthru driver INF file - this is the INF for the service (protocol)
; part.
;
; Copyright (c) 1993-2001, Microsoft Corporation
;
; ----------------------------------------------------------------------
; Notes:
; 0. The term "filter" is used in this INF to refer to an NDIS IM driver that
;    implements a 1:1 relationship between upper and lower bindings.
;
; 1. Items specifically required for a filter have been marked with
;    "!!--Filter Specific--!!" keyword
; 2. In general a filter DOES NOT require a notify object for proper installation.
;    A notify object is only required if one wants to have better control
;    over binding operations or if one wants to receive notifications
;    when other components get installed/removed/bound/unbound.
;    Since Windows 2000 systems do not have support for CopyINF directive,
;    a notify object is required to programmatically copy the miniport INF  
;    file to the system INF directory. Previous versions of this INF file
;    erroneously used to copy the INF files directly by using the CopyFiles 
;    directive.
;    On Windows XP, you can install a filter IM without a notify object.
;    by following the instructions in (4).
;
; 3. If you want to use this INF file with your own IM driver, please
;    make the following modifications:
;    File netsf.inf
;    --------------
;    a. In section [SourceDiskFiles] and [Passthru.Files.Sys]
;       change passthru.sys to the name of your own driver binary.
;    b. In section [Passthru.ndi.AddReg], change values of
;       BindForm and MiniportId to appropriate values.
;    File netsf_m.inf
;    ----------------
;    a. Replace MS_PassthruMP with InfId of your miniport.
;    b. In section [PassthruMP.AddService],
;       change ServiceBinary appropriately.
;    c. In section [PassthruMP.ndi.AddReg],
;       change "Passthru" in the line having "Service"
;       to reflect the appropriate name
;
;
; ----------------------------------------------------------------------

[Version]
Signature  = "$Windows NT$"
Class      = NetService
ClassGUID  = {4D36E974-E325-11CE-BFC1-08002BE10318}
Provider   = %Msft%
DriverVer  = 06/24/1999,5.00.2071.1


[Manufacturer]
%Msft% = MSFT

[ControlFlags]

;=========================================================================
;
;=========================================================================

[MSFT]
%Passthru_Desc% = Passthru.ndi, ms_passthru



[Passthru.ndi]
AddReg          = Passthru.ndi.AddReg, Passthru.AddReg
Characteristics = 0x4410 ;  NCF_FILTER | NCF_NDIS_PROTOCOL !--Filter Specific--!!
CopyFiles       = Passthru.Files.Sys
CopyInf         = netsf_m.inf

[Passthru.ndi.Remove]
DelFiles = Passthru.Files.Sys

[Passthru.ndi.Services]
AddService = Passthru,, Passthru.AddService

[Passthru.AddService]
DisplayName    = %PassthruService_Desc%
ServiceType    = 1 ;SERVICE_KERNEL_DRIVER
StartType      = 3 ;SERVICE_DEMAND_START
ErrorControl   = 1 ;SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\passthru.sys
LoadOrderGroup = PNP_TDI
AddReg         = Passthru.AddService.AddReg


[Passthru.AddService.AddReg]
; ----------------------------------------------------------------------
; Add any miniport-specific parameters here.  These are params that your
; filter device is going to use.
;
;HKR, Parameters, ParameterName,  0x10000, "MultiSz", "Parameter", "Value"
;HKR, Parameters, ParameterName2, 0x10001, 4


; ----------------------------------------------------------------------
; File copy
;
[SourceDisksNames]
1=%DiskDescription%,"",,

[SourceDisksFiles]
passthru.sys=1

[DestinationDirs]
DefaultDestDir = 12
Passthru.Files.Sys   = 12   ; %windir%\System32\drivers

[Passthru.Files.Sys]
passthru.sys,,,2

; ----------------------------------------------------------------------
; Filter Install
;

[Passthru.ndi.AddReg]
HKR, Ndi, HelpText, , %Passthru_HELP%

; ----------------------------------------------------------------------
; !!--Filter Specific--!!
;
; Note:
; 1. Other components may also have UpperRange/LowerRange but for filters
;    the value of both of them must be noupper/nolower
; 2. The value FilterClass is required.
; 3. The value Service is required
; 4. FilterDeviceInfId is the InfId of the filter device (miniport) that will
;    be installed for each filtered adapter.
;    In this case this is ms_passthrump (refer to netsf_m.inf)
;
HKR, Ndi,            FilterClass,         , failover
HKR, Ndi,            FilterDeviceInfId,   , ms_passthrump
HKR, Ndi,            Service,             , Passthru
HKR, Ndi\Interfaces, UpperRange,          , noupper
HKR, Ndi\Interfaces, LowerRange,          , nolower
HKR, Ndi\Interfaces, FilterMediaTypes,    , "ethernet, tokenring, fddi, wan"

[Passthru.AddReg]
; The following key is Required
; The following key is Passthru specific
HKR, Parameters, Param1, 0, 4

; ----------------------------------------------------------------------
[Strings]
Msft = "Microsoft"
DiskDescription = "Microsoft Passthru Driver Disk"

Passthru_Desc = "Passthru Driver"
Passthru_HELP = "Passthru Driver"
PassthruService_Desc = "Passthru Service"
1

There are 1 answers

0
Eran Reuven On BEST ANSWER

The issue was caused due to a change in the Manufacturer's section.

Since Windows 2003 SP1, driver's INF files must contain the operating system's version (x86 or 64 versions).

INF Models Section

Important Starting with Windows Server 2003 SP1, INF files must decorate models-section-name entries in the INF Manufacturer section, along with the associated INF Models section names, with .ntia64 or .ntamd64 platform extensions to specify non-x86 target operating system versions. These platform extensions are not required in INF files for x86-based target operating system versions or non-PnP driver INF files (such as file system driver INF files for x64-based architectures). Each entry in a Models section is sometimes called a driver node.

Sample INF Models Sections for One or More Target Operating Systems

[Manufacturer]
%Msft%          = Msft, NTx86.6.0, NTamd64.6.0

; ----------------------------------------------------------------------
; Models Section
; ----------------------------------------------------------------------

;For Windows 2000 and Windows XP

[Msft]
%NetVMini.DeviceDesc%   = NetVMini.NTx86.ndi, root\NetVMini ; Root enumerated 
%NetVMini.DeviceDesc%   = NetVMini.NTx86.ndi, {b85b7c50-6a01-11d2-b841-00c04fad5171}\NetVMini ; Toaster Bus enumerated 

;For Windows Vista and later

[Msft.NTx86.6.0]
%NetVMini.DeviceDesc%    = NetVMini.NTx86.ndi, root\NetVMini ; Root enumerated 
%NetVMini.DeviceDesc%    = NetVMini.NTx86.ndi, {b85b7c50-6a01-11d2-b841-00c04fad5171}\NetVMini ; Toaster Bus enumerated 

[Msft.NTamd64.6.0]
%NetVMini.DeviceDesc%    = NetVMini.NTamd64.ndi, root\NetVMini ; Root enumerated 
%NetVMini.DeviceDesc%    = NetVMini.NTamd64.ndi, {b85b7c50-6a01-11d2-b841-00c04fad5171}\Ne