2.2.4.5 ms_union

As an extension to the NDR definition of union alignment (as specified in [C706] section 14.3.8), these extensions dictate that the discriminant MUST be aligned per the alignment rules of the data type of the discriminant, and the selected arm MUST be aligned to the largest alignment of all the arms, when ms_union is enabled. Also, in case of an array, each element of the array MUST be aligned to the largest alignment of all the arms. ms_union MUST be ignored in NDR64 transfer syntax. ms_union MUST be ignored for encapsulated unions.

ms_union is enabled for a union by applying the ms_union type attribute to that union in its IDL file, or for all unions in the IDL file, by using an implementation-specific compiler option.<50>