[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