I'm seeing a strange PnP behavior when using DevCon to install my bus and
device drivers which are similar in architecture to the Toaster sample.
Upon receiving my bus drivers response to the IRP_MN_QUERY_DEVICE_RELATIONS
for bus relations, PnP reacts by displaying two "Found New Hardware" windows
for each device which was returned in the query array.

Enabling SetupAPI log level to 0xffffffff reveals that one prompt appears to
be initiated by a command identified to be from DevCon and the other
initiated by System32/Services. If I respond to only one of the prompts to
automatically find and install the correct driver, everything moves forward
properly and results in both prompts being removed and replaced by a single
Finish window upon a successful completion of the installation.

The question I have is "How can I prevent multiple found new hardware
windows from being displayed when using DevCon, or the
UpdateDriverForPlugAndPlayDevices() function to initiate the installation of
my drivers?".

Re: Multiple "Found New Hardware" wizard pages displayed when running DevCon on Toaster like driver architecture by sticky_NO_

sticky_NO_
Wed Aug 06 17:14:00 CDT 2003

On Wed, 6 Aug 2003 12:15:03 -0500, "Del Fredricks"
<im.sick.of.spam@ask.i.might.tell> wrote:

>I'm seeing a strange PnP behavior when using DevCon to install my bus and
>device drivers which are similar in architecture to the Toaster sample...

It's normal. You'll see 1 or 2 Wizards for each new device you declare
in the Query Device Relations call. You'll get 2 for HID devices,
probably some other classes, too. One is for the PDO that you created
for the device, the second is for the corresponding HID device that
the system creates.

You get rid of them by setting the SilentInstall flag during the
IRP_MN_QUERY_CAPABILITIES call, but XP ignores the flag unless the
driver is signed so you're stuck with them while you're unsigned.
Also, you probably need to set them in a completion routine. I'm not
sure with SilentInstall, but SurpriseRemovalOk has to be set in a
completion routine and I've always just set SilentInstall at the same
time.

- Bob

The StickWorks
http://www.stickworks.com

Re: Multiple "Found New Hardware" wizard pages displayed when running DevCon on Toaster like driver architecture by Del

Del
Thu Aug 07 14:36:37 CDT 2003


"Bob Church" <sticky_NO_@_SPAM_stickworks.com> wrote in message
news:3f3178c9.6111595@news.compuserve.com...
> On Wed, 6 Aug 2003 12:15:03 -0500, "Del Fredricks"
> <im.sick.of.spam@ask.i.might.tell> wrote:
>
> >I'm seeing a strange PnP behavior when using DevCon to install my bus and
> >device drivers which are similar in architecture to the Toaster sample...
>
> It's normal. You'll see 1 or 2 Wizards for each new device you declare
> in the Query Device Relations call. You'll get 2 for HID devices,
> probably some other classes, too. One is for the PDO that you created
> for the device, the second is for the corresponding HID device that
> the system creates.
>

But I only see this behaviour when using the DevCon utility, or another app
which makes the
UpdateDriversForPnPDevices() call to initiate the installation. If I begin
with the Add/New Hardware Wizard, I do not see this behaviour. As for
classes, the first is my own newly defined bus class, but the subsequent
children are for Multi-Port Serial Adapters (MPS), and Ports classes and I
never seen this bizare behaviour installing them until I implemented the bus
architecture like Toaster to precede the installation of the MPS device.

Also, the PDO for the new bus device is created by PnP as a result of the
UpdateDriversForPnPDevices() call yet it still presents 2 Found New Hardware
dialogs for the single device.

>
> You get rid of them by setting the SilentInstall flag during the
> IRP_MN_QUERY_CAPABILITIES call, but XP ignores the flag unless the
> driver is signed so you're stuck with them while you're unsigned.
> Also, you probably need to set them in a completion routine. I'm not
> sure with SilentInstall, but SurpriseRemovalOk has to be set in a
> completion routine and I've always just set SilentInstall at the same
> time.
>

I'm already setting the SilentInstall in the capabilities and as you say, XP
ignores it.

However, could you please elaborate as to what you mean on the completion
routine?

I'm setting SurpriseRemovalOk in the routine responding to the
IRP_MN_QUERY_CAPABILITIES, but it is not being set anywhere else in my
driver



Re: Multiple "Found New Hardware" wizard pages displayed when running DevCon on Toaster like driver architecture by Del

Del
Fri Aug 08 11:17:34 CDT 2003


First off, I'm working with an MPS device not a HID, so I'm not sure about
the correlation.

Next, I've looked into the indicated file in both the 3790 and the LDKbeta
distributed at WinHEC and do not see any discussion on the issue in either
kit. I see discussion on the "Found New Hardware" dialog, but nothing about
multiple "Found New Hardware" dialogs for the same device.

As for installation via devcon, I do not see any discussion about any wizard
dialogs, let alone the multiple "Found New Hardware" dialogs.

