Tech Support > Microsoft Windows > Drivers > SetupDiCallClassInstaller Intiating driver install then failing.
SetupDiCallClassInstaller Intiating driver install then failing.
Posted by David G on February 1st, 2006


Hi, this question has to with the installation and loading of a driver. The
installation code I've written works great for Windows XP but not for Windows
2K. I used w2k for the building with the latest DDK. There is no hardware
involved so my application calls the Setup API functions to communicate with
the PnP Manager. So the adding of the devices is done when a user adds
another port, not when the user installs the software. These devices are
enumerated in ENUM\ROOT\PORTS.

I have a virtual serial port (Com Port) driver I've written that can have up
to 255 virtual devices. I have the .inf file and the .sys file in a
subdirectory of my application. When I add the first port from my
application it gets to the SetupDiCallClassInstaller function and it is
called. The PnP Manager then loads my driver and calls DriverEntry.
DriverEntry returns STATUS_SUCCESS but the PnP Manager calls my unload
routine right after this. SetupDiCallClassInstaller returns stating a reboot
is required. On Windows XP the AddDevice routine is called after the
successfull call to DriverEntry with no request for a reboot.

If I do reboot then everything works great.

What is different from wxp and w2k in this scenario? Is there something in
the deviceobject that needs to be set. I have Debug Prints in the PnP
dispatch routines and none are being called.

setupapi.log looks like this:

@ 13:54:31.914 : Install Device: Begin.
@ 13:54:31.914 : Doing full install of ROOT\PORTS\0000.
@ 13:54:31.914 : Install Device: Writing BASIC Logical Configs
@ 13:54:31.914 : Install Device: Changing registry settings specified by
INF(s).
@ 13:54:31.924 : Install Device: Writing driver specific registry settings.
@ 13:54:31.924 : Install Device: Installing required Windows services.
@ 13:54:32.785 : Install Device: Writing drive descriptive registry settings.
@ 13:54:32.795 : Install Device: Calling RunOnce/GrpConv items.
@ 13:54:32.795 : Executing RunOnce to process 5 RunOnce entries.
@ 13:54:32.815 : Device install finished successfully (ROOT\PORTS\0000).
@ 13:54:32.815 : Install Device: End.
@ 13:55:02.017 : Device install function: DIF_PROPERTYCHANGE.
@ 13:55:02.027 : Executing class-installer.
@ 13:55:02.027 : Completed class-installer.
@ 13:55:02.027 : Executing default installer.
@ 13:55:15.166 : Device required reboot: Device has problem: 31.
@ 13:55:15.176 : Completed default installer.


Why does w2k require a reboot and not wxp? Problem 31 states that my driver
depends on another driver that is not loaded? My driver is not dependent
upon another driver?

Anyone have any ideas as to what is going on?

-David G


Similar Posts