What is the equivalent for IoBuildSynchronousFsdRequest in KMDF?

Hi,

There is an option while building IRP using IoBuildSynchronousFsdRequest to
specify synchronization event
that driver would wait on after sending the IRP down the stack.

Q1. Is there an equivalent of such a feature in KMDF?

Q2. Basically I would like to call WdfFdoQueryForInterface() to get
parent bus interface.
Is there a possibility of this function returning STATUS_PENDING
and if so,
is there a sync event as provided by WDM to handle this, ie wait in
driver until I get reply for WdfFdoQueryForInterface() ?

Thanks,
-Praveen

A1. Specify WDF_REQUEST_SEND_OPTION_SYNCHRONOUS in the request send options.
A2. From the docs, this certainly appears to be a synchronous call.

  • Dan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Praveen Kumar
Amritaluru
Sent: Thursday, July 20, 2006 9:37 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] What is the equivalent for IoBuildSynchronousFsdRequest in
KMDF?

Hi,

There is an option while building IRP using IoBuildSynchronousFsdRequest to

specify synchronization event
that driver would wait on after sending the IRP down the stack.

Q1. Is there an equivalent of such a feature in KMDF?

Q2. Basically I would like to call WdfFdoQueryForInterface() to get
parent bus interface.
Is there a possibility of this function returning STATUS_PENDING

and if so,
is there a sync event as provided by WDM to handle this, ie wait in
driver until I get reply for WdfFdoQueryForInterface() ?

Thanks,
-Praveen


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

KMDF has a send or format pattern. If you call
WdfIoTargetSendXxxSynchronously, you are sending a synchronous i/o in
all cases. If want to send an async i/o, you call
WdfIoTargetFormatForXxx and then call WdfRequestSend. As Dan has noted,
you can make this async i/o synchronous by specifying
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS in the send options structure.

Almost all other KMDF DDIS are synchronous, the ones that are not let
you provide a callback which is invoked at the appropriate time (like
the execution function on a DMA transaction). WdfFdoQueryForInterface()
is most certainly synchronous (and if it weren’t, you would have to ask
yourself, “well how would it work if it were async? How would I get my
final answer”)

d

– I can spell, I just can’t type.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan Kyler
Sent: Thursday, July 20, 2006 9:05 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] What is the equivalent for
IoBuildSynchronousFsdRequest in KMDF?

A1. Specify WDF_REQUEST_SEND_OPTION_SYNCHRONOUS in the request send
options.
A2. From the docs, this certainly appears to be a synchronous call.

  • Dan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Praveen Kumar
Amritaluru
Sent: Thursday, July 20, 2006 9:37 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] What is the equivalent for IoBuildSynchronousFsdRequest
in KMDF?

Hi,

There is an option while building IRP using
IoBuildSynchronousFsdRequest to

specify synchronization event
that driver would wait on after sending the IRP down the stack.

Q1. Is there an equivalent of such a feature in KMDF?

Q2. Basically I would like to call WdfFdoQueryForInterface() to get
parent bus interface.
Is there a possibility of this function returning
STATUS_PENDING

and if so,
is there a sync event as provided by WDM to handle this, ie wait in
driver until I get reply for WdfFdoQueryForInterface() ?

Thanks,
-Praveen


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Thanks Dan/Doran for the info.

QUOTE
and if it weren’t, you would have to ask
yourself, “well how would it work if it were async? How would I get my
final answer”)
UNQUOTE

Yes. This is something I could have done, ask myself.

Regards,
-Praveen

“Doron Holan” wrote in message
news:xxxxx@ntdev…
KMDF has a send or format pattern. If you call
WdfIoTargetSendXxxSynchronously, you are sending a synchronous i/o in
all cases. If want to send an async i/o, you call
WdfIoTargetFormatForXxx and then call WdfRequestSend. As Dan has noted,
you can make this async i/o synchronous by specifying
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS in the send options structure.

Almost all other KMDF DDIS are synchronous, the ones that are not let
you provide a callback which is invoked at the appropriate time (like
the execution function on a DMA transaction). WdfFdoQueryForInterface()
is most certainly synchronous (and if it weren’t, you would have to ask
yourself, “well how would it work if it were async? How would I get my
final answer”)

d

– I can spell, I just can’t type.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan Kyler
Sent: Thursday, July 20, 2006 9:05 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] What is the equivalent for
IoBuildSynchronousFsdRequest in KMDF?

A1. Specify WDF_REQUEST_SEND_OPTION_SYNCHRONOUS in the request send
options.
A2. From the docs, this certainly appears to be a synchronous call.

- Dan.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Praveen Kumar
Amritaluru
Sent: Thursday, July 20, 2006 9:37 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] What is the equivalent for IoBuildSynchronousFsdRequest
in KMDF?

Hi,

There is an option while building IRP using
IoBuildSynchronousFsdRequest to

specify synchronization event
that driver would wait on after sending the IRP down the stack.

Q1. Is there an equivalent of such a feature in KMDF?

Q2. Basically I would like to call WdfFdoQueryForInterface() to get
parent bus interface.
Is there a possibility of this function returning
STATUS_PENDING

and if so,
is there a sync event as provided by WDM to handle this, ie wait in
driver until I get reply for WdfFdoQueryForInterface() ?

Thanks,
-Praveen


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer