3.2.4.15 Application Requests Applying Quota Information
The application provides:
A handle to the Open identifying a directory.
A list of SIDs (as specified in [MS-DTYP] section 2.4.2) for which quota information is to be applied.
For each SID, the quota warning threshold and quota limit to be applied, as specified in [MS-FSCC] section 2.4.40.
If the handle is invalid, or if no Open referenced by the handle is found, the client MUST return an implementation-specific error code. If the handle is valid and Open is found, the client MUST proceed as follows.
For the specified Open, the client MUST select a connection as specified in section 3.2.4.1.7. If no connection is available, the client MUST fail the set operation.
Otherwise, the client initializes an SMB2 SET_INFO Request, following the syntax specified in section 2.2.37. The SMB2 header MUST be initialized as follows:
The Command field is set to SMB2 SET_INFO.
The MessageId field is set as specified in section 3.2.4.1.3.
The SessionId field is set to Open.TreeConnect.Session.SessionId.
The TreeId field is set to Open.TreeConnect.TreeConnectId.
The SMB2 SET_INFO Request MUST be initialized as follows:
The InfoType field is set to SMB2_0_INFO_QUOTA.
The FileInfoClass field is set to 0.
The AdditionalInformation is set to 0.
The FileId field is set to Open.FileId.
The Buffer field is set to one or more FILE_QUOTA_INFORMATION structures, as specified in [MS-FSCC] section 2.4.40.
The NextEntryOffset field is set to the offset, in bytes, to the next FILE_QUOTA_INFORMATION structure, or zero if this is the last structure in the buffer.
The Sid field is set to the application-provided SID, in little-endian binary format as specified in [MS-DTYP] section 2.4.2.2.
The SidLength field is set to the length of the Sid field, in bytes.
The ChangeTime field is set to the current time, as specified in [MS-DTYP] section 2.3.3.
The QuotaUsed field is ignored and can be set to any value.
The QuotaThreshold field is set to the application provided quota warning threshold.
The QuotaLimit field is set to the application provided quota limit.
The BufferLength is set to the length, in bytes, of the Buffer field. A BufferLength exceeding Connection.MaxTransactSize will be rejected by the server.
The BufferOffset is set to the offset to the Buffer, in bytes, from the beginning of the SMB2 header.
The request MUST be sent to the server.