2.2.3.2 CPMConnectIn

The CPMConnectIn message begins a session between the client and server.

The format of the CPMConnectIn 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

_iClientVersion

_fClientIsRemote

_cbBlob1

_paddingcbdBlob2

_cbBlob2

_padding

...

...

MachineName (variable)

...

UserName (variable)

...

_paddingcPropSets (variable)

...

cPropSets

PropertySet1 (variable)

...

PropertySet2 (variable)

...

PaddingExtPropset (variable)

...

cExtPropSet

aPropertySets (variable)

...

_iClientVersion (4 bytes): A 32-bit integer indicating whether the server is to validate the checksum value specified in the _ulChecksum field of the message headers for messages sent by the client.

Note If the _iClientVersion field's lowest 2 bytes are set to 0x00000109 or greater, the server MUST validate the _ulChecksum field value for the following messages:

For details on how the server validates the value specified by the client in the _ulChecksum field for the messages previously listed, see section 3.2.4.

If the lowest 2 bytes are greater than 0x00000109, the client is assumed to be capable of handling 64-bit offsets in CPMGetRowsOut messages.<5><6>

_fClientIsRemote (4 bytes): A Boolean value indicating if the client is running on a different machine than the server. This field is set to 0x00000001 if the client is running on a different machine and 0x00000000 if it is not.

_cbBlob1 (4 bytes): A 32-bit unsigned integer indicating the size, in bytes, of the cPropSets, PropertySet1, and PropertySet2 fields combined.

_paddingcbdBlob2 (4 bytes): This field MUST be 4 bytes in length. The length of this field MUST be such that the byte offset from the beginning of the message to the beginning of the _cbBlob2 field is a multiple of 8. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

_cbBlob2 (4 bytes): A 32-bit unsigned integer indicating the size in bytes of the cExtPropSet and aPropertySet fields, combined.

_padding (12 bytes): Twelve bytes of padding that can contain arbitrary values and MUST be ignored.

MachineName (variable): The machine name of the client. The name string MUST be a null-terminated array of less than 512 Unicode characters, including the null terminator. The server MUST ignore this field upon receipt.

UserName (variable): A string that represents the user name of the person who is running the application that invoked this protocol. The name string MUST be a null-terminated array of less than 512 Unicode characters when concatenated with MachineName. The server MUST ignore this field upon receipt.

_paddingcPropSets (variable): This field MUST be 0 to 7 bytes in length. The number of bytes MUST be the number required to make the byte offset of the cPropSets field from the beginning of the message that contains this structure equal a multiple of 8. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

cPropSets (4 bytes): A 32-bit unsigned integer indicating the number of CDbPropSet structures following this field.

Note This field MUST be set to 0x0000002.

PropertySet1 (variable): A CDbPropSet structure with guidPropertySet containing DBPROPSET_FSCIFRMWRK_EXT.

PropertySet2 (variable):  A CDbPropSet structure with guidPropertySet containing DBPROPSET_CIFRMWRKCORE_EXT.

PaddingExtPropset (variable): This field MUST be 0 to 7 bytes in length. The number of bytes MUST be the number required to make the byte offset of the cExtPropSets field from the beginning of the message that contains this structure equal a multiple of 8. The value of the bytes can be any arbitrary value, and MUST be ignored by the receiver.

cExtPropSet (4 bytes): A 32-bit unsigned integer indicating the number of CDbPropSet structures following this field. This field must be greater than or equal to 1.

aPropertySets (variable): An array of CDbPropSet structures specifying other properties. The number of elements in this array MUST be equal to cExtPropSet.

Although any value can be passed here, the server MUST ignore anything except the following property, which must be the first property in aPropertySets. This value must also align with the DBPROP_CI_CATALOG_NAME specified in DBPROPSET_FSCIFRMWRK_EXT.

Value

Meaning

DBPROP_CI_CATALOG_NAME

0x00000002

This is the catalog name for the query.