Revision Summary Date Revision History Revision Class Comments 4/3/2007 0.01 New Version 0.01 release 7/3/2007 1.0 MLonghorn+90 7/20/2007 2.0 Major Updated and revised the technical content. 8/10/2007 3.0 Updated and revised the technical content. 9/28/2007 4.0 Major Updated and revised the technical content. 10/23/2007 5.0 Major Updated and revised the technical content. 11/30/2007 5.0.1 Editorial Changed language and formatting in the technical content. 1/25/2008 5.0.2 Editorial Changed language and formatting in the technical content. 3/14/2008 5.0.3 Editorial Changed language and formatting in the technical content. 5/16/2008 6.0 Updated and revised the technical content. 6/20/2008 7.0 Major Updated and revised the technical content. 7/25/2008 8.0 Major Updated and revised the technical content.
8/29/2008 9.0 Major Updated and revised the technical content. 10/24/2008 10.0 Major Updated and revised the technical content. 12/5/2008 11.0 Major Updated and revised the technical content. 1/16/2009 12.0 Major Updated and revised the technical content. 2/27/2009 13.0 Major Updated and revised the technical content. 4/10/2009 14.0 Major Updated and revised the technical content. 5/22/2009 15.0 Updated and revised the technical content. 7/2/2009 16.0 Major Updated and revised the technical content. 8/14/2009 17.0 Major Updated and revised the technical content. 9/25/2009 18.0 Major Updated and revised the technical content. 11/6/2009 19.0 Major Updated and revised the technical content. 12/18/2009 20.0 Major Updated and revised the technical content. 1/29/2010 21.0 Major Updated and revised the
technical content. 3/12/2010 22.0 Major Updated and revised the technical content. 4/23/2010 23.0 Major Updated and revised the technical content. 6/4/2010 24.0 Major Updated and revised the technical content. 7/16/2010 25.0 Major Updated and revised the technical content. 8/27/2010 26.0 Major Updated and revised the technical content. 10/8/2010 27.0 Major Updated and revised the technical content. 11/19/2010 28.0 Major Updated and revised the technical content. 1/7/2011 29.0 Major Updated and revised the technical content. 2/11/2011 30.0 Major Updated and revised the technical content. 3/25/2011 31.0 Major Updated and revised the technical content. 5/6/2011 32.0 Major Updated and revised the technical content. 6/17/2011 33.0 Major Updated and revised the technical content.
9/23/2011 34.0 Major Updated and revised the technical content. 12/16/2011 35.0 Major Updated and revised the technical content. 3/30/2012 36.0 Major Updated and revised the technical content. 7/12/2012 37.0 Updated and revised the technical content. 10/25/2012 38.0 Major Updated and revised the technical content. 1/31/2013 39.0 Major Updated and revised the technical content. 8/8/2013 40.0 Major Updated and revised the technical content. 11/14/2013 41.0 Major Updated and revised the technical content. 2/13/2014 42.0 Major Updated and revised the technical content. 5/15/2014 43.0 Major Updated and revised the technical content. 6/30/2015 44.0 Major Significantly changed the technical content. 10/16/2015 44.0 None No changes to the meaning, language, or formatting of the technical content.
0x02000000 the client on this file, the server MUST fail the open with STATUS_ACCESS_DENIED. GENERIC_ALL 0x10000000 This value indicates a request for all the access flags that are previously listed, except MAXIMUM_ALLOWED and ACCESS_SYSTEM_SECURITY. GENERIC_EXECUTE 0x20000000 This value indicates a request for the following combination of access flags listed above: FILE_READ_ATTRIBUTES, FILE_EXECUTE, SYNCHRONIZE, and READ_CONTROL. GENERIC_WRITE 0x40000000 This value indicates a request for the following combination of access flags listed above: FILE_WRITE_DATA, FILE_APPEND_DATA, FILE_WRITE_ATTRIBUTES, FILE_WRITE_EA, SYNCHRONIZE, and READ_CONTROL. GENERIC_READ 0x80000000 This value indicates a request for the following combination of access flags listed above: FILE_READ_DATA, FILE_READ_ATTRIBUTES, FILE_READ_EA, SYNCHRONIZE, and READ_CONTROL. Directory_Access_Mask The following SMB Access Mask is defined for use on a directory. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Directory_Access_Mask Directory_Access_Mask (4 For a directory, the value MUST be constructed using the following values: Value Meaning FILE_LIST_DIRECTORY 0x00000001 This indicates the right to enumerate the contents of the directory. FILE_ADD_FILE 0x00000002 This value indicates the right to create a file under the directory. FILE_ADD_SUBDIRECTORY 0x00000004 This value indicates the right to add a sub-directory under the directory. FILE_READ_EA 0x00000008 This value indicates the right to read the extended attributes of the directory. FILE_WRITE_EA 0x00000010 This value indicates the right to write or change the extended attributes of the directory. FILE_TRAVERSE 0x00000020 This indicates the right to traverse this directory if the underlying object store enforces traversal checking. FILE_DELETE_CHILD 0x00000040 This indicates the right to delete the files and directories within this directory. FILE_READ_ATTRIBUTES This value indicates the right to read the attributes of the directory.
In addition, SMB_COM_TRANSACTION2 Information Levels in the range 0x200 to 0x3E0 (inclusive) are reserved for third-party extensions, as described in section .<19> SMB Error Classes and Codes The following is a list of 32-bit status codes that are required to implement these extensions, their associated values, and a description of what they represent.<20> NT status Description 0x00000000 STATUS_SUCCESS The client request is successful. 0x00010002 STATUS_INVALID_SMB An invalid SMB client request is received by the server. 0x00050002 STATUS_SMB_BAD_TID The client request received by the server contains an invalid TID value. 0x00160002 STATUS_SMB_BAD_COMMAND The client request received by the server contains an unknown SMB command code. 0x005B0002 STATUS_SMB_BAD_UID The client request to the server contains an invalid UID 0x00FB0002 STATUS_SMB_USE_STANDARD The client request received by the server is for a non-standard SMB operation (for example, an SMB_COM_READ_MPX request on a non-disk share). The client SHOULD send another request with a different SMB command to perform this operation. 0x80000005 STATUS_BUFFER_OVERFLOW The data was too large to fit into the specified buffer. 0x80000006 STATUS_NO_MORE_FILES No more files were found that match the file specification. 0x8000002D STATUS_STOPPED_ON_SYMLINK The create operation stopped reaching a symbolic link. 0xC0000002 STATUS_NOT_IMPLEMENTED The requested operation is not implemented. 0xC000000D STATUS_INVALID_PARAMETER The parameter specified in the request is not valid. 0xC000000E STATUS_NO_SUCH_DEVICE A device that does not was specified. 0xC0000010 STATUS_INVALID_DEVICE_REQUEST The specified request is not a valid operation for the target device. 0xC0000016 STATUS_MORE_PROCESSING_REQUIRED If extended security has been negotiated, then this error code can be returned in the SMB_COM_SESSION_SETUP_ANDX
UCHAR Protocol[4]; UCHAR Command; SMB_ERROR Status; UCHAR Flags; USHORT Flags2; USHORT PIDHigh; UCHAR SecurityFeatures[8]; USHORT Reserved; USHORT TID; USHORT PIDLow; USHORT UID; USHORT MID; } The following SMB header fields contain extensions: 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Protocol Command Status ... Flags2 PIDHigh SecurityFeatures ... ... Reserved TID PIDLow UID MID Flags2 (2 bytes): The Flags2 field contains individual bit flags that, depending on the negotiated SMB dialect, indicate various client and server capabilities. This field is defined as specified in section 2.2.3.1. There are several new Flags2 values in the SMB header that are not in but are part of these extensions. Unused bit fields SHOULD be set to zero by the sender when sending an SMB message and SHOULD<21> be ignored when received by the receiver. This field is constructed using the values listed in section 2.2.3.1 of [MS-CIFS], as well as the following additional values: Name & bitmask Meaning SMB_FLAGS2_COMPRESSED 0x0008 If set by the client, the client is requesting compressed data for an SMB_COM_READ_ANDX request. If cleared by the server, the server is notifying the client that the data was written uncompressed. This bit field SHOULD only be set to one when NT LAN Manager or later is negotiated for the SMB dialect. SMB_FLAGS2_SMB_SECURITY_SIGNATURE_REQUIRED 0x0010 This flag SHOULD<22> be set by the client on the sent to a server that supports extended security if the client requires all further communication with this server to be signed. If the server does not support signing, it MUST
SMB_Parameters { UCHAR WordCount; Words { UCHAR AndXCommand; UCHAR AndXReserved; USHORT AndXOffset; USHORT MaxBufferSize; USHORT MaxMpxCount; USHORT VcNumber; ULONG SessionKey; USHORT SecurityBlobLength; Reserved; Capabilities; } } SMB_Data { USHORT ByteCount; Bytes { UCHAR SecurityBlob[SecurityBlobLength]; SMB_STRING NativeOS[]; SMB_STRING NativeLanMan[]; } } 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 SMB_Parameters (25 bytes) ... ... ... SMB_Data (variable) ... SMB_Parameters (25 bytes): 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 WordCount Words (24 bytes) ... ... ... WordCount (1 byte): The of this field MUST be 0x0C. Words (24 bytes):
SecurityInfoFields (4 bytes): A ULONG. This field represents the requested fields of the security descriptor to be retrieved. These values can be logically OR-ed together to request several descriptors in one request. The descriptor response format contains storage for all the descriptors. The values returned for security descriptors corresponding to bits not mentioned in the following table MUST be ignored. Name and bitmask Meaning OWNER_SECURITY_INFORMATION 0x00000001 Owner of the object or resource. GROUP_SECURITY_INFORMATION 0x00000002 Group associated with the object or resource. DACL_SECURITY_INFORMATION 0x00000004 DACL associated with the object or resource. SACL_SECURITY_INFORMATION 0x00000008 SACL associated with the object or resource. LABEL_SECURITY_INFORMATION 0x00000010 Integrity label in the security descriptor of the file or named pipe. ATTRIBUTE_SECURITY_INFORMATION 0x00000020 Resource attribute in the security descriptor of the file or named pipe. SCOPE_SECURITY_INFORMATION 0x00000040 Central access policy of resource in the security descriptor of the file or named pipe. BACKUP_SECURITY_INFORMATION 0x00010000 Security descriptor information used for
FILETIME CreationTime; FILETIME LastAccessTime; FILETIME LastWriteTime; FILETIME LastChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; SMB_EXT_FILE_ATTR ExtFileAttributes; ULONG FileNameLength; EaSize; UCHAR ShortNameLength; UCHAR Reserved; ShortName[12]; USHORT Reserved2; LARGE_INTEGER FileID; SMB_STRING FileName; } 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 NextEntryOffset FileIndex CreationTime ... LastAccessTime ... LastWriteTime ... LastChangeTime ... EndOfFile ... AllocationSize ... ExtFileAttributes FileNameLength EaSize
Index _ 73 3 31 A Abstract data model client ( 97, 98) server ( 97, 117) Algorithms 26 26 26 18 C 19 177 Client abstract data model ( 97, 98) higher-layer triggered events ( 97, 100) initialization ( 97, 100) local events ( 98, 117) message processing ( 98, 112) 117 sequencing rules ( 98, 112) timer events ( 98, 117) timers ( 97, 99) Client details ( 97, 98) 26 D Data - abstract client ( 97, 98) server ( 97, 117) 21 28 E 134 23 F 26 19 24 26 81 79 80 G 9 H triggered events client ( 97, 100) server ( 97, 119) I 157 157 89 15 Initialization client ( 97, 100) server ( 97, 119) 9 L Local events client ( 98, 117) server ( 98, 133) Message processing client ( 98, 112) server ( 98, 121) Messages 89 21 21 N 14 71 30 76 76 30 84 85 30 87 Other local events 117 133 16 P 157 18 18 158