I am maintaining WDF-based device drivers, and received a requirement from
a customer to comply with
a specific behavior when handling IRP_MN_START_DEVICE and
IRP_QUERY_DEVICE_RELATIONS.
This requirement appears (as a recommendation) in WDK documentation:
“On Windows Vista and later operating systems, we recommend that drivers
always pend the IRP_MN_START_DEVICE IRP
and complete its processing later. This order enables the system to
process device restarts asynchronously.
(On operating systems before Windows Vista, drivers can return
STATUS_PENDING from their dispatch routines,
but the PnP manager does not overlap the device restart with any other
operation.)”
“On Windows Vista and later operating systems, we recommend that drivers
always pend the IRP_MN_QUERY_DEVICE_RELATIONS IRP
and complete its processing later. This order enables the system to
process bus relation queries asynchronously.
(On operating systems before Windows Vista, drivers can return
STATUS_PENDING from their dispatch routines,
but the PnP manager does not overlap the bus relation query with any other
operation.)”
The problem is that these drivers do not handle IRPs directly at all,
since they rely on handling by WDF,
which as I understand is a combination of WDF default actions and calls to
PnP callbacks, some of which are
implemented in these drivers.
My question is - does WDF comply with the requirement above ?
Alternatively, is it correct to say that regarding
WDF-based drivers, the requirement is invalid ?
If the requirement is legitimate for WDF-based drivers as well - which
callbacks do I need to implement or modify
in order to comply ?
Thanks,
Galit
===========================================================================================
The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original sender of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such a person, please kindly reply to the sender indicating this fact and delete all copies of it from your computer and network server immediately. Your cooperation is highly appreciated. It is advised that any unauthorized use of confidential information of Winbond is strictly prohibited; and any information in this email irrelevant to the official business of Winbond shall be deemed as neither given nor endorsed by Winbond.