cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
rbhkamal
Level 3

Unsupported device drivers?

Installshield 12 doesn't support the following drivers:
SERVICE_KERNEL_DRIVER 0x00000001 A driver service.
SERVICE_FILE_SYSTEM_DRIVER 0x00000002 A file system driver service.

Is it still the case in Installshield 2008?
Labels (1)
0 Kudos
(8) Replies
Holger_G
Level 10

What exactly do you mean? What do you want to install?
Please give us a little bit more details.

-Nick
0 Kudos
rbhkamal
Level 3

If you want your installer to install (load) service kernel drivers on the client machine, will IS2008 do it for you? IS12 doesn't.

I downloaded the trial version of IS2008 and it looks like this version doesn't support these drivers as well.... 😞

I don't know why IS2008 doesn't support these drivers... it's not rocket science!!
0 Kudos
RobertDickau
Flexera Alumni

If those are the types listed in the "ServiceInstall Table" topic, that's an MSI limitation; perhaps see if the Device Driver Wizard (which uses DIFx to install drivers) will help?
0 Kudos
rbhkamal
Level 3

Nope... the driver wizard didn't even detect the correct driver type and didn't even add the .sys....
I have three service kernel drivers to install 😞 .... how lucky
0 Kudos
Holger_G
Level 10

Will these kernel drivers appear as a hardware device in the device mangager after installing them manually?
What you could do would be:
-Coding your own .dll to install the kernel drivers using Microsofts devcon sample (latest WinDDK)
-Create a devnode for the kernel driver device and then use DIFx to install the device (devcon sample source includes source code for creating a devnode). Works for me.


-Nick
0 Kudos
rbhkamal
Level 3

Yes the Kernel drivers show up under device manager. I looked at devnode for few minutes but didn't have enough time to try it out. Thanks though.
I wounder why Install shield doesn't support these drivers because I saw a lot of folks here with the same request

Regards,
RK
0 Kudos
Kelter
Level 10

My installation requires installing a SERVICE_KERNEL_DRIVER service. I'd previously just used the registry view to specify the registry settings necessary to install the virtual driver/service, and in the file view, I obviously stuck the .sys file in the drivers directory. The thing is: this isn't really the best way to write a maintainable package. It would be nicer to use the API provided for all the reasons we use APIs instead of rolling our own implementations.

The options for ErrorControl appear only to accept 1, 2, and 3 as values given the descriptions, however, the when i choose "Log the error and continue" which corresponds to the description of SERVICE_ERROR_NORMAL, i see in the log/target registry that 0 (SERVICE_ERROR_IGNORE) is used instead of SERVICE_ERROR_NORMAL as the description of the option indicates. This is not up to spec! Either the option with the given description should result in a value of (1) or the description should be amended to say "The startup program ignores the error and continues the startup operation."

If installshield/MSI/whatever is just calling CreateService with the parameters specified in the InstallService record, the WHY wouldn't the IS interface allow the user to enter any information that would be valid in a call to CreateService? Well, because the MSI documentation says that it's unsupported. IS, in that case, is correct in maintaining only the officially supported cases.

I am happy to report, however, that despite the MSDN documentation, simply hacking the InstallServices table in the direct editor allowed me to install the service as a SERVICE_KERNEL_DRIVER. I think MS needs to weigh in on this one. It makes no sense!!!
0 Kudos
Kelter
Level 10

Correction: My above solution is not working in Windows7. It IS working in XP. What a bummer. All this MSI technology, and i still can't install a virtual driver without scripting. GRRR.
0 Kudos