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.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |