2.2 Common Data Types

The Fax Server and Client Remote Protocol MUST specify that the RPC runtime support only the Network Data Representation (NDR) 20 transfer syntax, as specified in [C706] part 3. NDR is a specification that defines a mapping from Interface Definition Language (IDL) data types onto octet streams; 20 is the format label for NDR specification. For more information, see [C706] part 4 and [MS-RPCE].

This protocol MUST enable the ms_union extension as specified in [MS-RPCE] section 2.2.4.5.

In addition to the RPC base types and definitions specified in [C706] and [MS-DTYP], additional data types are defined in the following sections.

All types defined in the following sections MUST be aligned on an 8-byte boundary. If the size of a type is not an integral multiple of 8 bytes, the data MUST be padded at the end to ensure that its total length is an integral multiple of 8 bytes. The padding bytes, when present, SHOULD be filled with values of zero.

All character strings are Unicode UTF-16LE and, unless specifically noted, all strings are case-sensitive. All character strings MUST be null-terminated.

Some methods of the Fax Server and Client Remote Protocol use byte arrays to transmit or receive specific common data types defined here. In some cases, such a byte-array is used to transmit or receive an array of instances of a common data type.

All common data types that are standard marshaled are defined here using IDL. All common data types that are custom marshaled (using byte-arrays) by one or more protocol methods are defined by diagrams describing the custom-marshaled representation of the respective data type.

This protocol specification uses curly-braced string GUIDs as specified in [MS-DTYP] section 2.3.4.3.