incorrect oplock request processing by srv?

Looking at smb Ethereal traces and Filespy data on a Win2K3 server, one
behavior of SRV seems incorrect - with a filter driver that supports LEVEL1
and LEVEL2 but not BATCH oplocks.

  1. CIFS client sends a CREATE_AND_X request with BATCH and LEVEL1 oplock
    flags set.
  2. SRV first sends BATCH oplock request to the filter driver.
  3. Filter driver denies BATCH.
  4. SRV does not request LEVEL1, instead requests for LEVEL 2.

Is this correct behavior by SRV?
Is there a way to make SRV downgrade to LEVEL1 when BATCH is not available?

Thanks
–suresh

Just an update: with a Windows98 client, which sends OPEN_AND_X request with
BATCH and LEVEL1 flags set, SRV does not even attempt any downgrade (i.e.
not even LEVEL2) when BATCH is denied by the FSD.

–suresh

“Suresh Gopalakrishnan” wrote in message
news:xxxxx@ntfsd…
> Looking at smb Ethereal traces and Filespy data on a Win2K3 server, one
> behavior of SRV seems incorrect - with a filter driver that supports
> LEVEL1 and LEVEL2 but not BATCH oplocks.
>
> 1. CIFS client sends a CREATE_AND_X request with BATCH and LEVEL1 oplock
> flags set.
> 2. SRV first sends BATCH oplock request to the filter driver.
> 3. Filter driver denies BATCH.
> 4. SRV does not request LEVEL1, instead requests for LEVEL 2.
>
> Is this correct behavior by SRV?
> Is there a way to make SRV downgrade to LEVEL1 when BATCH is not
> available?
>
> Thanks
> --suresh