UMDF Selective Suspend

Hi All,

I have developed a UMDF based driver that enables the USB Selective suspend
feature via the inf. The device in question is a Multifunction printer. I
would like to verify if the device is getting suspended.
Currently I am using a USB protocol analyzer but i am not able to see any
packets being transferred to suspend the device.

The following are the entries in my inf:

[UMSelSusp_Device_AddReg]
HKR,“LowerFilters”,0x00010008,“WinUsb” ; FLG_ADDREG_TYPE_MULTI_SZ |
FLG_ADDREG_APPEND
HKR,“DeviceIdleEnabled”,0x00010001,1
HKR,“SystemWakeEnabled”,0x00010001,1
HKR,“DefaultIdleTimeout”,0x00010001,7000

Please let me know if I am missing out anything.

Thanks
Abdul

Abdul Qader mohammed wrote:

I have developed a UMDF based driver that enables the USB Selective
suspend feature via the inf. The device in question is a Multifunction
printer. I would like to verify if the device is getting suspended.
Currently I am using a USB protocol analyzer but i am not able to see
any packets being transferred to suspend the device.

Selective suspend does not involve the transmission of any packets to
your device. The hub gets the command, and it will simply cease all bus
activity to your device. When your device sees the bus go idle for 3ms,
it is supposed to go into its suspend state automatically.

If you are using a hardware bus analyzer, I would expect it to see that
transition, or at least the cessation of SOF packets for 3ms.

If you are using a software analyzer, it might not.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim,

Thanks for the reply.
I am using Wnusb as a lower filter driver (as most UMDF usb drivers do) and
have enabled the Selective suspend feature from the inf.

[UMSelSusp_Device_AddReg]
HKR,“LowerFilters”,0x00010008,“WinUsb” ; FLG_ADDREG_TYPE_MULTI_SZ |
FLG_ADDREG_APPEND
HKR,“DeviceIdleEnabled”,0x00010001,1
HKR,“SystemWakeEnabled”,0x00010001,1
HKR,“DefaultIdleTimeout”,0x00010001,7000

However I find that the SOF frame when I check with the Hardware analyzer.
So it looks like the Winusb is not trying to suspend the device.
Can you tell me if I am missing something? I have done this as per
Microsofts UMDF Selective suspend documentation.
The UMDF driver i have implemented is a non Power managed queue.

Would really appreciate your help…

Thanks
Abdul

is the printer function selectively suspending (or have SS enabled for it?)? all functions in a multi function device must enable SS before the functions are told to turn off. do you see any of your power down callbacks invoked while the machine is in s0?

d

Doron,

I am working with Single Function Printer to find out if WinUsb is
suspending the device. I placed debugstrings in the D0Exit callback provided
by the IPnPCallback interface. My timeout was set to 7 secs.But I am not
getting any call to the D0Exit even after 7 secs.

Thanks
Abdul

On Mon, Jan 3, 2011 at 1:59 PM, wrote:

> is the printer function selectively suspending (or have SS enabled for
> it?)? all functions in a multi function device must enable SS before the
> functions are told to turn off. do you see any of your power down callbacks
> invoked while the machine is in s0?
>
> d
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Doron,

Does Winusb suspend a device when it is acting as a LowerFilter?
In the UMDF driver I am not setting it as a PPO so that should make Winusb a
PPO by default right?

Thanks
Abdul

On Mon, Jan 3, 2011 at 5:02 PM, Abdul Qader mohammed <
xxxxx@gmail.com> wrote:

Doron,

I am working with Single Function Printer to find out if WinUsb is
suspending the device. I placed debugstrings in the D0Exit callback provided
by the IPnPCallback interface. My timeout was set to 7 secs.But I am not
getting any call to the D0Exit even after 7 secs.

Thanks
Abdul

On Mon, Jan 3, 2011 at 1:59 PM, wrote:
>
>> is the printer function selectively suspending (or have SS enabled for
>> it?)? all functions in a multi function device must enable SS before the
>> functions are told to turn off. do you see any of your power down callbacks
>> invoked while the machine is in s0?
>>
>> d
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>

Hi All,

Has anyone encountered any issues with Winusb and selectve suspend ?
I am using the UMDF model with Winusb as a lower filter and as a PPO.Somehow
the suspend doesnt seem to be happening even after the timeout I specified
in the inf.
My deadline is approaching fast and I need to let my client know if there
are any known issues with Winusb.
Appreciate any help in this regard…

Abdul
On Tue, Jan 4, 2011 at 11:00 AM, Abdul Qader mohammed <
xxxxx@gmail.com> wrote:

Doron,

Does Winusb suspend a device when it is acting as a LowerFilter?
In the UMDF driver I am not setting it as a PPO so that should make Winusb
a PPO by default right?

Thanks
Abdul

On Mon, Jan 3, 2011 at 5:02 PM, Abdul Qader mohammed <
xxxxx@gmail.com> wrote:

> Doron,
>
> I am working with Single Function Printer to find out if WinUsb is
> suspending the device. I placed debugstrings in the D0Exit callback provided
> by the IPnPCallback interface. My timeout was set to 7 secs.But I am not
> getting any call to the D0Exit even after 7 secs.
>
> Thanks
> Abdul
>
>
> On Mon, Jan 3, 2011 at 1:59 PM, wrote:
>>
>>> is the printer function selectively suspending (or have SS enabled for
>>> it?)? all functions in a multi function device must enable SS before the
>>> functions are told to turn off. do you see any of your power down callbacks
>>> invoked while the machine is in s0?
>>>
>>> d
>>>
>>> —
>>> NTDEV is sponsored by OSR
>>>
>>> For our schedule of WDF, WDM, debugging and other seminars visit:
>>> http://www.osr.com/seminars
>>>
>>> To unsubscribe, visit the List Server section of OSR Online at
>>> http://www.osronline.com/page.cfm?name=ListServer
>>>
>>
>>
>

?Take a look at this blog:
http://blogs.msdn.com/b/peterwie/archive/2007/03/28/how-to-enable-usb-selective-suspend-and-system-wake-in-the-umdf-driver-for-a-usb-device.aspx

-kumar

“Abdul Qader mohammed” wrote in message
news:xxxxx@ntdev…
Hi All,

Has anyone encountered any issues with Winusb and selectve suspend ?
I am using the UMDF model with Winusb as a lower filter and as a PPO.Somehow
the suspend doesnt seem to be happening even after the timeout I specified
in the inf.
My deadline is approaching fast and I need to let my client know if there
are any known issues with Winusb.
Appreciate any help in this regard…

Abdul