2.2.1.10.1 CERTTRANSDBRESULTCOLUMN Marshaling Format
The CERTTRANSDBRESULTCOLUMN structure (section 2.2.1.10) is encoded within a CERTTRANSBLOB structure (section 2.2.1.4) such that the pb member of the CERTTRANSBLOB points to the beginning of an array of one or more CERTTRANSDBRESULTROW structures (section 2.2.3), each of which contains one or more CERTTRANSDBRESULTCOLUMN structures.
The packet containing an array of some number, "N", of CERTTRANSDBRESULTCOLUMN structures is specified in the following packet diagrams. The actual value of "N" is the value of the corresponding ccol member of CERTTRANSDBRESULTROW.
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1CERTTRANSDBRESULTCOLUMN Structures (variable)
...
...
Result_Column_Data (variable)
...
...
CERTTRANSDBRESULTCOLUMN Structures (variable): An array of CERTTRANSDBRESULTCOLUMN structures.
-
Each of the structures is marshaled in the following manner. The fields in the following diagram correspond to the similarly-named members of the CERTTRANSDBRESULTCOLUMN structure.
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1Result_Column_Type
Result_Column_Index
Result_Column_obValue
Result_Column_cbValue
-
Result_Column_Type (4 bytes): The value indicating the type for the column. The value MUST be little-endian encoded.
-
Result_Column_Index (4 bytes): The value indicating the ID for the column. The value MUST be little-endian encoded.
-
Result_Column_obValue (4 bytes): The offset from the start of the corresponding CERTTRANSDBRESULTROW structure to the column data. The offset MUST be little-endian encoded. The offset MUST be divisible by 4.
-
Result_Column_cbValue (4 bytes): The length of the data in the column referenced by obValue (offset). The length value MUST be little-endian encoded.
Result_Column_Data (variable): Contains the data for all columns. Data for individual columns MUST NOT overlap with any other column data. Arbitrary padding can be inserted between data values. Based on the value of the Type field, the data value for the column MUST be encoded as follows.
-
Type field value
Column type
Data encoding
0x01
Integer
MUST use little-endian encoding format.
0x02
Date
MUST use little-endian encoding format.
0x03
Binary
0x04
String
MUST use little-endian encoding format for each character of the null-terminated UNICODE string.