Hi,
I’ve read the post about “How to enable USB selective suspend and system wake in the UMDF driver for a USB device”. According to it, if the driver doesn’t claim power policy ownership, then only a few modifications in the inf are needed in order to enable Selective Suspend.
On the other hand, I also read “Power saving of using USB Selective Suspend Support Whitepaper”. In this document, there is a code walkthrough (although in WDM) over submitting power requests and registering on callbacks (such as Idle Notification Callback).
My question is, does WinUsb handle all of this, and as specified above, I only need to do a few changes in the inf (my code is based on the FX2 sample), or do I need to “translate” this WDM code to UMDF, send these requests and register to these callbacks.
Another question is - my device has 2 HID endpoints and one bulk.
I understand that the HIDClass driver will deal, without my interference, with the Selective Suspend of the 2 HID end points. My UMDF driver will handle Selective Suspend for the bulk endpoint, according to what specified above. Is this enough? Does the fact that there are two drivers involved for this device means that I should look at it as two different devices? Or do I need to look at the device as a whole? That is, catch requests sent by the USB Host Controller Driver and deal with them in my UMDF bulk driver, and somehow disable the whole device (by sending a message to the device) or do I need not interfere with normal control flow (meaning the requests are sent directly from the USB Host Controller Driver to the device, same as in the enumeration process).
Thanks,
Gadi