Re: [ntdev] DI_NEEDREBOOT returned by SetupDiClassInstaller upon driver installation

http://msdn.microsoft.com/en-us/library/windows/hardware/ff538922(v=vs.85).aspx

The driver could not be loaded because a previous instance is still loaded.

Unload failure could be caused by resource leak? Did you use verifier to check the driver?

=================
Best Regards!
Zhang Pei
www.yiiyee.cn/blog

From: chider@bk.ru
Sent: ‎Friday‎, ‎August‎ ‎15‎, ‎2014 ‎3‎:‎54‎ ‎AM
To: Windows System Software Devs Interest List

Hello,

I’ve got a simple filter driver that I’m installing for all devices connected to serial ports on a 32-bit Windows XP (upper filter driver for class guid “4D36E978-E325-11CE-BFC1-08002BE10318”). I would like to install it without a reboot. All installation WDF steps are successfully executed. I then restart all subdevices of the target device. This is done by going over sub-devices through SetupDiEnumDeviceInfo, stopping and then starting them:

params.StateChange = DICS_STOP;
params.Scope = DICS_FLAG_CONFIGSPECIFIC;
params.HwProfile = 0; // only for current HW profile
SetupDiSetClassInstallParams(…,&params,…);

// now start it again:
params.StateChange = DICS_START;
SetupDiSetClassInstallParams(…,&params,…);

SP_DEVINSTALL_PARAMS installParams;

SetupDiGetDeviceInstallParams(…,&installParams );

if( installParams.Flags & DI_NEEDREBOOT )
{

}

One of the sub-devices always returns an indication that a reboot is required.

setupapi.log has the following lines:

#-166 Device install function: DIF_PROPERTYCHANGE.
#I292 Changing device properties of “ACPI\PNP0400\4&1D401FB5&0”.
#I309 DICS_STOP: Device has been stopped.
#-166 Device install function: DIF_PROPERTYCHANGE.
#I292 Changing device properties of “ACPI\PNP0400\4&1D401FB5&0”.
#W114 Device “ACPI\PNP0400\4&1D401FB5&0” required reboot: Device has problem: 0x26: CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD.
#I307 DICS_START: Device could not be started.

Which seems to indicate that one of the drivers down the stack could not be unloaded. Could it be some sort of limitation of the standard XP serial driver (serial.sys/serenum.sys)? Or is there something wrong with the way a restart is implemented?

I would appreciate your input regarding this issue. Thanks!


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer