What is the difference between using IoBuildSynchronousFsdRequest and
IoBuildAsynchronousFsdRequest when I use with the last one’s completion
routine an event object and return more processing required then wait for
the object then complete the request.
A read will be made either synch or asynch after the operation has been
completed (when completionroutine called).
I might have misunderstood something, hope someone can clarify.
The major difference is that if you use IoBuildAsynchronousFsdRequest
then it’s you responsibility to free the IRP after its completion.
Another difference is that IRPs built with IoBuildSynchronousFsdRequest
are queued to the current thread.
Summarizing:
You must free the IRP build with IoBuildAsynchronousFsdRequest
You must not free the IRP build with IoBuildSynchronousFsdRequest
Read the DDK on those (comments section). Although it’s not very
clear but gives you an idea on the differences.
-----Original Message-----
From: lallous [mailto:xxxxx@lgwm.org]
Sent: Monday, December 15, 2003 2:25 AM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] IoBuildSynchronousFsdRequest,
IoBuildAsynchronousFsdRequest and using an event object
Hello,
What is the difference between using IoBuildSynchronousFsdRequest and
IoBuildAsynchronousFsdRequest when I use with the last one’s completion
routine an event object and return more processing required then wait
for
the object then complete the request.
A read will be made either synch or asynch after the operation has been
completed (when completionroutine called).
I might have misunderstood something, hope someone can clarify.
The first one links the IRP to the current thread, and requires to be
completed up to the very end. You cannot call IoFreeIrp on it. The event you
have specified in IoxxxxRequest is the mean to wait for it.
The second one cannot be “completed up to the very end”, and requires some
completion routine to return STATUS_MORE_PROCESSING_REQUIRED and call
IoFreeIrp. Waiting on event signaled in the completion routine is the way to
go.
----- Original Message -----
From: “lallous” Newsgroups: ntfsd To: “Windows File Systems Devs Interest List” Sent: Monday, December 15, 2003 1:24 PM Subject: [ntfsd] IoBuildSynchronousFsdRequest, IoBuildAsynchronousFsdRequest and using an event object
> Hello, > > What is the difference between using IoBuildSynchronousFsdRequest and > IoBuildAsynchronousFsdRequest when I use with the last one’s completion > routine an event object and return more processing required then wait for > the object then complete the request. > > A read will be made either synch or asynch after the operation has been > completed (when completionroutine called). > > I might have misunderstood something, hope someone can clarify. > > – > Elias > > > > — > Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17 > > You are currently subscribed to ntfsd as: xxxxx@storagecraft.com > To unsubscribe send a blank email to xxxxx@lists.osr.com