On Tue, Aug 23, 2011 at 10:43 PM, Hongwei Sun <hongw...@microsoft.com> wrote:
> Steve,
>
>   Windows CE is not within the scope of protocol documentation, such as  
> MS-SMB and MS-CIFS.   Therefore it is understandable that it doesn't behave 
> as specified in the protocol documents.

This is more about what Windows clients do not about the WindowsCE server.

Clearly windows clients works (to WindowsCE server) - and it appears
it is because they choose levels carefully to avoid the WindowsCE
server problems

instead of
FIND_FILE_DIRECTORY_INFO (level 257)
nor
FIND_FILE_FULL_DIRECTORY_INFO (258)
nor
FIND_FILE_ID_FULL_DIRECTORY_INFO (262)

Windows clients (XP, Vista, etc) know enough to send
SMB_FIND_FILE_BOTH_DIRECTORY_INFO (260)

which doesn't make sense since FIND_FILE_BOTH_DIRECTORY_INFO requires
the server to return the short name (which no longer seems relevant to
windows clients but they are requesting it - even of WindowsCE).

Windows is NOT returning operation not supported (or the eqiuvalent)
to the application, rather it is selectively choosing to use level 260
(rather than the 3 other more logical find levels)

So the question is - how does Windows (clients) determine which level
to request on FindFirst - in particular when not to use 257, 258 or
262 and fall back to 260?

>   As far as Windows systems, as per 2.2.2.3.1 MS-CIFS, for Windows NT and 
> earlier, the Find information levels supported are clearly specified
>
>   SMB_INFO_STANDARD                                     0x0001    (LANMAN2.0)
>   SMB_INFO_QUERY_EA_SIZE                           0x0002   (LANMAN2.0)
>   SMB_INFO_QUERY_EAS_FROM_LIST          0x0003   (LANMAN2.0)
>   SMB_FIND_FILE_DIRECTORY_INFO               0x0101   (NT LANMAN)
>   SMB_FIND_FILE_FULL_DIRECTORY_INFO   0x0102   (NT LANMAN)
>   SMB_FIND_FILE_NAMES_INFO                       0x0103   (NT LANMAN)
>   SMB_FIND_FILE_BOTH_DIRECTORY_INFO   0x0104   (NT LANMAN)
>
>  For Windows 2000 and later ,  in addition to the levels above , the 
> following levels are added as per MS-SMB 2.2.6.1.1
>
>  SMB_FIND_FILE_ID_FULL_DIRECTORY_INFO    0x0105 (NT LANMAN)
>  SMB_FIND_FILE_ID_BOTH_DIRECTORY_INFO  0x0106  (NT LANMAN)
>
>  As per 2.2.8 MS-CIFS,  The client MUST map the application-provided 
> [MS-FSCC] information levels to SMB information Levels.   For all other 
> [MS-FSCC] information levels, the client MUST fail the request with 
> STATUS_NOT_SUPPORTED.   In some case, the client MUST send a fixed level.   
> For example, a client that has not negotiated long names support MUST request 
> only  SMB_INFO_STANDARD.
>
>  Please let us know if you have more questions.
>
> Thanks!
>
> Hongwei
>
>
>
>
> -----Original Message-----
> From: cifs-protocol-boun...@cifs.org [mailto:cifs-protocol-boun...@cifs.org] 
> On Behalf Of Steve French
> Sent: Thursday, August 18, 2011 4:54 PM
> To: Edgar Olougouna
> Cc: p...@tridgell.net; cifs-proto...@samba.org
> Subject: Re: [cifs-protocol] Level 257 FindFirst rejected by some Windows 
> servers even though NTLM
>
> It looks like Windows CE takes (only?) level 260 but I can't easily prove it 
> without access to a test system (I just have some customer traces) - so how 
> does Windows clients (Windows XP/Vista/7 etc.) determine which FindFirst 
> level to send to these given that the Microsoft server in this case is 
> reporting NT Find and NT SMB support but in practice not supporting most 
> FindFirst levels.
>
> On Tue, Aug 16, 2011 at 12:56 PM, Edgar Olougouna <edg...@microsoft.com> 
> wrote:
>> [Dochelp to bcc]
>>
>> Steve,
>>
>> One of our engineers will follow-up soon on this inquiry. The case number is 
>> 111081664438980.
>>
>> Regards,
>> Edgar
>>
>> -----Original Message-----
>> From: Steve French [mailto:smfre...@gmail.com]
>> Sent: Tuesday, August 16, 2011 12:35 PM
>> To: Interoperability Documentation Help
>> Cc: cifs-proto...@samba.org; p...@tridgell.net
>> Subject: Level 257 FindFirst rejected by some Windows servers even
>> though NTLM
>>
>> A user sent me a trace of FindFirst level 257 (0x101 ) failing to
>> Windows CE with NT Status: STATUS_INVALID_LEVEL (0xc0000148)
>>
>> even though dialect negotiated was NT LM 012 and that dialect is the only 
>> prereq listed in MS-SMB for the level (see page 64).
>>
>> How can the client determine under what condition that the server does
>> not support that level - -  and what level to fall back (or move up to 
>> higher level)?   Level 257 is pretty basic.
>>
>>
>> --
>> Thanks,
>>
>> Steve
>>
>>
>
>
>
> --
> Thanks,
>
> Steve
> _______________________________________________
> cifs-protocol mailing list
> cifs-protocol@cifs.org
> https://lists.samba.org/mailman/listinfo/cifs-protocol
>
>



-- 
Thanks,

Steve
_______________________________________________
cifs-protocol mailing list
cifs-protocol@cifs.org
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to