How to handle IRP_MN_CANCEL_REMOVE_DEVICE ?

Hi
Can somebody help me?
I am writing a function driver for PCI controller. When device is
disabled from device manager, driver gets IRP_MN_QUERY_REMOVE_DEVICE and
IRP_MN_REMOVE_DEVICE in normal condition.

Under the same condition, when driver is busy with device IRPs, it
returns STATUS_UNSUCCESSFUL for IRP_MN_QUERY_REMOVE_DEVICE. It maintains
the device state without any change.
Following this Pnp manager sends IRP_MN_CANCEL_REMOVE_DEVICE, this IRP
is passed to lower driver without any change(also setting
status=STATUS_SUCCESS). After this OS prompts for a system restart dialog
asking user to restart to enable the system setting changes.

Is this expected behavior under Win2000? Are am I missing something?

with regards
vreddy


You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> Under the same condition, when driver is busy with device IRPs, it

returns STATUS_UNSUCCESSFUL for IRP_MN_QUERY_REMOVE_DEVICE. It

Why not pend IRP_MN_QUERY_REMOVE_DEVICE and complete it later when all
device IRPs will be completed?

Max


You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com