I did see a note on the found new hardware wizard being invoked again for
the same device after rebooting the machine which is a different issue
because I am seeing two "Found New Hardware" wizard dialogs being displayed
*at the same time* during the installation process, which appears to make it
a different issue.

Furthermore, I can select either the "Install from list or specific location
(Advanced)" or "Search for and install the hardware automatically
(Recommended)" on both windows, see the device enumerate and install twice
via PnP, yet end up with only the single instance of the device being
installed and running on the system.

This can not be demonstrated with the toaster sample because of the static
nature of the driver. If the sample retained the plugged in device
information when a system shutdown and then re-enumerated them upon boot-up,
then you would see the this problem arise. Perhaps this could be a feature
for a future bus driver sample.

"Eliyas Yakub [MSFT]" <eliyasy@online.microsoft.com> wrote in message
news:eQtHCoWXDHA.2200@TK2MSFTNGP09.phx.gbl...
> This seems like a known issue. We have run into this while we were
> developing the vhidmini sample. Take a look at the readme file
> src\wdm\hid\vhidmini\vhidmini.htm of server 2003 DDK. It describes the
> problem. I don't have access to the DDK now.
>
> --
> --
> -Eliyas
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
>
>
>
> "Del Fredricks" <im.sick.of.spam@ask.i.might.tell> wrote in message
> news:uq761sRXDHA.1940@TK2MSFTNGP10.phx.gbl...
> >
> > "Bob Church" <sticky_NO_@_SPAM_stickworks.com> wrote in message
> > news:3f3178c9.6111595@news.compuserve.com...
> > > On Wed, 6 Aug 2003 12:15:03 -0500, "Del Fredricks"
> > > <im.sick.of.spam@ask.i.might.tell> wrote:
> > >
> > > >I'm seeing a strange PnP behavior when using DevCon to install my bus
> and
> > > >device drivers which are similar in architecture to the Toaster
> sample...
> > >
> > > It's normal. You'll see 1 or 2 Wizards for each new device you declare
> > > in the Query Device Relations call. You'll get 2 for HID devices,
> > > probably some other classes, too. One is for the PDO that you created
> > > for the device, the second is for the corresponding HID device that
> > > the system creates.
> > >
> >
> > But I only see this behaviour when using the DevCon utility, or another
> app
> > which makes the
> > UpdateDriversForPnPDevices() call to initiate the installation. If I
> begin
> > with the Add/New Hardware Wizard, I do not see this behaviour. As for
> > classes, the first is my own newly defined bus class, but the subsequent
> > children are for Multi-Port Serial Adapters (MPS), and Ports classes and
I
> > never seen this bizare behaviour installing them until I implemented the
> bus
> > architecture like Toaster to precede the installation of the MPS device.
> >
> > Also, the PDO for the new bus device is created by PnP as a result of
the
> > UpdateDriversForPnPDevices() call yet it still presents 2 Found New
> Hardware
> > dialogs for the single device.
> >
> > >
> > > You get rid of them by setting the SilentInstall flag during the
> > > IRP_MN_QUERY_CAPABILITIES call, but XP ignores the flag unless the
> > > driver is signed so you're stuck with them while you're unsigned.
> > > Also, you probably need to set them in a completion routine. I'm not
> > > sure with SilentInstall, but SurpriseRemovalOk has to be set in a
> > > completion routine and I've always just set SilentInstall at the same
> > > time.
> > >
> >
> > I'm already setting the SilentInstall in the capabilities and as you
say,
> XP
> > ignores it.
> >
> > However, could you please elaborate as to what you mean on the
completion
> > routine?
> >
> > I'm setting SurpriseRemovalOk in the routine responding to the
> > IRP_MN_QUERY_CAPABILITIES, but it is not being set anywhere else in my
> > driver
> >
> >
>
>



Re: Multiple "Found New Hardware" wizard pages displayed when running DevCon on Toaster like driver architecture by Eliyas

Eliyas
Mon Aug 11 18:19:21 CDT 2003

Del,

Don't know what to say because I don't have a way to repro this issue. I
think you should contact DDK support and have them dig into this.

I will definitely add this and couple of other features (Removal & Ejection
Relations) to the upcoming framework version of the bus driver sample.

--
-Eliyas
This posting is provided "AS IS" with no warranties, and confers no rights.
http://www.microsoft.com/whdc/hwdev/driver/kb-drv.mspx

