2.2.2 Message Headers

All Content Indexing Services Protocol messages have a 16-byte header.

The following diagram shows the Content Indexing Services Protocol message header format.


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

_msg

_status

_ulChecksum

_ulReserved2

_msg (4 bytes): A 32-bit integer that identifies the type of message following the header. The following table lists the Content Indexing Services Protocol messages and the integer values specified for each message. As shown in the table, some values identify two messages in the table. In those instances, the message following the header can be identified by the direction of the message flow. If the direction is client to server, the message with "In" appended to the message name is indicated. If the direction is server to client, the message with "Out" appended to the message name is indicated.

Value

Meaning

0x000000C8

CPMConnectIn or CPMConnectOut

0x000000C9

CPMDisconnect

0x000000CA

CPMCreateQueryIn or CPMCreateQueryOut

0x000000CB

CPMFreeCursorIn or CPMFreeCursorOut

0x000000CC

CPMGetRowsIn or CPMGetRowsOut

0x000000CD

CPMRatioFinishedIn or CPMRatioFinishedOut

0x000000CE

CPMCompareBmkIn or CPMCompareBmkOut

0x000000CF

CPMGetApproximatePositionIn or CPMGetApproximatePositionOut

0x000000D0

CPMSetBindingsIn

0x000000D1

CPMGetNotify

0x000000D2

CPMSendNotifyOut

0x000000D7

CPMGetQueryStatusIn or CPMGetQueryStatusOut

0x000000D9

CPMCiStateInOut

0x000000E1

CPMForceMergeIn

0x000000E4

CPMFetchValueIn or CPMFetchValueOut

0x000000E6

CPMUpdateDocumentsIn

0x000000E7

CPMGetQueryStatusExIn or CPMGetQueryStatusExOut

0x000000E8

CPMRestartPositionIn

0x000000E9

CPMStopAsynchIn

0x000000EC

CPMSetCatStateIn or CPMSetCatStateOut

_status (4 bytes): An HRESULT value, indicating the status of the requested operation. When sent by the client, can be set to any arbitrary value and MUST be ignored on receipt.<5>

_ulChecksum (4 bytes): The _ulChecksum MUST be calculated as specified in section 3.2.4 for the following messages:

  • CPMConnectIn

  • CPMCreateQueryIn

  • CPMSetBindingsIn

  • CPMGetRowsIn

  • CPMFetchValueIn

Note For all other messages from the client, _ulChecksum MUST be set to 0x00000000. A client MUST ignore the _ulChecksum field.

_ulReserved2 (4 bytes): If 32-bit offsets are being used, MUST be set to 0x00000000 and MUST be ignored by the receiver. _ulReserved2 can be used in 64-bit scenarios, as specified in section 2.2.3.16.