This is a work around for a bug in the USB stack ( I forget where, I think
someone mentioned the KB article that deals with it). You would normally
set it on the way down and forget it. However, the USB Bus driver (I think)
erroneously resets the flag. So, as a work around, we set it on the way up
also.
Marc Reinig
System Solutions
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Evan Hillman
Subject: [ntdev] RE: W2K Unplug warning message question.
I would think that if you set the flag on the way down, and something under
you changed it, one would assume that the device under you knew something
you didn’t. So you set the flag as your ‘vote,’ then the lower layers can
outvote you if need be.
If you set it again on the way up, you may be overriding an important
change.
Or, on the other hand, if this is a situation where you should have the
final say, I would think that you would only set it on the way up. I’d
argue that if something is relevent to pass down, don’t change it on the way
up. And if it has no relevence on the way down, there is no point in
setting it on the way down.
I’m not sure how clear I am here…but in short, I think if you are setting
the flag twice you may be breaking something.
-Evan Hillman
Don’t forget to set this on the IRP’s way down AND on it’s way back up.
Marc Reinig
System Solutions
Subject: [ntdev] RE: W2K Unplug warning message question.
Maybe you have to set this flag?:
typedef struct _DEVICE_CAPABILITIES {
…
ULONG SurpriseRemovalOK:1;
…
} DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;
This structure is returned in response to IRP_MN_QUERY_CAPABILITIES.
You are currently subscribed to ntdev as: xxxxx@pacbell.net
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