Re: IWDFIoRequest::ForwardToIoQueue does not return immediately



do not block in the queue you are forwarding to. in the final fwd'ed queue, return and complete the reques later when conditions are correct to complete it

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Andre" <Andre@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message news:3C7DD180-CA4A-4FE2-8834-6CACF16B03F5@xxxxxxxxxxxxxxxx
Hello,

I am using different IoQueues for read, write, and IoControl requests in an
UMDF driver. A request is first handled by an DefaultIoHandler and then
forwarded to its respective queue using the method
IWDFIoRequest::ForwardToIoQueue. I would expect, that this method returns
immediately after it requeued the request, but instead the request is handled
in the context of ForwardToIoQueue. Therefore, the call blocks until the
request has been completed. This happens even when forwarding over multiple
queues. Note, that these queues are configure with
WdfIoQueueDispatchParallel or WdfIoQueueDispatchSequential.

I suppose I could use manual queues from which I can retrieve requests in a
thread separately created by my driver, to decouple the actual processing
from the request. Is this the recommended way?

What is the point of forwarding, if it does not return immediately?

Thanks in advance for any comments or sugestions!

Regards,
Andre



.



Relevant Pages

  • Re: SMTP and E2 w/SP3
    ... no forwarding to the internal Exchange server. ... not problem but a SMTP problem has started. ... The error is the Queue is "An SMTP ... protocol error occurred." ...
    (microsoft.public.exchange.admin)
  • [PATCH] add block IO documentation to tracepoint docbook
    ... queue containing the block operation request ... * @q: queue holding operation ... * data between the @bio data memory area and the IO device. ...
    (Linux-Kernel)
  • [PATCH 03/10] Modify cfq to make use of flat elevator fair queuing
    ... Per block device queue structure ... struct list_head cic_list; ... * We regard a request as SYNC, if it's either a read or has the SYNC bit ... * Called when the cfqq no longer has requests pending, ...
    (Linux-Kernel)
  • Re: Event handling mechanism in Windows
    ... In case of PS/2 style keyboard, the interrupt is generated by ... APC to queue this APC request to? ...
    (microsoft.public.win32.programmer.kernel)
  • Re: which pattern to use...
    ... Pick from queue. ... readup and it says pass it as string, then parse the string in the ... Then Request gets the next module, checks its type, ... Module.processwith the data packet object. ...
    (comp.object)

Loading