"Del Fredricks" <im.sick.of.spam@ask.i.might.tell> wrote in message
news:%23RtyRicXDHA.2344@TK2MSFTNGP09.phx.gbl...
>
> First off, I'm working with an MPS device not a HID, so I'm not sure about
> the correlation.
>
> Next, I've looked into the indicated file in both the 3790 and the LDKbeta
> distributed at WinHEC and do not see any discussion on the issue in either
> kit. I see discussion on the "Found New Hardware" dialog, but nothing
about
> multiple "Found New Hardware" dialogs for the same device.
>
> As for installation via devcon, I do not see any discussion about any
wizard
> dialogs, let alone the multiple "Found New Hardware" dialogs.
>
> I did see a note on the found new hardware wizard being invoked again for
> the same device after rebooting the machine which is a different issue
> because I am seeing two "Found New Hardware" wizard dialogs being
displayed
> *at the same time* during the installation process, which appears to make
it
> a different issue.
>
> Furthermore, I can select either the "Install from list or specific
location
> (Advanced)" or "Search for and install the hardware automatically
> (Recommended)" on both windows, see the device enumerate and install twice
> via PnP, yet end up with only the single instance of the device being
> installed and running on the system.
>
> This can not be demonstrated with the toaster sample because of the static
> nature of the driver. If the sample retained the plugged in device
> information when a system shutdown and then re-enumerated them upon
boot-up,
> then you would see the this problem arise. Perhaps this could be a feature
> for a future bus driver sample.
>
> "Eliyas Yakub [MSFT]" <eliyasy@online.microsoft.com> wrote in message
> news:eQtHCoWXDHA.2200@TK2MSFTNGP09.phx.gbl...
> > This seems like a known issue. We have run into this while we were
> > developing the vhidmini sample. Take a look at the readme file
> > src\wdm\hid\vhidmini\vhidmini.htm of server 2003 DDK. It describes the
> > problem. I don't have access to the DDK now.
> >
> > --
> > --
> > -Eliyas
> > This posting is provided "AS IS" with no warranties, and confers no
> rights.
> >
> >
> >
> >
> > "Del Fredricks" <im.sick.of.spam@ask.i.might.tell> wrote in message
> > news:uq761sRXDHA.1940@TK2MSFTNGP10.phx.gbl...
> > >
> > > "Bob Church" <sticky_NO_@_SPAM_stickworks.com> wrote in message
> > > news:3f3178c9.6111595@news.compuserve.com...
> > > > On Wed, 6 Aug 2003 12:15:03 -0500, "Del Fredricks"
> > > > <im.sick.of.spam@ask.i.might.tell> wrote:
> > > >
> > > > >I'm seeing a strange PnP behavior when using DevCon to install my
bus
> > and
> > > > >device drivers which are similar in architecture to the Toaster
> > sample...
> > > >
> > > > It's normal. You'll see 1 or 2 Wizards for each new device you
declare
> > > > in the Query Device Relations call. You'll get 2 for HID devices,
> > > > probably some other classes, too. One is for the PDO that you
created
> > > > for the device, the second is for the corresponding HID device that
> > > > the system creates.
> > > >
> > >
> > > But I only see this behaviour when using the DevCon utility, or
another
> > app
> > > which makes the
> > > UpdateDriversForPnPDevices() call to initiate the installation. If I
> > begin
> > > with the Add/New Hardware Wizard, I do not see this behaviour. As for
> > > classes, the first is my own newly defined bus class, but the
subsequent
> > > children are for Multi-Port Serial Adapters (MPS), and Ports classes
and
> I
> > > never seen this bizare behaviour installing them until I implemented
the
> > bus
> > > architecture like Toaster to precede the installation of the MPS
device.
> > >
> > > Also, the PDO for the new bus device is created by PnP as a result of
> the
> > > UpdateDriversForPnPDevices() call yet it still presents 2 Found New
> > Hardware
> > > dialogs for the single device.
> > >
> > > >
> > > > You get rid of them by setting the SilentInstall flag during the
> > > > IRP_MN_QUERY_CAPABILITIES call, but XP ignores the flag unless the
> > > > driver is signed so you're stuck with them while you're unsigned.
> > > > Also, you probably need to set them in a completion routine. I'm not
> > > > sure with SilentInstall, but SurpriseRemovalOk has to be set in a
> > > > completion routine and I've always just set SilentInstall at the
same
> > > > time.
> > > >
> > >
> > > I'm already setting the SilentInstall in the capabilities and as you
> say,
> > XP
> > > ignores it.
> > >
> > > However, could you please elaborate as to what you mean on the
> completion
> > > routine?
> > >
> > > I'm setting SurpriseRemovalOk in the routine responding to the
> > > IRP_MN_QUERY_CAPABILITIES, but it is not being set anywhere else in my
> > > driver
> > >
> > >
> >
> >
>
>



Re: Multiple "Found New Hardware" wizard pages displayed when running DevCon on Toaster like driver architecture by Eliyas

Eliyas
Wed Aug 13 18:19:40 CDT 2003

Instead of enumerating the child devices when you get the QDR as part of
start-up for the root-enumerated bus, you can defer that to a Dpc-Workitem
and see if the problem persists.

--
-Eliyas
This posting is provided "AS IS" with no warranties, and confers no rights.
http://www.microsoft.com/whdc/hwdev/driver/kb-drv.mspx