Can InstallShield install the device drivers?

Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi Eugene,

Yes, you can install device drivers using InstallShield. Unfortunately we
had to write two programs to do the installation, using a command line C++
program. We had to write two different programs because one had to be
16-bit code for windows 9x/Me operating systems while the other had to be
32-bit code for Windows 2k. The programs either interfaced with setupx.lib
or setupapi.lib(see the win98 ddk and Win2k DDK documentation for more
information on the functions, Win2k is a better source).

One of the problems we had was the cfgmgr functions. They were pretty
cryptic and pretty much unusable eventhough the Win2k documentation refers
to them.

If you want to look at a example of installing a driver you can look at the
DirectX setup; however, that is not a very good example because all the
source code to do the installation is not present.

Are you installing a PnP or Legacy Driver?
Joe McCloskey
Gamry Instruments, Inc.
xxxxx@gamry.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Egorov Eugene (mail.ru)
Sent: Wednesday, October 17, 2001 6:52 AM
To: NT Developers Interest List
Subject: [ntdev] Can InstallShield install the device drivers?

Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@gamry.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

For Win NT and Win 2K, the approach I used was to use SETUP.EXE to install the .INF file for NT (via "LaunchAppAndWait" and the command line to install .INF's using the network control panel's .INF), and for 2K, to use the approach provided in the SNETCFG sample in the DDK in a .DLL to install the Win 2K .INF file.

Regards,

Ed Lau

MidCore Software, Inc.
900 Straits Tpke
Middlebury, CT 06762

www.midcore.com

----- Original Message -----
From: Joe McCloskey
To: NT Developers Interest List
Sent: Wednesday, October 17, 2001 8:25 AM
Subject: [ntdev] RE: Can InstallShield install the device drivers?

Hi Eugene,

Yes, you can install device drivers using InstallShield. Unfortunately we had to write two programs to do the installation, using a command line C++ program. We had to write two different programs because one had to be 16-bit code for windows 9x/Me operating systems while the other had to be 32-bit code for Windows 2k. The programs either interfaced with setupx.lib or setupapi.lib(see the win98 ddk and Win2k DDK documentation for more information on the functions, Win2k is a better source).

One of the problems we had was the cfgmgr functions. They were pretty cryptic and pretty much unusable eventhough the Win2k documentation refers to them.

If you want to look at a example of installing a driver you can look at the DirectX setup; however, that is not a very good example because all the source code to do the installation is not present.

Are you installing a PnP or Legacy Driver?
Joe McCloskey
Gamry Instruments, Inc.
xxxxx@gamry.com

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com]On Behalf Of Egorov Eugene (mail.ru)
Sent: Wednesday, October 17, 2001 6:52 AM
To: NT Developers Interest List
Subject: [ntdev] Can InstallShield install the device drivers?

Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@gamry.com
To unsubscribe send a blank email to leave-ntdev-$subst('Recip.MemberIDChar')@lists.osr.com

You are currently subscribed to ntdev as: xxxxx@midcore.com
To unsubscribe send a blank email to leave-ntdev-$subst('Recip.MemberIDChar')@lists.osr.com


You are currently subscribed to ntdev as: $subst('Recip.EmailAddr')
To unsubscribe send a blank email to leave-ntdev-$subst('Recip.MemberIDChar')@lists.osr.com

try www.installsite.org. They have written a wrapper for the NT service api
in install script. This allows you to install NT services and device
drivers using only their install script! I have successfully used this to
install NT/2000 kernel mode drivers.

The file you would be looking for is ntservice105.zip. It contains the
ntservice.h and ntservice.rul files that you can #include in your setup.rul
file. To find the file on their website, in the frame on the right side of
the screen expand the item “IS5/6 Samples” and then click on “NT Services”.

“Egorov Eugene (mail.ru)” wrote in message
news:xxxxx@ntdev…
Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

At a price of $600 I would expect InstallShield to have support for installing 9x/NT/2K services and devices.
But it doesn’t! You need to write a DLL or executable to “extend” the product. Yes, you can use “LaunchAndWait”, but you don’t get a return value for the called program, only an indication that the program was found and executed.
The “wrappers” described below look good and they even seem to have sources. Why couldn’t InstallShield have included these sort of functions in their product.

