[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ms-cifs
Subject:    Re: new CIFS I-D
From:       Bruce_Leverett () TRANSARC ! COM
Date:       1998-01-20 21:53:01
[Download RAW message or body]


Correct, I didn't notice section 3.1.  I also didn't notice the Notation
section in the March 13 draft.  Could have saved myself a lot of trouble.

The LARGE_INTEGER time/date fields are indeed FILETIME.

The following definitions, from WINNT.H, are the relevant to the access mask
encoding (used for the DesiredAccess parameter of NT Create And X):

#define DELETE                           (0x00010000L)
#define READ_CONTROL                     (0x00020000L)
#define WRITE_DAC                        (0x00040000L)
#define WRITE_OWNER                      (0x00080000L)
#define SYNCHRONIZE                      (0x00100000L)

#define STANDARD_RIGHTS_REQUIRED         (0x000F0000L)

#define STANDARD_RIGHTS_READ             (READ_CONTROL)
#define STANDARD_RIGHTS_WRITE            (READ_CONTROL)
#define STANDARD_RIGHTS_EXECUTE          (READ_CONTROL)

#define STANDARD_RIGHTS_ALL              (0x001F0000L)

#define SPECIFIC_RIGHTS_ALL              (0x0000FFFFL)

//
// AccessSystemAcl access type
//

#define ACCESS_SYSTEM_SECURITY           (0x01000000L)

//
// MaximumAllowed access type
//

#define MAXIMUM_ALLOWED                  (0x02000000L)

//
//  These are the generic rights.
//

#define GENERIC_READ                     (0x80000000L)
#define GENERIC_WRITE                    (0x40000000L)
#define GENERIC_EXECUTE                  (0x20000000L)
#define GENERIC_ALL                      (0x10000000L)

#define FILE_READ_DATA            ( 0x0001 )    // file & pipe
#define FILE_LIST_DIRECTORY       ( 0x0001 )    // directory

#define FILE_WRITE_DATA           ( 0x0002 )    // file & pipe
#define FILE_ADD_FILE             ( 0x0002 )    // directory

#define FILE_APPEND_DATA          ( 0x0004 )    // file
#define FILE_ADD_SUBDIRECTORY     ( 0x0004 )    // directory
#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 )    // named pipe

#define FILE_READ_EA              ( 0x0008 )    // file & directory

#define FILE_WRITE_EA             ( 0x0010 )    // file & directory

#define FILE_EXECUTE              ( 0x0020 )    // file
#define FILE_TRAVERSE             ( 0x0020 )    // directory

#define FILE_DELETE_CHILD         ( 0x0040 )    // directory

#define FILE_READ_ATTRIBUTES      ( 0x0080 )    // all

#define FILE_WRITE_ATTRIBUTES     ( 0x0100 )    // all

#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)

#define FILE_GENERIC_READ         (STANDARD_RIGHTS_READ     |\
                                   FILE_READ_DATA           |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_READ_EA             |\
                                   SYNCHRONIZE)


#define FILE_GENERIC_WRITE        (STANDARD_RIGHTS_WRITE    |\
                                   FILE_WRITE_DATA          |\
                                   FILE_WRITE_ATTRIBUTES    |\
                                   FILE_WRITE_EA            |\
                                   FILE_APPEND_DATA         |\
                                   SYNCHRONIZE)


#define FILE_GENERIC_EXECUTE      (STANDARD_RIGHTS_EXECUTE  |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_EXECUTE             |\
                                   SYNCHRONIZE)

Regarding section 3.15, "Valid SMB Requests by Negotiated Dialect:

  This section at present says:

    CIFS Clients and servers may exchange the following SMB messages if the
    "PC NETWORK PROGRAM 1.0" dialect is negotiated:

    SMB COM_CREATE_DIRECTORY   etc.
    etc.

    If the "LANMAN 1.0" dialect is negotiated ... etc. ... New messages
    introduced ... are:

    SMB_COM_LOCK_AND_READ  etc.
    etc.

  What I have in mind is that, in addition, it would say:

    If the "NT LM 0.12" dialect is supported, with the CAP_NT_FIND capability,
    the following information levels are introduced for the indicated
    messages:

    TRANS2_FIND_FIRST2    0x101 through 0x104
    TRANS2_QUERY_FS_INFORMATION 0x102 through 0x105

    If the "NT LM 0.12" dialect is supported, with the CAP_NT_SMBS capability,
    the following information levels are introduced for the indicated messages,
    in addition to those listed above for CAP_NT_FIND:

    TRANS2_QUERY_PATH_INFORMATION   0x101 through 0x10B
    TRANS2_QUERY_FILE_INFORMATION   same
    TRANS2_SET_PATH_INFORMATION etc.
    etc.

I may have oversimplified.

BTW, if SMB_COM_LOCK_AND_READ was introduced in LANMAN 1.0, why is it that
CAP_LOCK_AND_READ was introduce in NT LM 0.12?  Not an urgent question for
me, apparently, but I'm curious.

Sure, the NT client uses READ_RAW and WRITE_RAW.

----------------------------------------------------------------
Users Guide http://www.microsoft.com/sitebuilder/resource/mailfaq.asp
contains important info including how to unsubscribe.  Save time, search
the archives at http://discuss.microsoft.com/archives/index.html

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic