2.2.3 EncodingUnitInstanceNoClass

The EncodingUnitInstanceNoClass is the root node of the encoding that is used for encoding instances if the CIM instance is encoded as specified in [MS-WMI] section 2.2.14.4. During transmission, this block is contained within the ObjectArray structure, as specified in [MS-WMI] section 2.2.14.

 EncodingUnitInstanceNoClass = ObjectFlags [Decoration] 
       EncodingLength InstanceFlags InstanceClassName NdTable 
       InstanceData InstanceQualifierSet InstanceHeap

ObjectFlags (section 2.2.6) indicates whether the Decoration (section 2.2.7) block is present as specified in section 2.2.6. When used in EncodingUnitInstanceNoClass, the bit flag CIM class (0x01) MUST NOT be set in ObjectFlags. Other bit flags of ObjectFlags MUST follow the constraints specified in section 2.2.6.

The Decoration block contains the server and CIM namespace from which the object originates.

The EncodingLength field specifies the length, in octets, of itself and all the following fields.

InstanceFlags (section 2.2.54) is reserved and MUST be zero.

The CIM class name to which the CIM instance belongs is referenced by InstanceClassName.

The values for the properties of an instance are stored in NdTable and InstanceData. The length of NdTable can be calculated as specified in section 2.2.26. Because default values from CIM class definitions can be used in a CIM instance, as specified in [DMTF-DSP0004], the NdTable bits are set to indicate whether NULL or a default value is in use for each property.

Any qualifier for the instance or for the properties of instance is stored in InstanceQualifierSet.

The values for any Heap-referenced items anywhere in the EncodingUnitInstanceNoClass encoding block MUST be contained in the InstanceHeap.

Note: EncodingUnitInstanceNoClass contains all the fields of InstanceType except CurrentClass. To minimize the amount of data transmitted, the ClassType is sent the first time using WBEMOBJECT_INSTANCE, as specified in [MS-WMI] section 2.2.14.3. When instances of the same class need to be transmitted again, they are sent using WBEMOBJECT_INSTANCE_NOCLASS, as specified in [MS-WMI] section 2.2.14.4, which does not have CurrentClass. To encode or decode EncodingUnitInstanceNoClass, the CurrentClass associated with the WBEMOBJECT_INSTANCE_NOCLASS MUST be found as specified in [MS-WMI] section 2.2.14.4. This CurrentClass MUST be inserted into the data after Decoration, and all the data starting with the CurrentClass MUST be encoded or decoded exactly as InstanceType.