I’ve also found that IS doesn’t address security. There is no API for discovering if the user has “Admin” permissions for installing a driver. There isn’t an API for changing permissions on a registry entry.

Larry
Happy SoftIce customer
Unhappy InstallShield customer

-----Original Message-----
From: Jon Anglin [mailto:xxxxx@fortres.com]
Sent: Wednesday, October 17, 2001 10:27 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Can InstallShield install the device drivers?

try www.installsite.org. They have written a wrapper for the NT service api
in install script. This allows you to install NT services and device
drivers using only their install script! I have successfully used this to
install NT/2000 kernel mode drivers.

The file you would be looking for is ntservice105.zip. It contains the
ntservice.h and ntservice.rul files that you can #include in your setup.rul
file. To find the file on their website, in the frame on the right side of
the screen expand the item “IS5/6 Samples” and then click on “NT Services”.

“Egorov Eugene (mail.ru)” wrote in message
news:xxxxx@ntdev…
Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I used InstallShield Express for the first monolithic fibre channel driver I
wrote 3 years ago. Frankly, I found it big, blocky, slow, and a royal pain
in the ass to use. It takes for ever to start, and rapidly eats up floppy
disk space.

For later driver development I replaced InstallShield with INF-Tools. That
install program provides a much faster, easier to use, and smaller product.
As to 2000 installs, there I simply bit the bullet and learned how to write
an INF.

INF-Tools is shareware, cost $40, and gives a hell of a bang for the buck.

Gary G. Little
Staff Engineer
Broadband Storage, Inc.
xxxxx@broadstor.com

-----Original Message-----
From: Harmon, Larry CT [mailto:xxxxx@diebold.com]
Sent: Wednesday, October 17, 2001 8:21 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Can InstallShield install the device drivers?

At a price of $600 I would expect InstallShield to have support for
installing 9x/NT/2K services and devices.
But it doesn’t! You need to write a DLL or executable to “extend” the
product. Yes, you can use “LaunchAndWait”, but you don’t get a return value
for the called program, only an indication that the program was found and
executed.
The “wrappers” described below look good and they even seem to have sources.
Why couldn’t InstallShield have included these sort of functions in their
product.

I’ve also found that IS doesn’t address security. There is no API for
discovering if the user has “Admin” permissions for installing a driver.
There isn’t an API for changing permissions on a registry entry.

Larry
Happy SoftIce customer
Unhappy InstallShield customer

-----Original Message-----
From: Jon Anglin [mailto:xxxxx@fortres.com]
Sent: Wednesday, October 17, 2001 10:27 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Can InstallShield install the device drivers?

try www.installsite.org. They have written a wrapper for the NT service api
in install script. This allows you to install NT services and device
drivers using only their install script! I have successfully used this to
install NT/2000 kernel mode drivers.

The file you would be looking for is ntservice105.zip. It contains the
ntservice.h and ntservice.rul files that you can #include in your setup.rul
file. To find the file on their website, in the frame on the right side of
the screen expand the item “IS5/6 Samples” and then click on “NT Services”.

“Egorov Eugene (mail.ru)” wrote in message
news:xxxxx@ntdev…
Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@broadstor.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi,Joe,
I have the same question in Windows 9x. I want to install a PNP SCSI device’s driver ,there days , I try it useing 32Bit SetupDixxx function in setupapi.dll ,but is not successful! Could you tell me ,whether 32Bit SetupDixxx function can complete this? I don’t have the 16 Bit compiler!

Thank you for help!
Crasher

-----Original Message-----
Hi Eugene,

Yes, you can install device drivers using InstallShield. Unfortunately we
had to write two programs to do the installation, using a command line C++
program. We had to write two different programs because one had to be
16-bit code for windows 9x/Me operating systems while the other had to be
32-bit code for Windows 2k. The programs either interfaced with setupx.lib
or setupapi.lib(see the win98 ddk and Win2k DDK documentation for more
information on the functions, Win2k is a better source).

