Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Installing a Driver using the Install NT Service


6 replies to this topic

Dave I

Dave I
  • Members
  • 195 posts

Posted 15 March 2001 - 13:43

I am trying to install a driver using the Advance Settings ->Install NT Service. in our previous install the driver was installed using a dll which called the createservice () function as shown below:

CreateService( schSchSCManager,  
      lpszDriverName,// name of service
      lpszDriverName,// name to display
      SERVICE_ALL_ACCESS,          
      SERVICE_KERNEL_DRIVER,
      SERVICE_AUTO_START,      
      SERVICE_ERROR_NORMAL,
      lpszServiceExe,// service's binary
      NULL,
      NULL,// no tag identifier
      NULL,// no dependencies
      NULL,// LocalSystem
      NULL           // no password
      );

Now the problem I have is that ISWI is limited to 2 options in the service type as opposed to 4 in the MSDN , the Service type I require is not listed SERVICE_KERNEL_DRIVER.

The strange thing is that ISWI does allow the startup types "By Operating System Loader" and "System" that MSDN says are restricted to drivers.

Is it possible to install a driver in this way?  Or what is the correct way to install a driver of this type.

Thanks in Advance.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 March 2001 - 16:39

I don't know enough about services to say whether SERVICE_BOOT_START and SERVICE_SYSTEM_START require SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_DRIVER. But Windows Installer Help (msi.chm) says:

The following types of service are unsupported: SERVICE_KERNEL_DRIVER, SERVICE_FILE_SYSTEM_DRIVER.

So it looks like you can't create your service that way. (I don't know why they are unsupported). But it does list SERVICE_BOOT_START and SERVICE_SYSTEM_START as valid start types. So InstallShield complies with the MSI documentation (although this documentation sometimes doesn't make sense).

You could try a custom action instead.


SOWI

SOWI
  • Full Members
  • 29 posts

Posted 21 February 2002 - 14:55

For non PNP device driver this method works indeed!
Simple set the service type to 1 in the ServiceInstall table

aseyer

aseyer
  • Members
  • 21 posts

Posted 21 February 2002 - 20:38

I believe however you will get an error if you run the Windows 2000 verification tool.  The proper way to install a kernal mode driver is via an inf file.

SOWI

SOWI
  • Full Members
  • 29 posts

Posted 07 March 2002 - 16:21

I got no errors during my validations.


Frank Dering

Kelter

Kelter
  • Full Members
  • 14 posts

Posted 29 March 2010 - 21:14

Using InstallShield 2008: Basic MSI project type.

I'm also installing several virtual device drivers, and am similarly frustrated by this crazy unsupported feature. That said, i hacked the MSI table using the direct editor, and made it install my virtual device. I simply modified the value in the table. i tested this on Windows XP and Windows 7. I'll post again if testing fails in once case or another.

Kelter

Kelter
  • Full Members
  • 14 posts

Posted 29 March 2010 - 22:01

Also, just an important addition: MSDN also states that "The Windows Installer cannot use the SERVICE_BOOT_START and SERVICE_SYSTEM_START options." So the documentation is consistent insofar as their support of the driver-related SCM options are concerned. I just can't figure out why.