Archive: Driver Installation Plugin


Driver Installation Plugin
Hi,

I've written a (hopefully) generic plugin for installing and removing device drivers, and I would like to contribute to NSIS.

There are just some tiny beautifications to do, and I have to revise the example and doc files. But I already want to ask if I should simply post a zip file to this forum and which license terms are prefered here. I usually publish under GPL/LGPL, but I have not problems to select a more relaxed variant in this case.

If someone is interested: This plugin is going to be used with IrCOMM2k 2.0.0-beta1 (http://www.ircomm2k.de/english) - it's all Open Source :D

Jan


If you'd like I can add your plugin to the downloads page on the NSIS Archive.

If what you mean is that you'd like it to be part of the NSIS installation then that's a question for KiCHiK to answer. I must admit I've never understood what determines which plugins are part of the installation and which aren't. It could just be as simple as whether or not one of the developers uploads the code and binaries and modifies makensis.nsi (hehe I guess if that's the case then I'm guilty of not doing this).

KiCHiK or Joost are more likely to have an opinion about licensing so I'll leave them to address that point.


Here it is. If could have a look at it and put it on the Download page, this would already be great. Please let me know if there is something which first needs to be fixed or improved.

I decided to pick the same license as NSIS itself. So a future integration should be no problem, at least from this point of view.

Jan


Contributions that are likely to be used by a majority of NSIS users are included in the package itself. If the contribution is not to be included in the package then the license doesn't really matter. If the contribution is to be included in the package, then the license must premit it of course. We don't care what license it is, but we do prefer it open-source.

Does this plug-in work on all OSes? According to MSDN, some of the functions you've used there are Windows 98, ME, 2000 and XP only.

For now, I've uploaded it to the Archive. If you want you can createa a page there that will link to its download, describing it a bit.

Thank you for your contribution.


You are right, some of the function calls requires 2000/XP to run. I haven't checked this in details as I don't see that urgent need for the other platforms anymore (at least for driver projects). If someone do need driver setup support there, he/she may rewrite InstDrv appropriately.


Well, that's worth mentioning in the readme. If you have nothing else to update I can add the note myself. Let me know.

Would be cool though if you update it to support any Windows version. Maybe /DELAYLOAD can help there.


If you can make it support all Win32 operating system (including Windows 95/NT4), we will add it to the NSIS distribution.


I can understand that you are looking for widely usable plugins, but unfortunately I currently don't have the time to back-port InstDrv to older platforms. However, during the development of IrCOMM2k, I fixed a bug and added two functions. Here is the latest version, could someone upload it? Thanks

PS: The readme now includes a note about the supported Windows version.


Done.


where? 8)


Same place as the previous version, http://nsis.sf.net/archive/download.php at the bottom.


thx


I try to use this plugin to install a device driver for a PCI card in Win2K, but can't get it work. Below is the problem :

- First at all, I try the example.nsi which comes with the plugin, it works fine and installs the ircomm2k.sys driver on my test box.

- I modify the example.nsi, change the GUID, HWID, INF filename and SYS filename, to what I want to install.

- For the devClass, ClassGUID={4d36e971-e325-11ce-bfc1-08002be10318}, which is "Multifunction card"

- For the devHWID, it's "PCI\VEN_10E3&DEV_0862&SUBSYS_120210E3", which is a PCI card HWID

- The script compiles fine, but the installation fails without install the driver, below is the detail print :

InitDriverSetup:
DeleteOemInfFiles: 00000103
CreateDevice: E0000205
Output folder: C:\Docume~1\test\LOCALS~1\Temp
Extract: test.inf... 100%
Extract: dummy.sys... 100%
InstallDriver: E000020B
CountDevices:0
Completed

- You can see "CreateDevice" output error code "E0000205". I can't find this error code in any Windows error, is it a custom error code ?

- Interestingly, if I change the HWID from "PCI\VEN_10E3&DEV_0862&SUBSYS_120210E3" to something simpler, e.g. "testdriver", the installation works fine. Of cause the driver does not talk to the PCI card because the HWID is fake.

Anyone knows what's going on here? Is the HWID problem, if it's, what should I use for the HWID?

I attach a zip file which includes the "InstDrv-Test-driver.nsi", "test.inf" and "dummy.sys"in this post. I am using NSIS 2.0 Beta 4.

Please help, thanks.


Could anybody help ?


Try to contact the author of this plug-in.


Originally posted by andyjin

...
- The script compiles fine, but the installation fails without install the driver, below is the detail print :

InitDriverSetup:
DeleteOemInfFiles: 00000103
CreateDevice: E0000205
Output folder: C:\Docume~1\test\LOCALS~1\Temp
Extract: test.inf... 100%
Extract: dummy.sys... 100%
InstallDriver: E000020B
CountDevices:0
Completed
...
I have the same problem. Somehow is it intersting. Sometimes it works, and sometimes not, but with an other driver. And the driver i using now bring allways the message above. I find out that the GUID and the DeviceID have to match the settings in the INF-File. But it still does not work.

Did the Author find out where is the problem?

Hi everybody!

I'm new at this forum. Just to say I was looking for a solution for my problem with InstDrv plug-in and I found in this thread that some people has exactly the same problem as me.

I'm trying to develop a creator thar includes the drivers for some PCI cards. If I try InstDrv with the usual "PCI\..." HW ID I get the same errors some of you pointed before. If I edit my .inf file and I use any string as the HW ID value, then the problems when the device is created and the driver installed disappear, but then the yellow exclamation appears in the Device Manager list.

I've written a mail to the author. I hope we can find a solution because I find this plug-in very interesting and useful.


Thank you for your attention and time.


Marcos
Ourense, Galicia, Spain.


Hello!

I don't know if it may help, but I was able to solve my driver installation problem without such a plugin.

I hope it may help:

DrvInst : http://home.arcor.de/_aero/drvinst.zip
DrvInst "Source": http://home.arcor.de/_aero/tcmagazin...nst-project.7z


Hello anir! and thank you for your reply.

I am trying your TC Driver Installer but I can't get it working. I've changed the drvinst.cfg file properly and added the hw id code of my pci card in the first line of the drvinst.lst file. It is not a Pnp device.

I don't know if the problem has to be with the NumbrSrch of the drvinst.lst file, because I've tried with several values with no result.

If I first install the driver manually, then the TC Driver Installer works, but it asks for the path where the .sys file is, and I would like to do the installation automatically. Is there any way to get this with your method?


Thanks again and I hope you read this post and you would be so gentle to help me.

Marcos.



mac_ou,

I think you cannot install non-PNP device drivers with the existing methods.
Both the plugin and "Driver installation and update" use the same API call: UpdateDriverForPlugAndPlayDevices
As the name already suggests, it only works with PNP device drivers, so you cannot use that call for your purpose.
But maybe the script's label "lbl_noupgrade" or "Pre-install the driver" will help you.