2.2.1.7.1 CERTTRANSDBCOLUMN Marshaling Format

The CERTTRANSDBCOLUMN structure (section 2.2.1.7) is encoded within the byte array that is referenced by the pb member of a CERTTRANSBLOB structure (section 2.2.1.4).

The packet that contains an array of some number, "N", of CERTTRANSDBCOLUMN structures is specified in the following packet diagrams. The actual value of "N" is a separate return parameter for the EnumViewColumn (section 3.1.4.1.9) and EnumViewColumnTable (section 3.2.4.2.5) methods.


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

CERTTRANSDBCOLUMN Structures (variable)

...

...

Column_Schema_Data (variable)

...

...

CERTTRANSDBCOLUMN Structures (variable): An array of CERTTRANSDBCOLUMN structures. These structures MUST be contiguous and MUST NOT be padded. All structures MUST appear prior to any information about the column schema data, which appears in the Column_Schema_Data byte array at the end of the packet.

Each of the structures is marshaled in the following manner. The fields in the following diagram correspond to the similarly named members of the CERTTRANSDBCOLUMN structure.


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

Column_Type_Value

Column_Index_Value

Column_cbMax_Value

Column_obwzName_Offset

Column_obwzDisplayName_Offset

Column_Type_Value (4 bytes): The value indicating the type for the column. The value MUST be little-endian encoded.

Column_Index_Value (4 bytes): The value indicating the ID for the column. The value MUST be little-endian encoded.

Column_cbMax_Value (4 bytes): The maximum length of data that this column can contain. The value MUST be little-endian encoded.

Column_obwzName_Offset (4 bytes): The offset from the beginning of the byte array buffer that is pointed to by the pb member in the containing CERTTRANSBLOB structure to where the string that contains the name of this column can be found. The format is a null-terminated Unicode string. The offset MUST be divisible by 4. The offset value MUST be little-endian encoded.

Column_obwzDisplayName_Offset (4 bytes): The offset from the beginning of the byte array buffer that is pointed to by the pb member in the containing CERTTRANSBLOB structure to where the string that contains the display name of this column can be found. The format is a null-terminated Unicode string. The offset MUST be divisible by 4. The offset value MUST be little-endian encoded.

Column_Schema_Data (variable): Contains the schema data for all columns that are referenced by the obwzName and obwszDisplayName fields of the CERTTRANSDBCOLUMN structures. Schema data for an individual column MUST NOT overlap with any other data. Arbitrary padding can be inserted between data values. Schema data MUST be little-endian encoded for each character of the null-terminated UNICODE string.