Hi,
I have a bus driver that enumerates two childs: A and B. The first
enumerated child (A) registers an interface “AIF”. The second child (B) is
then enumerated by the bus driver and it registers himself for Pnp
notification with IoRegisterPlugPlayNotification for the
EventCategoryDeviceInterfaceChange on the interface “AIF”. When I’m testing
this code when Windows is started, everything is working fine (I receive
one notifcation that says that the interface “AIF” is arrived). When I
leave my drivers installed and I reboot, the child B is receiving two Pnp
notifications that the interface “AIF” is arrived, event if the child A has
registered his interface only once. The passed structure into my
notifcation callback is identical everytime.
I am sure that my child A registers and sets his interface state to true
only once.
I would like to know why the pnp manager sends two notifications for the
same arrival at boot time only.
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Hello,
A function driver typically enables an instance of a previously
registered device interface class after lower drivers successfully
started the device in response to an IRP_MN_START_DEVICE. It could be
that IRP_MN_START_DEVICE was sent *again* to Device A, e.g. device may
be restarting after being stopped for resource rebalancing and so the
driver will again re-enable the instance for the interface that was
previously enabled. You can use IoGetDeviceInterfaces to get a list of
all enabled device interface instances of a particular device interface
class to check if the instance was previously enabled or not.
Thanks
Khalid
This posting is provided “AS IS” with no warranties, and confers no
rights.
-----Original Message-----
From: Daniel Simard [mailto:xxxxx@matrox.com]
Sent: Wednesday, December 05, 2001 6:19 AM
To: NT Developers Interest List
Subject: [ntdev] Pnp Notification between bus childs
Hi,
I have a bus driver that enumerates two childs: A and B. The first
enumerated child (A) registers an interface “AIF”. The second child (B)
is
then enumerated by the bus driver and it registers himself for Pnp
notification with IoRegisterPlugPlayNotification for the
EventCategoryDeviceInterfaceChange on the interface “AIF”. When I’m
testing
this code when Windows is started, everything is working fine (I receive
one notifcation that says that the interface “AIF” is arrived). When I
leave my drivers installed and I reboot, the child B is receiving two
Pnp
notifications that the interface “AIF” is arrived, event if the child A
has
registered his interface only once. The passed structure into my
notifcation callback is identical everytime.
I am sure that my child A registers and sets his interface state to true
only once.
I would like to know why the pnp manager sends two notifications for the
same arrival at boot time only.
You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com