One of the problems we had was the cfgmgr functions. They were pretty
cryptic and pretty much unusable eventhough the Win2k documentation refers
to them.

If you want to look at a example of installing a driver you can look at the
DirectX setup; however, that is not a very good example because all the
source code to do the installation is not present.

Are you installing a PnP or Legacy Driver?
Joe McCloskey
Gamry Instruments, Inc.
xxxxx@gamry.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Egorov Eugene (mail.ru)
Sent: Wednesday, October 17, 2001 6:52 AM
To: NT Developers Interest List
Subject: [ntdev] Can InstallShield install the device drivers?

Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@gamry.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: guodongzi@163.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Crasher
guodongzi@163.net


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Thanks everybody how answer me!

As i can find there is no universal tool in InstallShield to install the any
driver, isnt it? I mean that there is no function named e.g. InstallDriverThroughInfFile( szInfFilePath ) that InstallShield exports; I see that its not easily to write such undependent platform function as InstallDriverThroughInfFile!

So, i have to write a supplementary DLL or EXE file to install my driver.
Is there any API for NT, instead of setup.exe /with switches?

The “NT services” InstallShield templates are useful only for services or simple
device drivers which required for it`s installations registry operations only
(they can be installed without any .inf file). For example, network drivers
can not be installed by such method. If i am not right correct me!

Answering myself to Larry its posible to determine from InstallShield if current windows session have Admin priviledges. Its done by mean of analizing the
USER_ADMINISTRATOR system variable:
//1. ---- Check Administrative priviledges: -------------
isAdmin = Is( USER_ADMINISTRATOR, “” );
if( isAdmin != TRUE ) then
MessageBox( @STR_NO_ADMIN_RIGHT, SEVERE );
abort; // exit the setup!
endif;
// -----------------------------------------------

Best regards,
Eugene

I used InstallShield Express for the first monolithic fibre channel driver
I
wrote 3 years ago. Frankly, I found it big, blocky, slow, and a royal pain

in the ass to use. It takes for ever to start, and rapidly eats up floppy
disk space.

For later driver development I replaced InstallShield with INF-Tools. That

install program provides a much faster, easier to use, and smaller product.

As to 2000 installs, there I simply bit the bullet and learned how to write

an INF.

INF-Tools is shareware, cost $40, and gives a hell of a bang for the buck.

Gary G. Little
Staff Engineer
Broadband Storage, Inc.
xxxxx@broadstor.com

-----Original Message-----
From: Harmon, Larry CT [mailto:xxxxx@diebold.com]
Sent: Wednesday, October 17, 2001 8:21 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Can InstallShield install the device drivers?

At a price of $600 I would expect InstallShield to have support for
installing 9x/NT/2K services and devices.
But it doesn’t! You need to write a DLL or executable to “extend” the
product. Yes, you can use “LaunchAndWait”, but you don’t get a return value

for the called program, only an indication that the program was found and
executed.
The “wrappers” described below look good and they even seem to have sources.

Why couldn’t InstallShield have included these sort of functions in their
product.

I’ve also found that IS doesn’t address security. There is no API for
discovering if the user has “Admin” permissions for installing a driver.
There isn’t an API for changing permissions on a registry entry.

Larry
Happy SoftIce customer
Unhappy InstallShield customer

-----Original Message-----
From: Jon Anglin [mailto:xxxxx@fortres.com]
Sent: Wednesday, October 17, 2001 10:27 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Can InstallShield install the device drivers?

try www.installsite.org. They have written a wrapper for the NT service api

in install script. This allows you to install NT services and device
drivers using only their install script! I have successfully used this to

install NT/2000 kernel mode drivers.

The file you would be looking for is ntservice105.zip. It contains the
ntservice.h and ntservice.rul files that you can #include in your setup.rul

file. To find the file on their website, in the frame on the right side of

the screen expand the item “IS5/6 Samples” and then click on “NT Services”.

“Egorov Eugene (mail.ru)” wrote in message
>news:xxxxx@ntdev…
>Hi All!
>
>I am writing the IM ndis drivers under WinNT and WinMe.
>The driver is a part of some application and should be installed with that

>application.
>I use InstallShield Profesional for writing installation package.
>
>Can InstallShield install the driver by means of some it`s templates or
>build-in functions?
>May be other tools exist to do it.
>
>Than you for help,
>
>Eugene
>Egorov
>
>
>
>
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@diebold.com
>To unsubscribe send a blank email to
>leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@diebold.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>—
>You are currently subscribed to ntdev as: xxxxx@broadstor.com
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>—
>You are currently subscribed to ntdev as: xxxxx@e-mail.ru
>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>—
>
>—
>Your free mail service
>http://www.e-mail.ru
>

