usb stack D0Entry/Exit

Hi All,

I would like to get some clarification on what you can and cant do in
D0Entry/Exit on the usb stack.

I have been told that in D0Entry one must use asynchronous calls to
avoid deadlocks (which kinda makes sense as two different devices could
block on each other I guess) and also that one must use synchronous
calls in D0Exit (as you need to finish the operation before the whole
stack goes to bed).

Does anyone have the details on this and/or can point me to any docs?

Cheers

Dan

Who told you that d0enter must make async calls to avoid deadlocks. 2 different devices cannot block each other in this fashion. D0enter can certainly make sync calls to initialize the device. If you are going to have long running always pending io (aka a continuous reader) then that should be async

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Dan Newton
Sent: Tuesday, January 05, 2010 2:10 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] usb stack D0Entry/Exit

Hi All,

I would like to get some clarification on what you can and cant do in
D0Entry/Exit on the usb stack.

I have been told that in D0Entry one must use asynchronous calls to
avoid deadlocks (which kinda makes sense as two different devices could
block on each other I guess) and also that one must use synchronous
calls in D0Exit (as you need to finish the operation before the whole
stack goes to bed).

Does anyone have the details on this and/or can point me to any docs?

Cheers

Dan


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

> Who told you that d0enter must make async calls to avoid deadlocks.

A contractor.

Thanks for that clarification (it certainly simplifies things), so a
port reset in D0Entry is ok (I know it’s not ideal but I am trying to
work around a firmware bug that cant be fixed in shipped product)?

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-395041-
xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, January 06, 2010 11:31 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] usb stack D0Entry/Exit

Who told you that d0enter must make async calls to avoid deadlocks. 2
different devices cannot block each other in this fashion. D0enter
can
certainly make sync calls to initialize the device. If you are going
to have long running always pending io (aka a continuous reader) then
that should be async

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-395037-
xxxxx@lists.osr.com] On Behalf Of Dan Newton
Sent: Tuesday, January 05, 2010 2:10 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] usb stack D0Entry/Exit

Hi All,

I would like to get some clarification on what you can and cant do in
D0Entry/Exit on the usb stack.

I have been told that in D0Entry one must use asynchronous calls to
avoid deadlocks (which kinda makes sense as two different devices
could
block on each other I guess) and also that one must use synchronous
calls in D0Exit (as you need to finish the operation before the whole
stack goes to bed).

Does anyone have the details on this and/or can point me to any docs?

Cheers

Dan


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


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

A port reset would be OK, but like you said, not ideal

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Dan Newton
Sent: Tuesday, January 05, 2010 3:14 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] usb stack D0Entry/Exit

Who told you that d0enter must make async calls to avoid deadlocks.

A contractor.

Thanks for that clarification (it certainly simplifies things), so a
port reset in D0Entry is ok (I know it’s not ideal but I am trying to
work around a firmware bug that cant be fixed in shipped product)?

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-395041-
xxxxx@lists.osr.com] On Behalf Of Doron Holan
Sent: Wednesday, January 06, 2010 11:31 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] usb stack D0Entry/Exit

Who told you that d0enter must make async calls to avoid deadlocks. 2
different devices cannot block each other in this fashion. D0enter
can
certainly make sync calls to initialize the device. If you are going
to have long running always pending io (aka a continuous reader) then
that should be async

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-395037-
xxxxx@lists.osr.com] On Behalf Of Dan Newton
Sent: Tuesday, January 05, 2010 2:10 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] usb stack D0Entry/Exit

Hi All,

I would like to get some clarification on what you can and cant do in
D0Entry/Exit on the usb stack.

I have been told that in D0Entry one must use asynchronous calls to
avoid deadlocks (which kinda makes sense as two different devices
could
block on each other I guess) and also that one must use synchronous
calls in D0Exit (as you need to finish the operation before the whole
stack goes to bed).

Does anyone have the details on this and/or can point me to any docs?

Cheers

Dan


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


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


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

Daniel Newton wrote:

> Who told you that d0enter must make async calls to
> avoid deadlocks.

A contractor.

Thanks, I needed that laugh :slight_smile:

Particularly since “contractor” is the current US Military euphemism for
“mercenary.”

(I needed a laugh too.)


Jake Oshins
Hyper-V I/O Architect
Windows Kernel Group

This post implies no warranties and confers no rights.


wrote in message news:xxxxx@ntdev…
> Daniel Newton wrote:
>
>>> Who told you that d0enter must make async calls to
>>> avoid deadlocks.
>>
>> A contractor.
>
> Thanks, I needed that laugh :slight_smile:
>