Agreed… Yes, you can…
Jamey Kirby
StorageCraft, inc.
xxxxx@storagecraft.com
www.storagecraft.com
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: Friday, May 24, 2002 9:10 AM
To: File Systems Developers
Subject: [ntfsd] Re: STATUS_PENDING for IRP_MJ_CREATE
Create IRPs sent from the I/O Manager are synchronous. NOTHING prevents
some other kernel component from sending a create operation and NOT
blocking.
It is a dangerous thing to assert that because nobody does something it
cannot be done that way. And, as I pointed out earlier, there is at
least
ONE case of asynchronous create, as strange as it might be.
In fact, I find myself tempted to write an NT Insider article for a
fiendish
driver that never asks for synchronous behavior at all. I mean, I could
see
good reasons for asynchronous create (e.g., suppose you have a slow-open
device, like something that forces migration back in from the tape
catalog)
that would benefit from asynchronous behavior. But (of course) since
“create is synchronous” has now become the rule, you have to use
multiple
threads (complicating serialization and introducing a different class of
bugs) to simulate this behavior.
Remember: the original design was 100% asynchronous. Anyone who assumes
that just because they set the IRP_SYNCHRONOUS_API bit, or the
FO_SYNCHRONOUS_IO bit in the file object or EVEN the
IRP_SYNCHRONOUS_PAGING_IO bit, they are going to GET synchronous
behavior is
broken. Synchronous behavior has been added for performance reasons.
A common mistake in our business is to think that the world is only as
big
as we can observe at the current time. I actually admire the original
NT
development team’s willingness to attempt to build a very broad and
expansive architecture. Having done this on other projects, I know how
difficult it is to do well - leave enough room for future expansion,
without
making the interface so incredibly complex that nobody can use or
implement
it. (Hmm. I guess I’ve heard too many people saying “what a stupid OS”
this
week. Time to put the soapbox away.)
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
Hope to see you at the next OSR file systems class October 7, 2002!
-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Friday, May 24, 2002 11:39 AM
To: File Systems Developers
Subject: [ntfsd] Re: STATUS_PENDING for IRP_MJ_CREATE
Can a file system filter driver return STATUS_PENDING for
IRP_MJ_CREATE
and complete the IRP in another thread.
My file system filter driver wants to queue the IRP_MJ_CREATE for a
Why not do all of this synchronously in CREATE dispatch with blocking?
CREATE is synchronous anyway.
Max
You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to %%email.unsub%%
You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
To unsubscribe send a blank email to %%email.unsub%%