Vista does not have asynchronous creates. Creates are still synchronous
and i/o manager waits for them to complete. In case of mini-filters,
filter manager waits for them to complete. You could return status
pending for creates before vista, and you can in vista as well.
The only difference is that in Vista, if you set a cancel routine and
return pending, it will be invoked. Prior to Vista, cancel routines for
creates were never invoked, so creates were un-cancellable.
SO FLT_PREOP_SYNCHRONIZE has fundamentally not changed, and the same
recommendations apply: but in addition filter manager will ensure that
that operation for which FLT_PREOP_SYNCHRONIZE was returned (and for
creates implicitly), it will wait for the i/o to complete in a
cancellable way and cancel the i/o (and the create). This is something
that filter manager will do Vista release.
Ravi
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dan Kyler
Sent: Thursday, May 04, 2006 9:00 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] Minifilter cache
FYI, I have filed a beta bug against the WDK docs for the inconsistent
wording between the different sections.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Lyndon J. Clarke
Sent: Thursday, May 04, 2006 9:28 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] Minifilter cache
That is the page and on the page you mention I do nto have the word
“asynchronous” howwever that para seems to refer only to performance. I
guess you agree with the comment I said in a response to another poster
in
the thread that reading the documentation can be an art form 
“Dan Kyler” wrote in message news:xxxxx@ntfsd…
>I see it now…“Returning FLT_PREOP_SYNCHRONIZE” section.
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Dan Kyler
> Sent: Thursday, May 04, 2006 8:54 AM
> To: Windows File Systems Devs Interest List
> Subject: RE: [ntfsd] Minifilter cache
>
>
> Hi Lyndon,
>
>>I had wondered if the question of filter manager pre- and post- create
>>callbacks and vista asynchronous creates has arisen at recent
>>plugfest?
>
> While the issue of asynch creates did come up, I don’t recall any
> discussion
> of it in this context–just that if your driver is holding a create,
you
> need to be prepared to receive a cancel on it.
>
>>In fact the following paragraph you refer to does say “asynchronous
>>read or
>
>>write operations” in both 3790.1830 and 5365 
>
> The word “asynchronous” appears have been excluded from my copy of
> 3790.1830
> and 5308. Are we looking at the same section?
> PFLT_PRE_OPERATION_CALLBACK,
> Comments section, penultimate paragraph?
>
> - Dan.
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Lyndon J.
> Clarke
> Sent: Thursday, May 04, 2006 8:36 AM
> To: Windows File Systems Devs Interest List
> Subject: Re:[ntfsd] Minifilter cache
>
>
> Dan
>
> I had wondered if the question of filter manager pre- and post- create
> callbacks and vista asynchronous creates has arisen at recent
> plugfest?
>
> In fact the following paragraph you refer to does say “asynchronous
> read
> or
> write operations” in both 3790.1830 and 5365 
>
> Cheers
> Lyndon
>
> “Dan Kyler” wrote in message news:xxxxx@ntfsd…
>> Hi Lyndon,
>>
>> Thanks for the pointer to that. I had never noticed that statement
>> before. I wonder how that’s going to play with Vista’s asynchronous
>> creates?
>>
>> I see that the following paragraph also says one should never
>> synchronize reads and writes. I have always treated this as I did
>> with legacy filters, which is to never synchronize ASYNCHRONOUS reads
>> and writes.
>>
>> - Dan.
>>
>> -----Original Message-----
>> From: xxxxx@lists.osr.com
>> [mailto:xxxxx@lists.osr.com] On Behalf Of Lyndon J.
>> Clarke
>> Sent: Thursday, May 04, 2006 7:46 AM
>> To: Windows File Systems Devs Interest List
>> Subject: Re:[ntfsd] Minifilter cache
>>
>>
>> Dan
>>
>> Note the docs says “Minifilters should not return
>> FLT_PREOP_SYNCHRONIZE for
>> create operations, because these operations are already synchronized
by
>> the
>> Filter Manager. If a minifilter has registered preoperation and
>> postoperation callback routines for IRP_MJ_CREATE operations, the
>> post-create callback is called at IRQL PASSIVE_LEVEL, in the same
thread
>> context as the pre-create callback.”. I dont think this is good, I
agree
>> code would be clearer if pre-create callback returns
>> FLT_PREOP_SYNCHRONIZE,
>> I just say, this is what the docs says.
>>
>> Cheers
>> Lyndon
>>
>>
>> “Dan Kyler” wrote in message news:xxxxx@ntfsd…
>>> Creates are special. Because they are handled synchronously by both
>>> Io and the file system (in current OS’s), there is no penalty
>>> attached to synchronizing the completion back to the dispatch
>>> routine in a legacy filter (like FltMgr). I presume that is how
>>> FltMgr guarantees PASSIVE_LEVEL for post-create callbacks.
>>> Nevertheless, I think it is clearer, more correct, and more likely
>>> to always work in the future if you
>>
>>> return FLT_PREOP_SYNCHRONIZE from the pre-create callback when you
>>> need a PASSIVE_LEVEL post-create.
>>>
>>> The CTX sample, when it encounters a failure in the post-create
>>> callback, throws up it’s hands, says “oh, well”, and continues,
>>> ignoring the failure. It is a sample. It is not robust. Tony’s
>>> method is much better for a production filter.
>>>
>>> - Dan.
>>>
>>> ----- Original Message -----
>>> From: “Tony Mason”
>>> To: “Windows File Systems Devs Interest List”
>>> Sent: Thursday, May 04, 2006 6:43 AM
>>> Subject: RE: [ntfsd] Minifilter cache
>>>
>>>
>>> I thought as much (I seem to recall a comment about how this is
>>> going to play in Vista with its support for asynchronous create
>>> operations.)
>>>
>>> Note, however, that just because one is called at PASSIVE_LEVEL and
>>> in the correct context, there is still no guarantee the allocation
>>> will work at that point - which still leaves the ugly recovery
>>> semantics (and is why I originally allocated everything in dispatch
>>> and discarded it in free if I did not need it.)
>>>
>>> Failures like this only show up when testing with memory allocation
>>> failure logic or when a real system is melting down - exactly the
>>> WRONG time to be testing your error recovery logic for the first
>>> time.
>>>
>>> Regards,
>>>
>>> Tony
>>>
>>> Tony Mason
>>> Consulting Partner
>>> OSR Open Systems Resources, Inc.
>>> http://www.osr.com
>>>
>>>
>>> —
>>> Questions? First check the IFS FAQ at
>>> https://www.osronline.com/article.cfm?id=17
>>>
>>> You are currently subscribed to ntfsd as: unknown lmsubst tag
>>> argument: ‘’ To unsubscribe send a blank email to
>>> xxxxx@lists.osr.com
>>>
>>
>>
>>
>> —
>> Questions? First check the IFS FAQ at
>> https://www.osronline.com/article.cfm?id=17
>>
>> You are currently subscribed to ntfsd as: xxxxx@privtek.com To
>> unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>>
>
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@privtek.com To
> unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@privtek.com To
> unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
—
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@privtek.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
—
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com