LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Not really Plug&Play with generated .inf file for custom USB-device

Solved!
Go to solution

Hi,

 

we have developed an application using the NI-VISA-Library in order to communicate with our USB-device via RAW communication.

Therefore we have created an *.inf file by using the Driver Wizard. Once we plug-in the device for the first time, windows successfully enumerates the device and pop-up the "Found new hardware"-window.

There we chose the created .inf file and the device is successfully installed.

 

Our Problem occurs when we plug-in an other device of the same type but with an other Serial-ID (meaning same VID, same PID, only the Serial-ID of the USB-device is different).

For all devices with an Serial-ID which wasn't connected to windows yet, the "Found new hardware"-window pops up again so that you HAVE to chose the installing-procedure. Despite the fact that the driver for that kind of device was already installed, windows does not assign our driver .inf file to the device.

If we then chose in the "Found new hardware"-window the "automatic installation"-procedure the device is installed and can be used successfully.

Obviously windows recognizes the right driver but does not assign it automatically without pop-up windows. We want to avoid the reapeating pop-up windows for each device.

 

I did some research about that, and now I assume that the problem is that the generated .inf file has no signature.

Does anybody have some experiences about that issue? Am I right? Does anybody have or had the same problem?

Any solutions beside assigning the same Serial-ID to all devices?

 

Here some quotes from the setupapi.log (which seem to confirm my assumption):

 

#-199 Executing "C:\WINDOWS\system32\rundll32.exe" with command line: rundll32.exe newdev.dll,ClientSideInstall \\.\pipe\PNP_Device_Install_Pipe_0.{FA2413C7-7354-42DC-845B-DC109B5174FC}
#I060 Set selected driver.
#-019 Searching for hardware ID(s): usb\vid_1234&pid_1234&rev_1234,usb\vid_1234&pid_1234
  !!!(VID 1234 is only for testing purpose)!!!
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#I022 Found "USB\VID_1234&PID_1234" in C:\WINDOWS\inf\oem70.inf; Device: "xyz"; Driver: "xyz"; Provider: "xyz"; Mfg: "xyz"; Section name: "NIVIUSBK_Inst".
#I087 Driver node not trusted, rank changed from 0x00000001 to 0x0000c001.
#I023 Actual install section: [NIVIUSBK_Inst]. Rank: 0x0000c001. Effective driver date: 09/25/2007.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [NIVIUSBK_Inst] in "c:\windows\inf\oem70.inf".
#I320 Class GUID of device remains: {36FC9E60-C465-11CF-8056-444553540000}.

 

Greets,

Philipp

 

 

0 Kudos
Message 1 of 5
(3,957 Views)
Solution
Accepted by topic author pille3256

Hi Philipp,

 

thank you very much to posting your question. I talked to our specialists in the united states about signing your created driver. You find a short discription in the NI-VISA Readme:

 

"WHQL Signing USB Hardware

To WHQL (Windows Hardware Quality Labs) sign your USB hardware using the NI-VISA driver for Windows XP/2000, as part of this process you need a PDB (Program DataBase) file for the underlying driver (NiViUsbK.sys).

NiViUsbK.pdb is provided for this purpose. It is in <NI-VISA Installation Directory>\WinNT\NIvisa\USB. This is typically C:\VXIPNP\WinNT\NIvisa\USB."

 

To get it done, you have to contact Microsoft. We are not allowed / able to sign your driver for you.

 

Maybe, the following link helps you: http://www.microsoft.com/whdc/winlogo/wlk/default.mspx

 

Best regards

 

Marian Vorderer
0 Kudos
Message 2 of 5
(3,905 Views)

Hi Marian,

 

thanks for the response!

It is very helpful for us, to have confirmed our assumption about the signing/certifying process (in this case WHQL signing). We wanted to get sure, that there isn't any other solution to avoid the "Found New Hardware"-Dialog beside WHQL signing.

 

So thanks for your efforts!

 

Best Regards,

Philipp

 

 

 

 

0 Kudos
Message 3 of 5
(3,901 Views)

I've come across this issue many times.

 

What I find particularly ridiculous about the approach Microsoft is that it's actually the *.inf file which needs certification, not the far more important *.sys file.  Personally I would have thought that the fact that all *.sys files being used are signed should be enough but alas.....

 

Anyone know what it actually costs to get a driver certified?

 

Shane.

0 Kudos
Message 4 of 5
(3,883 Views)

Maybe the document linked below contains some infos about costs. But I am not sure .....

https://winqual.microsoft.com/download/Post%20HCT%2012%20DTM%20Global%20WHQL %20POLICY%20v1.1.doc

 

Honestly, we are not willing to enrich Microsoft. At least, not at the moment.

I don't know how Vista or the next Microsoft OS will handle this issue? Maybe you will HAVE to get certified? We didn't test it on Vista yet ......

 

Philipp

0 Kudos
Message 5 of 5
(3,879 Views)