PDA

View Full Version : DifxApp responds No matching devices found in INF



mihaimarinescu
06-26-2007, 01:44 AM
Hi all,
I am trying to install a device driver but i cannot succed. Maybe somebody can help here. I can install the same Device Driver with a small tool which uses difxapp.dll without problems and without the device beeing connected to the pc. When i try to install the same driver with Installshield i get an error that the device is not connected. What can i do to solve this ? As far as i can see DifxApp 2.1 is used by the small app that installs fine and the same version is used in Installshield 2008.

My real question would be : Can i preinstall a driver with the built in support of DifxApp in Installshield 2008 ????

Here is the log from installshield :



DIFXAPP: ENTER: InstallDriverPackages()
DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.1.
DIFXAPP: 'CustomActionData' property 'UI Level' is 5.
DIFXAPP: 'CustomActionData' property 'componentId' is {BE6E9F62-7041-4E29-B94F-A14483598259}.
DIFXAPP: 'CustomActionData' property 'componentPath' is C:\Program Files\my\ENV\BZ9999\windrvr6\.
DIFXAPP: 'CustomActionData' property 'flags' is 0x6.
DIFXAPP: 'CustomActionData' property 'installState' is 2.
DIFXAPP: 'CustomActionData' property 'ProductName' is BZ9999
DIFXAPP: 'CustomActionData' property 'ManufacturerName' is my.
DIFXAPP: INFO: opening HKEY_USERS 'S-1-5-21-1409082233-1592454029-839522115-500\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Components\{BE6E9F62-7041-4E29-B94F-A14483598259}' (User's SID: 'S-1-5-21-1409082233-1592454029-839522115-500') ...
DIFXAPP: INFO: ENTER: DriverPackageInstallW
DIFXAPP: INFO: windrvr6.inf: checking signature with catalog 'C:\Program Files\my\ENV\BZ9999\windrvr6\wd900.cat' ...
DIFXAPP: INFO: Driver package 'windrvr6.inf' is Authenticode signed.
DIFXAPP: INFO: Copied 'windrvr6.inf' to driver store...
DIFXAPP: INFO: Copied 'wd900.cat' to driver store...
DIFXAPP: INFO: Commiting queue...
DIFXAPP: INFO: Copied file: 'C:\Program Files\my\ENV\BZ9999\windrvr6\.\windrvr6.sys' -> 'C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0262475C19827\.\windrvr6.sys'.
DIFXAPP: INFO: Installing INF file 'C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0262475C19827\windrvr6.inf' of Type 6.
DIFXAPP: INFO: Looking for Model Section ...
DIFXAPP: INFO: No matching devices found in INF "C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0262475C19827\windrvr6.inf" on the Machine.
DIFXAPP: INFO: No drivers installed. No devices found that match driver(s) contained in 'C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0262475C19827\windrvr6.inf'.
DIFXAPP: SUCCESS:Installation completed with code 0xE000020B.
DIFXAPP: INFO: RETURN: DriverPackageInstallW (0xE000020B)
DIFXAPP: The device(s) for which the driver is being installed has not been plugged into the computer.
DIFXAPP: INFO: ENTER: DriverPackageGetPathW
DIFXAPP: SUCCESS:Found driver store entry.
DIFXAPP: INFO: RETURN: DriverPackageGetPathW (0x7A)
DIFXAPP: INFO: ENTER: DriverPackageGetPathW
DIFXAPP: SUCCESS:Found driver store entry.
DIFXAPP: INFO: RETURN: DriverPackageGetPathW (0x0)
DIFXAPP: A reboot is not needed to install the component '{BE6E9F62-7041-4E29-B94F-A14483598259}'.
DIFXAPP: RETURN: InstallDriverPackages() 0 (0x0)


Here is the log from the tool that can install the driver correctly :



WDREG utility v9.00. Build Mar 27 2007 12:59:39
Installing a signed driver package
LOG Event: 1, ENTER: DriverPackageInstallA
LOG Event: 1, ENTER: DriverPackageInstallW
LOG Event: 1, Looking for Model Section [DeviceList]...
LOG Event: 1, windrvr6.inf: checking signature with catalog 'C:\Documents and Se
ttings\myuser\Desktop\redist\wd900.cat' ...
LOG Event: 1, Driver package 'windrvr6.inf' is Authenticode signed.
LOG Event: 1, Copied 'windrvr6.inf' to driver store...
LOG Event: 1, Copied 'wd900.cat' to driver store...
LOG Event: 1, Commiting queue...
LOG Event: 1, Copied file: 'C:\Documents and Settings\myuser\Desktop\redist\.\wi
ndrvr6.sys' -> 'C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0
262475C19827\.\windrvr6.sys'.
LOG Event: 1, Installing INF file 'C:\WINNT\system32\DRVSTORE\windrvr6_AA4C33D99
890CE2E226979495EB0262475C19827\windrvr6.inf' of Type 6.
LOG Event: 1, Looking for Model Section [DeviceList]...
LOG Event: 1, Installing devices with Id "*WINDRVR6" using INF "C:\WINNT\system3
2\DRVSTORE\windrvr6_AA4C33D99890CE2E226979495EB0262475C19827\windrvr6.inf".
LOG Eventinstall: completed successfully2475C19827\windrvr6.inf".
LOG Eventinstall: completed successfully
´

Mihai

Holger_G
06-26-2007, 02:52 AM
What type of device should be installed? USB, PCI?

Have you tried to install the driver package for the device using DPInst.exe (of the DIFx Tools)? Or is that the small app you mentioned?

Can you post your .inf file? Or the Device List section?
It looks like that your Driver Package has been verified (WHQL or DTM) by Microsoft, right?

mihaimarinescu
06-26-2007, 03:18 AM
Hi,
You are the one i was waiting for :p . I know you know alot about this.
Well this is the story. Jungo (a company we use) delivers the development kit so have created out own driver. Jungo has delivered a small tool called wdreg.exe which is using difxapi (i have the source code for this and they mention it in the manual) and that tools install the driver fine. I need to install two things. I need to install a WinDriver (which jungo makes) and our own INF file which is made with Jungo driver kit so here it is :

1. Windriver (has a cat file so it's signed)
2. our own INF file (not signed) and is a USB driver

I have not tried DPinst.exe because i wanted Installshield to solve all the issue for this. We had a installation sent to customers which included the wdreg.exe from Jungo but it caused problems to support correctly in the installation when a reboot was needed and so on so i was hoping that installshield could solve all of these problems for me since the driver is DifxApp compliant.

I have attached a ZIP file with both INF files.

Best Regards,
Mihai Marinescu

Holger_G
06-26-2007, 07:35 AM
Another question.
Do you have problems installing both Driver Packages? Or only a problem with the windrvr6.inf Driver Package?

mihaimarinescu
06-26-2007, 07:45 AM
Another question.
Do you have problems installing both Driver Packages? Or only a problem with the windrvr6.inf Driver Package?

Both of them.

On the one that i only have the INF file i checked the checkbox that it should install unsigned drivers.

windrvr6.inf file should copy/install the file windrvr6.sys in \System32\driver but doesn't. It does however copy the INF file and SYS DRIVERSTORE but doesn't install them.

If i use wdreg.exe it copies the file to driverstore then installs them so i get the file windrvr6.sys in the DRIVERS folder.

Mihai

Holger_G
06-26-2007, 07:52 AM
Both of them.

On the one that i only have the INF file i checked the checkbox that it should install unsigned drivers.

windrvr6.inf file should copy/install the file windrvr6.sys in \System32\driver but doesn't. It does however copy the INF file and SYS DRIVERSTORE but doesn't install them.

If i use wdreg.exe it copies the file to driverstore then installs them so i get the file windrvr6.sys in the DRIVERS folder.

Mihai
I assume that your wdreg.exe makes a little bit more to push the driver into system32 as well. DPInst.exe (of DIFx) will only push the Driver Package into the driver store, but will not install any driver into system32. Please note, that DIFx does only support installation of PnP Function Drivers or Class Filter Drivers. In your case your inf must match a Class Filter Driver Package. There´s a class driver sample available in the Windows DDK.

The driver package for the USB device should work fine using DIFx. What´s the problem with this driver package? Do you have .log file information?

mihaimarinescu
06-26-2007, 08:55 AM
Yeah it sounds like wdreg.exe does other stuff to install the driver. What i know is that after i installed the drive then i plug in the usb device then windows installs the device automatically because it has the driver already.

What do you refer to when you say Driver Package ? The INF, the SYS file or somthing else ?

Mihai

Holger_G
06-26-2007, 09:15 AM
With using the term Driver Package I mean a single driver package that includes a needed files to install a pnp device or class filter driver (driver.inf, driver.cat, driver.sys, driver.ax,.....).

So it looks like that your USB driver package will only be pre-installed (into the Driver Store of Windows) but the device itself will not be updated or installed by this driver package, right? Even if it has been plugged before?
In this case it looks like that the vendor-defined hardware ID does not match any ID in the inf file. Will it be installed properly if it will be connected afterwards?
I also recommend to test this behaviour on a clean system.

mihaimarinescu
06-27-2007, 01:42 AM
What i have tried has always been on a clean machine. I use VMware machines to test the installation and i revert to a snapshot evrytime i have tested the installation.

I have tried to plug the device afterwards to see if it get's installed correctly but it doesn't. It was an exclamation mark in Device Manager and says that the driver is no good which i translate as the driver is not installed.

I have also tried to have the device connected when i install the Driver Package but even then it still won't install the drive while installing the Driver Package.

It looks like i can't get what i want with Installshield. I don't know what else to try. Any ideas ?

Mihai

Holger_G
06-27-2007, 02:18 AM
Are u able to install the driver package properly for the USB device manually?

mihaimarinescu
06-27-2007, 02:19 AM
Are u able to install the driver package properly for the USB device manually?

I don't know how to install it manually. I have only done it with wdreg.exe which works just fine as said without having to connect the device before to the clean machine.

Mihai

Holger_G
06-27-2007, 02:23 AM
What I mean is, plug in device and when you will be asked for a driver browse manualle to the folder that contains the driver package files for the device. Just to make sure, that the driver package can be installed properly for the USB device.

mihaimarinescu
06-27-2007, 02:25 AM
What I mean is, plug in device and when you will be asked for a driver browse manualle to the folder that contains the driver package files for the device. Just to make sure, that the driver package can be installed properly for the USB device.

I think i tried this but it didn't work. You mean install the Driver Package and then plug in the device and point to the DRIVERSTORAGE in System32 folder ?

Mihai

mihaimarinescu
06-27-2007, 03:01 AM
I have just tried it again. this is what i did :


Installed the Driver Package with a sample project i've made. everything went fine. Two folders where made in DRVSTORE :

usb2250_354D9B03E34753591F596E9CA1AECB653EB77305
windrvr6_AA4C33D99890CE2E226979495EB0262475C19827



Plugged in the device and Windows found it and said that it has installed the driver correctly but i need to reboot.

Reboot
Go into the Device Manager and see the device with exclamation mark and by right clicking on it i get : This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)

What is strange is that when i install the driver with wdreg.exe i get two different devices in Device Manager. I get the WinDriver and our own. I am pretty sure that without the WinDriver our own driver won't work and since i can't see it i think that is the problem. This is what i do to get it working with wdreg.exe :


run wdreg.exe with windrvr6.inf and install it
run wdreg.exe with usb2250.inf and install it
Plug in my device
Windows installs it
No reboot is required
Open up Device manager and find two things. My device and WinDriver(both working fine)


Mihai

Holger_G
06-27-2007, 03:31 AM
I think i tried this but it didn't work. You mean install the Driver Package and then plug in the device and point to the DRIVERSTORAGE in System32 folder ?

Mihai

No, just without any installation. Copy the driver files to a local folder on your hard disk, plug in the usb device and when windows asks for drivers point to that folder.

mihaimarinescu
06-27-2007, 03:54 AM
No, just without any installation. Copy the driver files to a local folder on your hard disk, plug in the usb device and when windows asks for drivers point to that folder.

Just tried that on a clean machine and it didn't work. I get the same behaviour as i would if i installed it with installshield. I only get installed my device and not WinDriver. It looks like that wdreg pushes the windriver correctly in with or without difxapi. I can't really figure how they do that from their source code (i have the source code for wdreg).

Mihai