2.2.2.5.2 RopQueryRows ROP Response Buffer

The following descriptions define valid fields for the RopQueryRows ROP response buffer ([MS-OXCROPS] section 2.2.5.4.2).

Origin (1 byte): An enumeration that identifies the cursor position. This field MUST be set to one of the predefined bookmark values specified in section 2.2.2.1.1.

RowCount (2 bytes): An unsigned integer that specifies the number of rows returned. Its value MUST be less than or equal to the RowCount field value that is specified in the request, and it MUST be greater than or equal to 0x0000. It MUST be equal to the number of PropertyRow objects returned in the RowData field.

RowData (variable): A list of PropertyRow structures that contains the array of rows returned. Each row is represented by a PropertyRow object, as specified in [MS-OXCDATA] section 2.8.1. Each row MUST have the same columns and ordering of columns as specified in the last RopSetColumns ROP request ([MS-OXCROPS] section 2.2.5.1).

The RowData field MUST NOT include rows that don't match the criteria specified in the last RopRestrict ROP request ([MS-OXCROPS] section 2.2.5.3). If the RopRestrict ROP has not been issued, the RowData field MUST include all rows.

The rows MUST be sorted and grouped according to the sort order specified in the last RopSortTable ROP request ([MS-OXCROPS] section 2.2.5.2). If the RopSortTable ROP has not been sent, the default sort order is undefined.

Every property value returned in a row MUST be less than or equal to 510 bytes in size. If a property value is greater than 510 bytes in size, it MUST be truncated to 510 bytes.