2.2.1.5.2 32-bit Stream Object Header Start

A 32-bit header for either a single or a start of a compound object has the following 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

A

B

Type

Length

Large Length (variable)

A – Header Type (2-bit): A flag that specifies a 32-bit stream object start. This MUST be set to 0x2.

B - Compound (1-bit): If set, a bit that specifies a compound parse type is needed, and MUST end with either an 8-bit Stream Object Header end (section 2.2.1.5.3) or a 16-bit Stream Object Header end (section 2.2.1.5.4). If the bit is not set, it specifies a single object.

Type (14-bits): A 14-bit unsigned integer that specifies the stream object type (see the following table for possible values).

Length (15-bits): A 15-bit unsigned integer that specifies the length in bytes for additional data (if any) before the next Stream Object Header start or Stream Object Header end. If the length is more than 32766, this field MUST specify 32767, and a Large Length field MUST be specified.

Large Length (variable): An optional compact unsigned 64-bit integer (section 2.2.1.1) that specifies the length in bytes for additional data (if any). This field MUST be specified if the Length field contains 32767, and MUST NOT be specified if the Length field contains any other value than 32767.

The following table lists the possible stream object types, and the corresponding Compound value.

Stream object type

Value

Compound

Request

0x040

1

Sub-response

0x041

1

Sub-request

0x042

1

Read access response

0x043

1

Specialized Knowledge

0x044

1

Write access response

0x046

1

Query Changes Filter

0x047

1

Error Win32

0x049

0

Error Protocol

0x04B

0

Error

0x04D

1

Error String Supplemental Info

0x04E

0

User Agent version

0x04F

0

Query Changes Filter schema specific

0x050

0

Query Changes request

0x051

0

Error HRESULT

0x052

0

Query Changes Filter Data Element IDs

0x054

0

User Agent GUID

0x055

0

Query Changes Filter Data Element type

0x057

0

Query Changes data constraint

0x059

0

Put Changes request

0x05A

0

Query Changes request arguments

0x05B

0

Query Changes Filter Cell ID

0x05C

0

User Agent

0x05D

1

Query Changes response

0x05F

0

Query Changes Filter hierarchy

0x060

0

Response

0x062

1

Error cell

0x066

0

Query Changes Filter flags

0x068

0

Data Element Fragment

0x06A

0

Fragment Knowledge

0x06B

1

Fragment Knowledge entry

0x06C

0

Object Group metadata declarations

0x79

1

Object Group metadata

0x78

0

Allocate Extended GUID Range request (section 2.2.2.1.5)

0x080

0

Allocate Extended GUID Range response (section 2.2.3.1.4)

0x081

0

Target Partition Id (section 2.2.2.1.1)

0x83

0

Put Changes Lock Id (section 2.2.2.1.4.2)

0x85

0

Additional Flags (section 2.2.2.1.4.1)

0x86

0

Put Changes Response

0x87

0

Request hashing options

0x88

0

Diagnostic Request Option Output (section 2.2.3.1.3.1)

0x89

0

Diagnostic Request Option Input (section 2.2.2.1.4.3)

0x8A

0

User Agent Client and Platform

0x8B

0

Version Token Knowledge (section 2.2.1.13.6)

0x8C

0

Cell Roundtrip Options

0x8D

0

File Hash

0x8E

0