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...
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Vadim RappCommented:

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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Rory de LeurConsultant End-User ComputingCommented:
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:
Download info:
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.
Become a CompTIA Certified Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

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...
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.
Vadim RappCommented:
Certification of your driver will be be free either -> Certification of your driver will be not free either
AlexIraMtyAuthor Commented:
Drive my kitchen Oven jajajajajajajajajaj That was cool ajajjajajajajajajaj
Rory de LeurConsultant End-User ComputingCommented:
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
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???
Rory de LeurConsultant End-User ComputingCommented:
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.
AlexIraMtyAuthor Commented:
Thanks vidimrapp1 and criple You really helped me. We'll try Wise.

Thx to you...
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.

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Utilities

From novice to tech pro — start learning today.