2.2.37 SMB2 QUERY_INFO Request
The SMB2 QUERY_INFO Request (section 2.2.37) packet is sent by a client to request information on a file, named pipe, or underlying volume. 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 |
|||||||||||||||||||||||||||||
OutputBufferLength |
|||||||||||||||||||||||||||||||
InputBufferOffset |
Reserved |
||||||||||||||||||||||||||||||
InputBufferLength |
|||||||||||||||||||||||||||||||
AdditionalInformation |
|||||||||||||||||||||||||||||||
Flags |
|||||||||||||||||||||||||||||||
FileId |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Buffer (variable) |
|||||||||||||||||||||||||||||||
... |
StructureSize (2 bytes): The client MUST set this field to 41, 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 queried. This field MUST contain one of the following values:
-
Value
Meaning
SMB2_0_INFO_FILE
0x01
The file information is requested.
SMB2_0_INFO_FILESYSTEM
0x02
The underlying object store information is requested.
SMB2_0_INFO_SECURITY
0x03
The security information is requested.
SMB2_0_INFO_QUOTA
0x04
The underlying object store quota information is requested.
FileInfoClass (1 byte): For file information queries, this field MUST contain one of the following FILE_INFORMATION_CLASS values, as specified in section 3.3.5.20.1 and in [MS-FSCC] section 2.4:
FileAccessInformation
FileAlignmentInformation
FileAllInformation
FileAlternateNameInformation
FileAttributeTagInformation
FileBasicInformation
FileCompressionInformation
FileEaInformation
FileFullEaInformation
FileIdInformation
FileInternalInformation
FileModeInformation
FileNetworkOpenInformation
FileNormalizedNameInformation
FilePipeInformation
FilePipeLocalInformation
FilePipeRemoteInformation
FilePositionInformation
FileStandardInformation
FileStreamInformation
-
Or:
FileInfoClass_Reserved (0x64): This value MUST be reserved and MUST be ignored on receipt.
For underlying object store information queries, this field MUST contain one of the following FS_INFORMATION_CLASS values, as specified in section 3.3.5.20.2 and in [MS-FSCC] section 2.5:
FileFsAttributeInformation
FileFsControlInformation
FileFsDeviceInformation
FileFsFullSizeInformation
FileFsObjectIdInformation
FileFsSectorSizeInformation
FileFsSizeInformation
FileFsVolumeInformation
For security queries, this field MUST be set to 0. For quota queries, this field SHOULD<78> be set to 0.
OutputBufferLength (4 bytes): The maximum number of bytes of information the server can send in the response.
InputBufferOffset (2 bytes): The offset, in bytes, from the beginning of the SMB2 header to the input buffer. For quota requests, the input buffer MUST contain an SMB2_QUERY_QUOTA_INFO, as specified in section 2.2.37.1. For FileFullEaInformation requests, the input buffer MUST contain the user supplied EA list with zero or more FILE_GET_EA_INFORMATION structures, specified in [MS-FSCC] section 2.4.15.1. For other information queries, this field SHOULD<79> be set to 0.
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.
InputBufferLength (4 bytes): The length of the input buffer. For quota requests, this MUST be the length of the contained SMB2_QUERY_QUOTA_INFO embedded in the request. For FileFullEaInformation requests, this MUST be set to the length of the user supplied EA list specified in [MS-FSCC] section 2.4.15.1. For other information queries, this field SHOULD be set to 0 and the server MUST ignore it on receipt.
AdditionalInformation (4 bytes): Provides additional information to the server.
-
If security information is being queried, this value contains a 4-byte bit field of flags indicating what security attributes MUST be returned. For more information about security descriptors, see SECURITY_DESCRIPTOR in [MS-DTYP].
-
Value
Meaning
OWNER_SECURITY_INFORMATION
0x00000001
The client is querying the owner from the security descriptor of the file or named pipe.
GROUP_SECURITY_INFORMATION
0x00000002
The client is querying the group from the security descriptor of the file or named pipe.
DACL_SECURITY_INFORMATION
0x00000004
The client is querying the discretionary access control list from the security descriptor of the file or named pipe.
SACL_SECURITY_INFORMATION
0x00000008
The client is querying the system access control list from the security descriptor of the file or named pipe.
LABEL_SECURITY_INFORMATION
0x00000010
The client is querying the integrity label from the security descriptor of the file or named pipe.
ATTRIBUTE_SECURITY_INFORMATION
0x00000020
The client is querying the resource attribute from the security descriptor of the file or named pipe.
SCOPE_SECURITY_INFORMATION
0x00000040
The client is querying the central access policy of the resource from the security descriptor of the file or named pipe.
BACKUP_SECURITY_INFORMATION
0x00010000
The client is querying the security descriptor information used for backup operation.
-
If FileFullEaInformation is being queried and the application has not provided a list of EAs to query, but has provided an index into the object's full extended attribute information array at which to start the query, this field MUST contain a ULONG representation of that index. For all other queries, this field MUST be set to 0 and the server MUST ignore it.
Flags (4 bytes): The flags MUST be set to a combination of zero or more of these bit values for a FileFullEaInformation query.
-
Value
Meaning
SL_RESTART_SCAN
0x00000001
Restart the scan for EAs from the beginning.
SL_RETURN_SINGLE_ENTRY
0x00000002
Return a single EA entry in the response buffer.
SL_INDEX_SPECIFIED
0x00000004
The caller has specified an EA index.
-
For all other queries, the client MUST set this field to 0, and the server MUST ignore it on receipt.
FileId (16 bytes): An SMB2_FILEID identifier of the file or named pipe on which to perform the query. Queries for underlying object store or quota information are directed to the volume on which the file resides.
Buffer (variable): A variable-length buffer containing the input buffer for the request, as described by the InputBufferOffset and InputBufferLength fields.<80>
-
For quota requests, the input Buffer MUST contain an SMB2_QUERY_QUOTA_INFO, as specified in section 2.2.37.1. For a FileFullEaInformation query, the Buffer MUST be in one of the following formats:
A zero-length buffer as indicated by an InputBufferLength that is equal to zero.
A list of FILE_GET_EA_INFORMATION structures provided by the application, as specified in [MS-FSCC] section 2.4.15.1.