2.2.39 SMB2 SET_INFO Request
The SMB2 SET_INFO Request packet is sent by a client to set information on a file or underlying object store. This request consists of an SMB2 header, as specified in section 2.2.1, followed by this request structure.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
StructureSize |
InfoType |
FileInfoClass |
|||||||||||||||||||||||||||||
BufferLength |
|||||||||||||||||||||||||||||||
BufferOffset |
Reserved |
||||||||||||||||||||||||||||||
AdditionalInformation |
|||||||||||||||||||||||||||||||
FileId |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Buffer (variable) |
|||||||||||||||||||||||||||||||
... |
StructureSize (2 bytes): The client MUST set this field to 33, indicating the size of the request structure, not including the header. The client MUST set this field to this value regardless of how long Buffer[] actually is in the request being sent.
InfoType (1 byte): The type of information being set. The valid values are as follows.
-
Value
Meaning
SMB2_0_INFO_FILE
0x01
The file information is being set.
SMB2_0_INFO_FILESYSTEM
0x02
The underlying object store information is being set.
SMB2_0_INFO_SECURITY
0x03
The security information is being set.
SMB2_0_INFO_QUOTA
0x04
The underlying object store quota information is being set.
FileInfoClass (1 byte): For setting file information, this field MUST contain one of the following FILE_INFORMATION_CLASS values, as specified in section 3.3.5.21.1 and [MS-FSCC] section 2.4:
FileAllocationInformation
FileBasicInformation
FileDispositionInformation
FileEndOfFileInformation
FileFullEaInformation
FileLinkInformation
FileModeInformation
FilePipeInformation
FilePositionInformation
FileRenameInformation
FileShortNameInformation
FileValidDataLengthInformation
-
For setting underlying object store information, this field MUST contain one of the following FS_INFORMATION_CLASS values, as specified in [MS-FSCC] section 2.5:
FileFsControlInformation
FileFsObjectIdInformation
-
For setting quota and security information, this field MUST be 0.
BufferLength (4 bytes): The length, in bytes, of the information to be set.
BufferOffset (2 bytes): The offset, in bytes, from the beginning of the SMB2 header to the information to be set.<82>
Reserved (2 bytes): This field MUST NOT be used and MUST be reserved. The client MUST set this field to 0, and the server MUST ignore it on receipt.
AdditionalInformation (4 bytes): Provides additional information to the server.
-
If security information is being set, this value MUST contain a 4-byte bit field of flags indicating what security attributes MUST be applied. For more information about security descriptors, see [MS-DTYP] section 2.4.6.
-
Value
Meaning
OWNER_SECURITY_INFORMATION
0x00000001
The client is setting the owner in the security descriptor of the file or named pipe.
GROUP_SECURITY_INFORMATION
0x00000002
The client is setting the group in the security descriptor of the file or named pipe.
DACL_SECURITY_INFORMATION
0x00000004
The client is setting the discretionary access control list in the security descriptor of the file or named pipe.
SACL_SECURITY_INFORMATION
0x00000008
The client is setting the system access control list in the security descriptor of the file or named pipe.
LABEL_SECURITY_INFORMATION
0x00000010
The client is setting the integrity label in the security descriptor of the file or named pipe.
ATTRIBUTE_SECURITY_INFORMATION
0x00000020
The client is setting the resource attribute in the security descriptor of the file or named pipe.
SCOPE_SECURITY_INFORMATION
0x00000040
The client is setting the central access policy of the resource in the security descriptor of the file or named pipe.
BACKUP_SECURITY_INFORMATION
0x00010000
The client is setting the backup operation information in the security descriptor of the file or named pipe.
-
For all other set requests, this field MUST be 0.
FileId (16 bytes): An SMB2_FILEID identifier of the file or named pipe on which to perform the set. Set operations for underlying object store and quota information are directed to the volume on which the file resides.
Buffer (variable): A variable-length buffer that contains the information being set for the request, as described by the BufferOffset and BufferLength fields. Buffer format depends on InfoType and the AdditionalInformation, as follows.
-
InfoType
AdditionalInformation
Buffer format specification
SMB2_0_INFO_FILE
0
See [MS-FSCC] section 2.4.
SMB2_0_INFO_FILESYSTEM
0
See [MS-FSCC] section 2.5.
SMB2_0_INFO_SECURITY
Any combination of the values:
OWNER_SECURITY_INFORMATION
GROUP_SECURITY_INFORMATION
LABEL_SECURITY_INFORMATION
DACL_SECURITY_INFORMATION
SACL_SECURITY_INFORMATION
The security descriptor data structure, as specified in [MS-DTYP] section 2.4.6, populated with the data specified by the AdditionalInformation value.
SMB2_0_INFO_QUOTA
0
See [MS-FSCC] section 2.4.40.