Descriptor arrays are supplied in two variants:
the 16 bit variant for 16 bit descriptors. These descriptors are used for handling Unicode strings and double byte valued data
the 8 bit variant for 8 bit variant descriptors. These descriptors are used for handling non-Unicode strings and single byte valued data (binary data).
Descriptor arrays are also supplied as build independent types. These are used for descriptors which are used to represent text strings.
By using build independent types, the appropriate variant, either 16 bit or 8 bit, is selected at build time depending on
whether the _UNICODE
macro has been defined or not.
Binary data always requires the 8 bit variant, regardless of the build, and this should be explicitly used in program code.
Explicit use of the 16 bit variant is rare.
With a few exceptions, the behaviour of both 8 bit and 16 bit variants is the same.