.
, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise.
. The Open Specifications do not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them. Certain Open Specifications are intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it.
1Introduction 8
1.1Glossary 8
1.2References 10
1.2.1Normative References 10
1.2.2Informative References 10
1.3Overview 11
1.3.1Remote Administration Tasks 11
1.3.2Remote Querying 11
1.4Relationship to Other Protocols 12
1.5Prerequisites/Preconditions 12
1.6Applicability Statement 12
1.7Versioning and Capability Negotiation 12
1.8Vendor-Extensible Fields 13
1.8.1Property IDs 13
1.9Standards Assignments 13
2Messages 14
2.1Transport 14
2.2Message Syntax 14
2.2.1Structures 14
2.2.1.1CBaseStorageVariant 16
2.2.1.1.1CBaseStorageVariant Structures 19
2.2.1.1.1.1DECIMAL 19
2.2.1.1.1.2VT_VECTOR 20
2.2.1.1.1.3SAFEARRAY 20
2.2.1.1.1.4SAFEARRAYBOUND 21
2.2.1.1.1.5SAFEARRAY2 21
2.2.1.1.1.6VT_COMPRESSED_LPWSTR 22
2.2.1.2CFullPropSpec 22
2.2.1.3CContentRestriction 23
2.2.1.4CInternalPropertyRestriction 25
2.2.1.5CNatLanguageRestriction 26
2.2.1.6CNodeRestriction 27
2.2.1.7CPropertyRestriction 27
2.2.1.8CReuseWhere 30
2.2.1.9CScopeRestriction 30
2.2.1.10CSort 31
2.2.1.11CVectorRestriction 32
2.2.1.12CCoercionRestriction 33
2.2.1.13CRelDocRestriction 33
2.2.1.14CProbRestriction 34
2.2.1.15CFeedbackRestriction 35
2.2.1.16CRestrictionArray 35
2.2.1.17CRestriction 36
2.2.1.18CColumnSet 38
2.2.1.19CCategorizationSet 38
2.2.1.20CCategorizationSpec 38
2.2.1.21CCategSpec 39
2.2.1.22CRangeCategSpec 40
2.2.1.23RANGEBOUNDARY 41
2.2.1.24CAggregSet 42
2.2.1.25CAggregSpec 42
2.2.1.26CSortAggregSet 44
2.2.1.27CAggregSortKey 44
2.2.1.28CInGroupSortAggregSets 44
2.2.1.29CInGroupSortAggregSet 45
2.2.1.30CDbColId 46
2.2.1.31CDbProp 46
2.2.1.31.1Database Properties 47
2.2.1.32CDbPropSet 48
2.2.1.33CPidMapper 49
2.2.1.34CColumnGroupArray 50
2.2.1.35CColumnGroup 50
2.2.1.36SProperty 51
2.2.1.37CRowSeekAt 51
2.2.1.38CRowSeekAtRatio 52
2.2.1.39CRowSeekByBookmark 52
2.2.1.40CRowSeekNext 53
2.2.1.41CRowsetProperties 53
2.2.1.42CRowVariant 54
2.2.1.43CSortSet 55
2.2.1.44CTableColumn 55
2.2.1.45SERIALIZEDPROPERTYVALUE 57
2.2.1.46CCompletionCategSpec 57
2.2.2Message Headers 58
2.2.3Messages 59
2.2.3.1CPMCiStateInOut 59
2.2.3.2CPMConnectIn 62
2.2.3.3CPMConnectOut 64
2.2.3.4CPMCreateQueryIn 65
2.2.3.5CPMCreateQueryOut 68
2.2.3.6CPMGetQueryStatusIn 68
2.2.3.7CPMGetQueryStatusOut 68
2.2.3.8CPMGetQueryStatusExIn 69
2.2.3.9CPMGetQueryStatusExOut 70
2.2.3.10CPMSetBindingsIn 71
2.2.3.11CPMGetRowsIn 72
2.2.3.12CPMGetRowsOut 74
2.2.3.13CPMRatioFinishedIn 77
2.2.3.14CPMRatioFinishedOut 78
2.2.3.15CPMFetchValueIn 78
2.2.3.16CPMFetchValueOut 79
2.2.3.17CPMGetNotify 80
2.2.3.18CPMSendNotifyOut 80
2.2.3.19CPMGetApproximatePositionIn 81
2.2.3.20CPMGetApproximatePositionOut 81
2.2.3.21CPMCompareBmkIn 81
2.2.3.22CPMCompareBmkOut 82
2.2.3.23CPMRestartPositionIn 83
2.2.3.24CPMFreeCursorIn 83
2.2.3.25CPMFreeCursorOut 83
2.2.3.26CPMDisconnect 83
2.2.3.27CPMFindIndicesIn 84
2.2.3.28CPMFindIndicesOut 84
2.2.3.29CPMGetRowsetNotifyIn 85
2.2.3.30CPMGetRowsetNotifyOut 85
2.2.3.31CPMSetScopePrioritizationIn 87
2.2.3.32CPMSetScopePrioritizationOut 87
2.2.3.33CPMGetScopeStatisticsIn 87
2.2.3.34CPMGetScopeStatisticsOut 88
2.2.4Errors 88
2.2.5Standard Properties 89
2.2.5.1Query Properties 90
2.2.5.2Common Open Properties 90
3Protocol Details 164
3.1Server Details 165
3.1.1Abstract Data Model 165
3.1.2Timers 166
3.1.3Initialization 166
3.1.4Higher-Layer Triggered Events 166
3.1.5Processing and Sequencing Rules 166
3.1.5.1Remote Windows Search Service Catalog Management 168
3.1.5.1.1Receiving a CPMCiStateInOut Request 168
3.1.5.2Remote Windows Search Service Querying 169
3.1.5.2.1Receiving a CPMConnectIn Request 169
3.1.5.2.2Receiving a CPMCreateQueryIn Request 170
3.1.5.2.3Receiving a CPMGetQueryStatusIn Request 170
3.1.5.2.4Receiving a CPMGetQueryStatusExIn Request 171
3.1.5.2.5Receiving a CPMRatioFinishedIn Request 173
3.1.5.2.6Receiving a CPMGetRowsIn Request 173
3.1.5.2.7Receiving a CPMFetchValueIn Request 176
3.1.5.2.8Receiving a CPMSetBindingsIn Request 176
3.1.5.2.9Receiving a CPMGetNotify Request 177
3.1.5.2.10Receiving a CPMGetApproximatePositionIn Request 178
3.1.5.2.11Receiving a CPMCompareBmkIn Request 178
3.1.5.2.12Receiving a CPMRestartPositionIn Request 179
3.1.5.2.13Receiving a CPMFreeCursorIn Request 180
3.1.5.2.14Receiving a CPMDisconnect Request 180
3.1.5.2.15Receiving a CPMFindIndicesIn Request 180
3.1.5.2.16Receiving a CPMGetRowsetNotifyIn 181
3.1.5.2.17Receiving a CPMGetScopeStatisticsIn 181
3.1.5.2.18Receiving a CPMSetScopePrioritizationIn 182
3.1.6Timer Events 183
3.1.7Other Local Events 183
3.2Client Details 201
3.2.1Abstract Data Model 201
3.2.2Timers 201
3.2.3Initialization 201
3.2.4Higher-Layer Triggered Events 202
3.2.4.1Remote Windows Search Service Catalog Management 202
3.2.4.1.1Sending a CPMCiStateInOut Request 202
3.2.4.2Remote Windows Search Service Catalog Query Messages 202
3.2.4.2.1Sending a CPMConnectIn Request 202
3.2.4.2.2Sending a CPMCreateQueryIn Request 203
3.2.4.2.3Sending a CPMSetBindingsIn Request 204
3.2.4.2.4Sending a CPMGetRowsIn Request 204
3.2.4.2.5Sending a CPMFetchValueIn Request 204
3.2.4.2.6Sending a CPMFreeCursorIn Request 205
3.2.4.2.7Sending a CPMDisconnect Message 205
3.2.4.2.8Sending a CPMFindIndicesIn Request 205
3.2.4.2.9Sending a CPMGetRowsetNotifyIn Request 205
3.2.4.2.10Sending a CPMGetScopeStatisticsIn Request 205
3.2.4.2.11Sending a CPMSetScopePrioritizationIn Request 206
3.2.5Processing and Sequencing Rules 206
3.2.5.1Receiving a CPMCreateQueryOut Response 206
3.2.5.2Receiving a CPMGetRowsOut Response 206
3.2.5.3Receiving a CPMFetchValueOut Response 207
3.2.5.4Receiving a CPMFreeCursorOut Response 208
3.2.5.5Receiving a CPMFindIndicesOut Response 208
3.2.5.6Receiving a CPMGetRowsetNotifyOut Response 208
3.2.5.7Receiving a CPMGetScopeStatisticsOut Response 208
3.2.5.8Receiving a CPMSetScopePrioritizationOut Response 209
3.2.6Timer Events 209
3.2.7Other Local Events 209
4Protocol Examples 210
4.1Example 1 210
5Security 224
5.1Security Considerations for Implementers 224
5.2Index of Security Parameters 224
6Appendix A: Product Behavior 225
7Change Tracking 229
8Index 231