Descriptor for variable-length array of variable-sized elements
typedef struct _UMAVarArrayDescr { uint32 offset; /* Offset to beginning of data. */ uint32 count; /* Count of elements in the array. */ } UMAVarArrayDescr; typedef UMAVarArrayDescr * UMAArrayDescr ;
Support for random access to variable length members of structures requires that the address of these members is derived from fixed size structures at known offsets within the main structure definition. There are 3 types of variable length member descriptor structures, all of which contain the offset required to locate the variable length data. The 'offset' is considered relative to the base address of the parent structure of the variable-length member descriptor. Extra information concerning the variable length data may also be available.
Note that it is not possible to determine whether a variable length data has been initialized before it is referenced. As a convention, the offset plus length equal 0 could be used to indicate an uninitialized variable length data item.