2.4.107 ExtSST

The ExtSST record specifies the location of sets of strings within the shared string table, specified in the SST record. This record is used to perform a quick lookup of a string within the shared string table, given the string’s index into the table (as specified in LabelSst). To do that, first use the string’s index and the value of dsst to find the set the string is in, then use the corresponding element in rgISSTInf to find the beginning of that set, and finally search incrementally forward in that set to locate the string.


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

dsst

rgISSTInf (variable)

...

dsst (2 bytes): An unsigned integer that specifies the number of strings in each set specified by ISSTInf. Number of strings in each set except the last set MUST be equal to the value specified by the following formula:

max(((SST.cstUnique / 128) + 1),8)

Number of strings in the last set MUST be less than or equal to the value specified by the following formula:

max(((SST.cstUnique / 128) + 1),8)

rgISSTInf (variable): An array of ISSTInf structures. Each array element specifies the location of a set of strings within the SST record. The number of elements is determined by first evaluating the following formula<83>:

(SST.cstUnique mod ExtSST.dsst)

If the result of the previous formula is equal to 0, then the number of elements MUST be equal to the value as specified by the following formula:

(SST.cstUnique / ExtSST.dsst)

Otherwise, the number of elements MUST be equal to the value as specified by the following formula:

(SST.cstUnique / ExtSST.dsst) + 1