2.2.7.5.1 Client Request

The NT_TRANSACT_QUERY_QUOTA request is a special case of the SMB_COM_NT_TRANSACT command request. Only the NT_TRANSACT_QUERY_QUOTA specifics are described here.

At least one of NT_Trans_Parameters.SidListLength or NT_Trans_Parameters.StartSidLength MUST be zero. If both are zero, then the quota information for all SIDs, as specified in [MS-DTYP] section 2.4.2, on the underlying object store of a share MUST be enumerated by the server.

SMB_Parameters

WordCount (1 byte): The value of this field MUST be 0x13.

Words (38 bytes): As specified in [MS-CIFS] section 2.2.4.62.1 and with the following exceptions:

SetupCount (1 bytes): This field MUST be 0x00.

NT_Trans_Parameters:

 NT_Trans_Parameters
   {
   USHORT   FID;
   BOOLEAN  ReturnSingleEntry;
   BOOLEAN  RestartScan;
   ULONG    SidListLength;
   ULONG    StartSidLength;
   ULONG    StartSidOffset;
   }


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

FID

ReturnSingleEntry

RestartScan

SidListLength

StartSidLength

StartSidOffset

FID (2 bytes):  An Fid to a file or directory. The quota information of the object store underlying the file or directory MUST be queried.

ReturnSingleEntry (1 byte):  If TRUE (any non-zero value), then this field indicates that the server behavior is to be restricted to only return a single SID's quota information instead of filling the entire buffer.

RestartScan (1 byte):  If TRUE (any non-zero value), then this field indicates that the scan of quota information is to be restarted.

SidListLength (4 bytes):  If non-zero, then this field indicates that the client is requesting quota information of a particular set of SIDs and MUST represent the length of the NT_Trans_Data.SidList field.

StartSidLength (4 bytes):  If non-zero, then this field indicates that the SidList field contains a start SID (that is, a single SID entry indicating to the server where to start user quota information enumeration) and MUST represent the length, in bytes, of that SidList entry.

StartSidOffset (4 bytes):  If StartSidLength is non-zero, then this field MUST represent the offset from the start of the NT_Trans_Data to the specific SidList entry at which to begin user quota information enumeration. Otherwise, this field SHOULD be set to zero and MUST be ignored by the server.

NT_Trans_Data:

 NT_Trans_Data
   {
   FILE_GET_QUOTA_INFORMATION SidList[] (optional);
   }


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

SidList (variable)

...

SidList (variable): A list of one or more SIDs that are formatted as a FILE_GET_QUOTA_INFORMATION structure, as specified in [MS-FSCC] section 2.4.40.1. If SidListLength is non-zero, then this field MUST contain a list of one or more SIDs for which quota information is being requested. If StartSidLength is non-zero, then this field MUST contain a start SID. If both SidListLength and StartSidLength are zero, then this field MUST NOT be included in the request.