http://www.e-mail.ru





Your free mail service

http://www.e-mail.ru


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Crasher,

You can’t use the 32bit code with the windows 9x. The strange thing you
may notice is that some of the setupapi.lib commands do work.
SetupDiCreateDevice will work when there is no instance of another driver;
however, I strongly recommend you don’t try to finagle the library. Just
use the 16-bit library. If you can, I strongly recommend you use IDE for
debugging, it exposes the class information for DEVICE_INFO variables.

When you are finished development, you should not use the debug version for
your release. For the program we developed, the debug version does not work
with InstallShield but the release version does. I did not have time to
determine exactly why but I think it was the extensive use of debugging
messages that was causing the problem.

When I had I had problems and needed the compiler. I ask NTDEV for it. I
got this message from another developer:

>Windows ME uses SETUPX.DLL, a 16-bit component. You will have to write
>a 16-bit application. Look at the Windows 98 DDK sample IPNew. To do
>this, you must use the 16-bit compiler. It can be found in Visual C
>version 1.52c on the Platform Archive CD #3 labeled 16-bit DDKs. The
>compiler by itself (without the entire VC IDE) is shipped as part of the
>new unified Windows XP DDK in the Bin\Win_Me folder as CL.EXE version
>8.00x.

Joe McCloskey
Gamry Instruments, Inc.
xxxxx@gamry.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Crasher
Sent: Wednesday, October 17, 2001 9:12 PM
To: NT Developers Interest List
Subject: [ntdev] RE: Can InstallShield install the device drivers?

Hi,Joe,
I have the same question in Windows 9x. I want to install a PNP SCSI
device’s driver ,there days , I try it useing 32Bit SetupDixxx function in
setupapi.dll ,but is not successful! Could you tell me ,whether 32Bit
SetupDixxx function can complete this? I don’t have the 16 Bit compiler!

Thank you for help!
Crasher

-----Original Message-----
Hi Eugene,

Yes, you can install device drivers using InstallShield. Unfortunately we
had to write two programs to do the installation, using a command line C++
program. We had to write two different programs because one had to be
16-bit code for windows 9x/Me operating systems while the other had to be
32-bit code for Windows 2k. The programs either interfaced with setupx.lib
or setupapi.lib(see the win98 ddk and Win2k DDK documentation for more
information on the functions, Win2k is a better source).

One of the problems we had was the cfgmgr functions. They were pretty
cryptic and pretty much unusable eventhough the Win2k documentation refers
to them.

If you want to look at a example of installing a driver you can look at the
DirectX setup; however, that is not a very good example because all the
source code to do the installation is not present.

Are you installing a PnP or Legacy Driver?
Joe McCloskey
Gamry Instruments, Inc.
xxxxx@gamry.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Egorov Eugene
(mail.ru)
Sent: Wednesday, October 17, 2001 6:52 AM
To: NT Developers Interest List
Subject: [ntdev] Can InstallShield install the device drivers?

Hi All!

I am writing the IM ndis drivers under WinNT and WinMe.
The driver is a part of some application and should be installed with
that
application.
I use InstallShield Profesional for writing installation package.

Can InstallShield install the driver by means of some it`s templates or
build-in functions?
May be other tools exist to do it.

Than you for help,

Eugene
Egorov


You are currently subscribed to ntdev as: xxxxx@gamry.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: guodongzi@163.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Crasher
guodongzi@163.net


You are currently subscribed to ntdev as: xxxxx@gamry.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com