CPMCreateQueryIn - [ms-wsp]: Windows Search Protocol Intellectual Property Rights Notice for Open Specifications Documentation

|
[ms-wsp]: Windows Search Protocol Intellectual Property Rights Notice for Open Specifications Documentation
|
bet | 16/28 | Sana | 25.03.2020 | Hajmi | 349,46 Kb. | | #8793 |
CPMCreateQueryIn
The CPMCreateQueryIn message creates a new query. The format of the CPMCreateQueryIn message that follows the header is shown in the following diagram.
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
|
Size
|
CColumnSetPresent
|
paddingCColumnSetPresent (variable)
|
ColumnSet (variable)
|
...
|
CRestrictionPresent
|
RestrictionArray (variable)
|
...
|
CSortSetPresent
|
paddingCSortSetPresent (variable)
|
SortSet (variable)
|
...
|
CCategorizationSetPresent
|
paddingCCategorizationSetPresent (variable)
|
CCategorizationSet (variable)
|
...
|
RowSetProperties (20 bytes)
|
...
|
...
|
PidMapper (variable)
|
...
|
GroupArray (variable)
|
...
|
Lcid
|
Size (4 bytes): A 32-bit unsigned integer indicating the number of bytes from the beginning of this field to the end of the message.
CColumnSetPresent (1 byte): A byte field indicating if the ColumnSet field is present. MUST be set to one of the following values. If the value is set to 0x00, then no information will be returned from the query.
Value
|
Meaning
|
0x00
|
The ColumnSet field MUST be absent.
|
0x01
|
The ColumnSet field MUST be present.
|
paddingCColumnSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent in CColumnSetPresent is set to 0x00.
ColumnSet (variable): A CColumnSet structure containing the property offsets for properties in CPidMapper that are returned as a column. If no properties are in the column set, then no information will be returned from the query.
CRestrictionPresent (1 byte): A byte field indicating whether the RestrictionArray field is present.
Note If set to any nonzero value, the RestrictionArray field MUST be present. If set to 0x00, RestrictionArray MUST be absent.
RestrictionArray (variable): A CRestrictionArray structure containing the command tree of the query.
CSortSetPresent (1 byte): A byte field indicating whether the SortSet field is present.
Note If set to any nonzero value, the SortSet field MUST be present. If set to 0x00, SortSet MUST be absent.
paddingCSortSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent if CSortSetPresent is set to 0x00.
SortSet (variable): A CInGroupSortAggregSets structure indicating the sort order of the query.
CCategorizationSetPresent (1 byte): A byte field indicating whether the CCategorizationSet field is present.
Note If set to any nonzero value, the CCategorizationSet field MUST be present. If set to 0x00, CCategorizationSet MUST be absent.
paddingCCategorizationSetPresent (variable): This field MUST be 0 to 3 bytes in length. The length of this field MUST be such that the following field begins at an offset that is a multiple of 4 bytes from the beginning of the message that contains this structure. If this field is present (that is, length nonzero), the value it contains is arbitrary. The content of this field MUST be ignored by the receiver. This field MUST be absent if CCategorizationSetPresent is set to 0x00.
CCategorizationSet (variable): A CCategorizationSet structure that contains the groups for the query.
RowSetProperties (20 bytes): A CRowsetProperties structure providing configuration information for the query.
PidMapper (variable): A CPidMapper structure that maps from property offsets to full property descriptions.
GroupArray (variable): A CColumnGroupArray structure, describing property weights for probabilistic ranking.
Lcid (4 bytes): A 32-bit unsigned integer, indicating the user's locale for this query, as specified in [MS-LCID].
CPMCreateQueryOut
The CPMCreateQueryOut message contains a response to a CPMCreateQueryIn message.
The format of the CPMCreateQueryOut message that follows the header is shown in the following table.
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
|
_fTrueSequential
|
_fWorkIdUnique
|
aCursors
|
_fTrueSequential (4 bytes): A 32-bit unsigned integer. MUST be set to one of the following values.
Note An informative value indicating whether the query can be expected to provide results faster.
Value
|
Meaning
|
0x00000000
|
For the query provided in CPMCreateQueryIn, there would be a greater latency in delivering query results.
|
0x00000001
|
If _fTrueSequential is set to true, results can be returned sequentially without the server incurring the cost of processing the entire result set before returning the first result.
|
_fWorkIdUnique (4 bytes): A Boolean value indicating whether the document identifiers pointed by the cursors are unique throughout query results. MUST be set to one of the following values.
Value
|
Meaning
|
0x00000000
|
The cursors are unique only throughout the rowset.
|
0x00000001
|
The cursors are unique across multiple query results.
|
aCursors (4 bytes): An array of 32-bit unsigned integers representing the handles to cursors with the number of elements equal to the number of categories in the CategorizationSet field of CPMCreateQueryIn message plus one element, representing an uncategorized cursor.
|
| |