Re: Windows XP vs Vista update unsigned PNP USB driver

Tech-Archive recommends: Speed Up your PC by fixing your registry



Again, I strongly suggest you to update the version of the sys file and the
INF file.
Updating the binary without updating its version is just a *really bad*
practice. How are you planning to distinguish between the old and the new
version of your binary?

I would guess that Vista just thinks the driver has not been updated since
the version info in the INF file has not changed. In particular, the MSDN
documentation at

http://msdn2.microsoft.com/en-us/library/ms791096.aspx

says

By default, if there are more than one equally ranked driver that is a best
match for a device, Setup uses the following additional criteria to select a
driver: the driver date and the driver version, where the date and version
are specified by the INF DriverVer directive that is contained in the driver
INF file; and whether the driver is signed. The following lists how these
criteria are applied to select a driver for a device,

a.. (Beginning with Windows XP SP1) Setup selects the driver that is the
best match for the device (has the lowest rank value). For drivers with
equal rank, Setup selects the driver with the most recent date. For the
drivers with equal rank and date, Setup selects the driver with the highest
version. For drivers with equal rank, date, and version, Setup can select
any driver.
(I assume both your old driver and the new one are unsigned)

Please note the sentence "For drivers with equal rank, date, and version,
Setup can select any driver".

Hope it helps
GV

--
Gianluca Varenni, Windows DDK MVP

CACE Technologies
http://www.cacetech.com



"Natalia DeBow" <natalia.debow@xxxxxxxxxx> wrote in message
news:f8vml3$1u21$2@xxxxxxxxxxxxxxxxxxxxxxx
Hello Gianluca,

[This might be a duplicate of my response to your answer in the
drivers.dtm
group. I actually meant to post this message to the driver group and not
the driver.dtm group. That's why you saw a duplicate of this.]

Thank you so much for your reply!

As of right now, the driver file (sys file) has been updated and its
resource has a more recent file version. However, the INF file for this
driver has not been updated - neither the version or the date field of the
DriverVer have been updated. This does not seem to be a problem on XP, and
only seems to be a problem on Vista.

Below are relevant excerpts from the setupapi logs - one of them contains
the tracing from the
Vista USB driver fresh install followed by the driver update and the other
log file contains same install tried on XP (USB driver fresh install
followed by the driver update).

On the system running Windows XP, the setupapi log shows that the driver
file was indeed copied to the system32\drivers directory, even though
there
was no change in the inf file and the cat file was not found, since the
driver is not signed.

#-124 Doing copy-only install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1".

#E366 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn, user
said
ok). Error 0xe000022f: The third-party INF does not contain digital
signature information.

#-024 Copying file "c:\program files\unisys\virtual machine for clearpath
mcp\devices\uis2490.sys" to "C:\WINDOWS\system32\DRIVERS\uis2490.sys".

#E362 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn). Error
0xe000022f: The third-party INF does not contain digital signature
information.

#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [uis2490_Inst.NTx86.Interfaces] from "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1".
#E362 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn). Error
0xe000022f: The third-party INF does not contain digital signature
information.
#I121 Device install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1" finished
successfully.

On the Vista system, however, the driver store was not updated with the
new
set of driver files:

{DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 11:38:56.508
inf: {SetupCopyOEMInf: c:\program files\unisys\virtual machine for
clearpath
mcp\devices\uis2490.inf} 11:38:56.509
inf: Opened INF: 'c:\program files\unisys\virtual machine for clearpath
mcp\devices\uis2490.inf' ([strings] <src = normal>)
inf: Opened INF: 'c:\program files\unisys\virtual machine for clearpath
mcp\devices\uis2490.inf' ([strings] <src = normal>)
! inf: Package was already in store: skipping Driver Store add
inf: Driver Store location:
C:\Windows\System32\DriverStore\FileRepository\uis2490.inf_0fe469c0\uis2490.inf
inf: Published Inf Path: C:\Windows\INF\oem2.inf
inf: OEM source media location: c:\program files\unisys\virtual machine
for
clearpath mcp\devices\
inf: {SetupCopyOEMInf exit (0x00000000)} 11:38:56.883

I am still quite puzzled as to why the behavior is so radically different
on these two OS platforms.
I am still unclear as to why the system file was updated on XP (even
though
their no change in the INF file), but that same update process did not
work on
Vista. I also noticed the same behavior discrepancy between Windows
Server
2003 Enterprise x64 Edition and Longhorn.

Thanks,
Natalia
"Gianluca Varenni" <gianluca.varenni@xxxxxxxxxxxxxxxx> wrote in message
news:%23bC2yDW1HHA.4344@xxxxxxxxxxxxxxxxxxxxxxx
[This is the answer I gave you on the device.drivers.dtm newsgroup, you
probably missed it]

Uhm... besides the different behavior you are encountering on XP vs.
Vista,
there is something that got me perplexed.
You are saying that

I have an updated sys file that needs to be installed on the target
system, however, there is no change to the inf file.

If you update the sys file, its version should be changed, and you need
to
do the same in the DriverVer of the INF file (both driver version and
date).
So the INF file should change whenever you update the driver.

Are you actually changing the version of the sys file in its resource?
Are
you changing the driver version (DriverVer) in the INF file?

Have a nice day
GV

--
Gianluca Varenni, Windows DDK MVP

CACE Technologies
http://www.cacetech.com





"Natalia DeBow" <natalia.debow@xxxxxxxxxx> wrote in message
news:f8tpt9$q1k$1@xxxxxxxxxxxxxxxxxxxxxxx
Hello,

I am testing installing and updating an unsigned PNP USB driver and when
trying to update the driver, the update logic seems to behave
differently on
Windows XP versus Windows Vista. I am a bit puzzled as to why this is
happening. Here is what I have observed:

Windows Vista:
Fresh install of sys file and inf file presents the user with a Security
Warning (since the driver is not signed) and completes successfully
after
that. The driver store contains the updated set of files - manifest,
inf, pnf and
sys files, the oem*.inf is generated and the sys file is copied into the
system32\drivers folder.

Update of the driver using UpdateDriverForPlugAndPlayDevices API - I
have an
updated sys file (with the new resouce that contains a newer file
version information for the sys file) that needs to be installed on the
target system, however,
there is no change to the INF file.
No security warning was displayed during the driver update. The driver
store was not updated with the latest sys file. From the
setupapi.dev.log:
{SetupCopyOEMInf: c:\program files\unisys\virtual machine for clearpath
mcp\devices\uis2490.inf} 00:08:08.220
inf: Opened INF: 'c:\program files\unisys\virtual machine for
clearpath mcp\devices\uis2490.inf' ([strings] <src = normal>)
inf: Opened INF: 'c:\program files\unisys\virtual machine for
clearpath mcp\devices\uis2490.inf' ([strings] <src = normal>)
! inf: Package was already in store: skipping Driver Store add
inf: Driver Store location:
C:\Windows\System32\DriverStore\FileRepository\uis2490.inf_0fe469c0\uis2490.inf
inf: Published Inf Path: C:\Windows\INF\oem2.inf
inf: OEM source media location: c:\program files\unisys\virtual
machine for clearpath mcp\devices\
inf: {SetupCopyOEMInf exit (0x00000000)} 00:08:08.952

So therefore, the system32\drivers directory did not get updated with
the
newer version of the sys file.

However, when tried the same driver fresh install and driver update on
Windows XP system, the UpdateDriverForPlugAndPlayDevices API copied the
new
version of the sys file to the system 32 directory, even though the INF
file did not change.

#-124 Doing copy-only install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1".
#E366 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn, user
said ok). Error 0xe000022f: The third-party INF does not contain digital
signature information.
#-024 Copying file "c:\program files\unisys\virtual machine for
clearpath mcp\devices\uis2490.sys" to
"C:\WINDOWS\system32\DRIVERS\uis2490.sys".
#E362 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn). Error
0xe000022f: The third-party INF does not contain digital signature
information.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [uis2490_Inst.NTx86.Interfaces] from
"c:\program files\unisys\virtual machine for clearpath
mcp\devices\uis2490.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1".
#E362 An unsigned or incorrectly signed file "c:\program
files\unisys\virtual machine for clearpath mcp\devices\uis2490.inf" for
driver "Unisys USB Image Enabler" will be installed (Policy=Warn). Error
0xe000022f: The third-party INF does not contain digital signature
information.
#I121 Device install of "USB\VID_04FA&PID_2490\5&1F6E9F4&0&1" finished
successfully.

Any clues would be appreciated.

Thanks in advance,
Natalia








.



Relevant Pages

  • Re: assessing winusb potential
    ... I am able to install it on Vista successfully with the following INF. ... This INF is taken from Thesycon (USBIO driver - Third party) and modified. ... refer to the Windows DDK documentation. ...
    (microsoft.public.development.device.drivers)
  • Re: Asus V9250 magic graphics driver - cant see adaptor in Contro
    ... I did what you advised and driver is not installed so i've missed some ... However i relied on inf import to ... adapter is correctly installed (using device manager-install) and compare ... when you install the driver through Device Manager you are ...
    (microsoft.public.windowsxp.embedded)
  • Re: Loading winusb.sys in Window XP
    ... I attached my inf file, ... And when I tried to install the driver, I am getting the error code 37. ... for Driver Service osrusbfx2 using KMDF lib version Major 0x1, ...
    (microsoft.public.development.device.drivers)
  • Re: Windows XP vs Vista update unsigned PNP USB driver
    ... If you update the sys file, its version should be changed, and you need to ... do the same in the DriverVer of the INF file. ... So the INF file should change whenever you update the driver. ... Fresh install of sys file and inf file presents the user with a Security ...
    (microsoft.public.development.device.drivers)
  • Windows XP vs Vista update unsigned PNP USB driver
    ... trying to update the driver, the update logic seems to behave differently on ... Fresh install of sys file and inf file presents the user with a Security ...
    (microsoft.public.development.device.drivers)