[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1129
  • Last Modified:

How to install a device driver from an MSI?

I have the drivers from my device and now what i want is to install that drivers on my PC throw a MSI file.

I acctually have an intermediate knowledge about MSIs but what I want to know now is the driver installing process, i mean:

Certify drivers
Dont show the typical window that sais that Windows have found a new hardware.
Talking about printers, make the new printer appears con Windows Printers.

That kind of things... I'll be investigating anyway...

I'm not really sure if all I need is to copy the required files into System folder or specific location.

Well, I think that's all...
0
AlexIraMty
Asked:
AlexIraMty
  • 5
  • 4
  • 3
2 Solutions
 
Vadim RappCommented:
http://juice.altiris.com/article/1079/how-to-package-a-signed-device-driver-using-wise-studio

It's using Wise, but you probably will find useful information. Note the link to another article in one of the followups to the above. Depending on what authoring tool you have, you may find similar information on other vendors as well.
0
 
Rory de LeurCommented:
Installing multiple drivers with a MSI is a very big job, you have to know what your doing..

An other and easier way is to use the Driver Install Frameworks from Microsoft. In this package is a tool called DPinst.exe, this is a commandline tool that Installs the driver in the Drivercache. When a user plugs in the device the driver automaticly installs without popups.

Product info: http://www.microsoft.com/whdc/driver/install/difxtools.mspx
Download info: http://www.microsoft.com/whdc/driver/install/DIFxFAQ.mspx
0
 
Vadim RappCommented:
I agree with criple. There should be no software package for a device driver, and having "Driver XX" in add-remove programs is just wrong. Look at all these NVidia and other multi-megabyte installations, it's total nonsense; and in the end they create separate utilities in order to uninstall.
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
AlexIraMtyAuthor Commented:
Hey vadimrapp, I checked your first comment and seems that is almost all Im looking for but there is a problem. IS NOT FREE $$$$$$

But yes Criple, I Also agree with you, me and my team already are starting to learn how to use Driver Install Frameworks and DPinst.exe.

One of my partners already had success installing the Toaster Driver example specified on that kit and simulating the pluging, unpluging and extract of the Device.

We don't have it yet inside of the MSI package. I'm wondering either if set drivers and DPinst inside a Cab File or execute DPinst thow a CustomAction  :S

There is also other option creating a self-extract cabinet with "iexpress" and merge MSI with DIFxApp.msm using next command:

orca.exe -q -m DIFxApp.msm -f ProgramFiles -r TARGETDIR -l Merge.log -! Install.msi

The problem there is that we dont know where to set that package: BinaryTable?? inside a CAB Cabinet and import it to MSI with:

msidb -d Install.msi -a myPackage.CAB

I just on the road investigating and investigating and investigating...
0
 
Vadim RappCommented:
> IS NOT FREE $$$$$$

sure, but I guess you are also creating this package not exactly to drive the kitchen oven in your own home, do you. :-) Certification of your driver will be be free either, by the way.

Still, when I cited the article, I meant first of all the description of the techniques. You can use any MSI-authoring tool, even ORCA, and some are free.
0
 
Vadim RappCommented:
typo:
Certification of your driver will be be free either -> Certification of your driver will be not free either
0
 
AlexIraMtyAuthor Commented:
Drive my kitchen Oven jajajajajajajajajaj That was cool ajajjajajajajajajaj
0
 
Rory de LeurCommented:
Here is a clean MSI-template (with the merge-module inside).. unzip, and rename to msi.
You can use Installshield/wise to read the msi-script that is full of description tags.

Make Sure that:
- Driver files must have a install location (can not be placed in the BinaryTable)
- The inf-file is located in the INF-component in the msi and marked as key file
Device-Driver.zip
0
 
AlexIraMtyAuthor Commented:
Hello criple, what you mean with" Driver Files must have an Install Location" I undersatnd "Driver Files" the SYS, DLL, CAT(op) and INF files. Am I right?

And What about the INF component on Components and MsiDriverPackeges Tables. Do we have to create a record on File Table for Inf file???
0
 
Rory de LeurCommented:
Normally in an msi an installdir is specifide where the " product" wil be installed, this is the same with template above, so let say that your driverfiles (driver.dll, driver.sys and driver.inf) wil be installed in C:\Companyname\Driverfiles 1.0\
The INF-component has to hold the driver.inf seprately, but i almost forgot, every component has a installpath, this must be the same as your installdir.

Because you added files to an msi thet have to be specifide in components (it's a microsoft invention..). If you use an commercial editor, this wil be done for you.
My advice to you, get a trail version of Wise, just to see the relationships and read te comments in the msi-script. Then you can recreate this with orca.
0
 
AlexIraMtyAuthor Commented:
Thanks vidimrapp1 and criple You really helped me. We'll try Wise.

Thx to you...
0
 
Vadim RappCommented:
The process of adding or removing device, as I understand, triggerssome actions by Windows API in order to stop the device, start thedevice, and so on - those things are not available in the MSI, but youwill have to somehow address them - by custom actions and such.  You also have to think about un-installation and about repair, which can be triggered automatically. During uninstallation, you probably will have to stop the device, hence probably some custom action will be required. And so on. It would be much cleaner if the driver could beinstalled by regular windows process "add new device", i.e. tell itwhat folder to look into, and it's installed; or right-click .inf file and select "install". Without any MSI, just let Windows take care of everything.

By the way, even with MSI, you probably have to provide these functions anyway, so the user can use buttons such as "upgrade driver" etc. from device manager.


0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 5
  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now