Issue with KMDF Bus Driver Entering to low power state by Certification(WHQL) App

My driver is KMDF Bus driver and registers with the NDIS for Protocol function as a lower edge into the same bus driver. The problem is that when Certification software (WHQL) is forcing only the Bus driver(Not the whole system) to enter into the low power state , but not the NDIS protocol driver component which causes the inconsistencies (BSOD) as Bus driver memory getting paged out. All this works fine when system whole goes to standby etc. in that case system is making the protocol driver component as well as bus driver to sleep/hibernate.

How to make the registered protocol driver component to enter to the sleep as Bus Driver is entering. I believe WHQL has no idea that Bus driver has registered with the NDIS Protocol. Any help appreciated.

Regards,
Tarun Singh

It is hard to understand how things are laid out in terms of parent/child. Can you please illustrate that? also, I am not sure why you think it is a problem with the bus driver memory being paged out…

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Friday, May 07, 2010 10:32 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Issue with KMDF Bus Driver Entering to low power state by Certification(WHQL) App

My driver is KMDF Bus driver and registers with the NDIS for Protocol function as a lower edge into the same bus driver. The problem is that when Certification software (WHQL) is forcing only the Bus driver(Not the whole system) to enter into the low power state , but not the NDIS protocol driver component which causes the inconsistencies (BSOD) as Bus driver memory getting paged out. All this works fine when system whole goes to standby etc. in that case system is making the protocol driver component as well as bus driver to sleep/hibernate.

How to make the registered protocol driver component to enter to the sleep as Bus Driver is entering. I believe WHQL has no idea that Bus driver has registered with the NDIS Protocol. Any help appreciated.

Regards,
Tarun Singh


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 Doron,

There is no parent/child relationship here when I register to the NDIS for protocol function. Here is what we do when Bus driver loads in Bus_EvtDeviceAdd()
Bus_EvtDeviceAdd()
{
:::::::::::
//last statement/code on this function
NdisRegisterProtocolDriver(); <- Lower Edge I am talking here
}

We create Child PDO when there is new Binding. What I saw in this testing that Binding came after the Bus Driver already entered into the low power state. I don’t want to unregister with the NDIS when Bus driver enters into the low power state because it will created problem for the child PDO (goes into the low power state as well) which is sitting on top of one binding which will go away.

Please let me know if you need more details.

Thanks for your help!

-Tarun

Are you marking the WDFDEVICE as a filter? If yes, KMDF no longer guarantees that a parent WDFDEVICE is in the D0 state when its children are in a D0 state b/c the parent is not the power policy owner and thus cannot force the parent to be in d0 at the right time

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Friday, May 07, 2010 11:20 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Issue with KMDF Bus Driver Entering to low power state by Certification(WHQL) App

Hi Doron,

There is no parent/child relationship here when I register to the NDIS for protocol function. Here is what we do when Bus driver loads in Bus_EvtDeviceAdd()
Bus_EvtDeviceAdd()
{
:::::::::::
//last statement/code on this function
NdisRegisterProtocolDriver(); <- Lower Edge I am talking here
}

We create Child PDO when there is new Binding. What I saw in this testing that Binding came after the Bus Driver already entered into the low power state. I don’t want to unregister with the NDIS when Bus driver enters into the low power state because it will created problem for the child PDO (goes into the low power state as well) which is sitting on top of one binding which will go away.

Please let me know if you need more details.

Thanks for your help!

-Tarun


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,

No, WDF device is not marked as filter. The Bus driver WdfDevice Initialization is very similar to toaster bus example.

-Tarun