3 Structure Examples

This section illustrates a simple example of the binary encoding for a simple CIM class definition and its instances. The MOF textual representation is used, as specified in [DMTF-DSP0004].

 Class base

 {
       [key]
       sint32  Id;
  
 };           
 [Description("MyClass Example")]
 class MyClass  :  Base
 {
       [read, write]
       string   Data1;
  
       string   Data2 = "defaultValue";     
  
 uint32 Array[ ];
 };

This example has a simple CIM class hierarchy of two classes: a base CIM class and a derived CIM class called MyClass. The values in square brackets are metadata items called qualifiers. The individual fields are called properties and are identical to member variables, properties, or fields of object-oriented programming languages such as C++, C#, and Java.

The binary encoding is presented for both classes: first base, and then MyClass. Because each CIM class contains the encoding of itself and its base class, this encoding illustrates all the concepts that are involved in encoding classes.

The raw hexadecimal encoding of base is as follows.

  
 1)  78 56 34 12 D0 00 00 00 
 2)  05 00 44 50 52 41 56 41 54 2D 44 45 
 3)  56 00 00 52 4F 4F 54 00 1D 00 00 00 00 FF FF FF 
 4)  FF 00 00 00 00 04 00 00 00 04 00 00 00 00 00 00 
 5)  00 00 00 00 80 
 6)  0C 00 00 00 00 00 00 00 00 00 00 80 
 7)  66 00 00 00 00 00 00 00 00 05 00 00 00 04 00 
 8)  00 00 04 00 00 00 01 00 00 00 06 00 00 00 0A 00 
 9)  00 00 05 FF FF FF FF 3C 00 00 80 00 42 61 73 65 
 10) 00 00 49 64 00 03 00 00 00 00 00 00 00 00 00 00 
 11) 00 00 00 1C 00 00 00 0A 00 00 80 03 08 00 00 00 
 12) 34 00 00 00 01 00 00 80 13 0B 00 00 00 FF FF 00 
 13) 73 69 6E 74 33 32 00 0C 00 00 00 00 00 34 00 00 
 14) 00 00 80 00 80 13 0B 00 00 00 FF FF 00 73 69 6E 
 15) 74 33 32 00

For the ObjectEncodingLength, see the note in section 2.2.1. The preceding sample ObjectEncodingLength value is 0xD0, which is larger than the actual required number of octets.

The following table decodes base using ABNF.

 Relevant offset

 Octet values

 Comments

EncodingUnit.

78 56 34 12

Standard CIM object Signature (line 1).

D0 00 00 00

EncodingUnit::ObjectEncodingLength UINT32 length of entire CIM class encoding (0xD0, 208 decimal octets).

ObjectBlock.

05

Decoration (line 2, shaded octet).

Binary = 00000101.

Bit 0 set. This is a CIM class definition (not a CIM instance).

Bit 2 set. This CIM object is decorated with a server and CIM namespace name.

00 44 50 52 41 56 41

54 2D 44 45 56 00

The DecServerName (Encoded-String) on lines 2–3 that is the server name decoration that indicates from which machine on the network this CIM object originated.

The first octet indicates that this string is encoded in ANSI 8-bit characters, not 16-bit UNICODE, and the value is DPRAVAT-DEV followed by an 8-bit NULL terminator, the last octet.

00 52 4F 4F 54 00

The DecNamespaceName (Encoded-String) that indicates from which CIM namespace the CIM object originates.

The first octet indicates that this string is encoded in ANSI 8-bit characters, not 16-bit UNICODE, and the value is ROOT, followed by an 8-bit NULL terminator, the last octet.

Encoding.

1D 00 00 00

ParentClass::ClassAndMethodsPart::ClassPart::ClassHeader::EncodingLength.

This is the length, in octets, of the encoding unit, or 0x1D octets.

00

ReservedOctet (shaded octet line 3). This is required to be zero.

FF FF FF FF

ClassNameRef.

This value indicates that there is no parent CIM class name because base is the basest class.

00 00 00 00

NdTableValueTableLength (italics line 4).

This is zero, indicating that there is no NdTable or ValueTable for the parent class because there is no parent CIM class to base.

04 00 00 00

DerivationList.

This indicates the length of the list of superclasses to this class. Because the list consists only of the EncodingLength UINT32, it is four octets.

The ClassNameEncoding list is empty.

04 00 00 00

ClassQualifierSet::QualifierSet::EncodingLength.

There is no CIM qualifier set for the base CIM class of base because it has no base; so this CIM qualifier set is empty and consists of the length only of the EncodingLength UINT32, which is four octets.

00 00 00 00

PropertyLookupTable::PropertyCount (shaded octets, end of line four, beginning of line five).

There are zero properties in the base CIM class, which does not exist because base is the basest class.

NdTable and ValueTable are empty and contain no octets because there are no properties.

00 00 00 80

ClassHeap::Heap::HeapLength.

Heaps are always prefixed by their length in 31 bits with the most significant bit set. This indicates a zero-length Heap.

0C 00 00 00

MethodsPart::EncodingLength.

There are 12 octets in the encoding of the method table.

00 00

MethodsPart::MethodCount.

A 16-bit value that indicates how many methods are in the class, or zero.

00 00

MethodsPart::MethodCountPadding.

This is padding and can be zero or any random value.

00 00 00 80

MethodsPart::MethodHeap.

The heap length of the method heap, or zero. The most significant bit is always set on HeapLength values, and only 31 bits are significant.

This is located on the shaded portion of line 6.

At this point, the nonexistent ParentClass ends, and CurrentClass begins, which is where base is specified.

66 00 00 00

ClassHeader::EncodingLength, indicating that this encoding for base is 0x66 octets in length (102 decimal).

Beginning of line 7.

00

ReservedOctet.

00 00 00 00

ClassHeader::ClassNameRef.

The offset into the heap of the CIM class name base. The CIM class name is the first item in the heap, or an Encoded-String with the value of base.

05 00 00 00

ClassHeader::NdTableValueTableLength.

The NdTable and ValueTable is five octets in length.

04 00 00 00

DerivationList::EncodingLength.

There is no list of superclasses because base is the basest class. The encoding length is only four octets, which is the length of the EncodingLength.

04 00 00 00

ClassQualifierSet::QualifierSet::EncodingLength.

There are no class-level qualifiers on this class; so the encoding length for the set of qualifiers is just the length of the EncodingLength field, or four octets.

01 00 00 00

PropertyLookupTable::PropertyCount.

There is one CIM property in this CIM class (italic line 8).

PropertyLookupTable::PropertyLookup.

06 00 00 00

PropertyNameRef.

The location in the heap of the Encoded-String of the CIM property name, or offset 6 into the heap.

A0 00 00 00

PropertyInfoRef.

The location in the heap of the PropertyInfo.

05

NdTable.

This has the binary value 00000101.

Because there is only one property, only the two least significant bits are valid, and the other bits can be any value.

In this case, the bit value 01 indicates that the property has a default value of NULL; however, the default is not inherited from a superclass.

FF FF FF FF

EncodedValue::NoValue. No value is defined for the CIM property by default in the CIM class definition.

3C 00 00 80

ClassHeap::Heap::HeapLength.

Heap Offset

0

00 42 61 73 65 00

Encoded-String base.

The first octet indicates ANSI encoding, and the last octet is the null terminator.

Heap Offset

6

00 49 64 00

Encoded-String ID, the name of the property.

03 00 00 00

PropertyInfo::PropertyType.

CIM-TYPE-SINT32 == 3.

00 00

PropertyInfo::DeclarationOrder.

00 00 00 00

PropertyInfo::ValueTableOffset.

The offset in the ValueTable of the default value, or zero.

00 00 00 00

PropertyInfo::ClassOfOrigin.

A value of zero indicates the current class.

1C 00 00 00

PropertyQualifierSet::QualifierSet::EncodingLength.

There are 1C octets of encoding for the QualifierSet for this property.

0A 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is cimtype.

03

Qualifier::QualifierFlavor.

Bits 00000011.

Bit 0 indicates that the CIM qualifier is a SYSTEM CIM qualifier (key).

Bit 1 indicates that the CIM qualifier is recommended to be propagated to derived classes.

08 00 00 00

Qualifier::QualifierType.

This indicates CIM-TYPE-STRING, which is the data type of the CIM qualifier.

34 00 00 00

Qualifier::QualifierValue.

This is an EncodedValue, depending on the type in the previous field. Because the CIM qualifier type is CIM-TYPE-STRING, this value is the HeapRef to an Encoded-String.

Another CIM qualifier follows for the CIM property because all the octets in PropertyQualifierSet::QualifierSet::EncodingLength have not yet been completely used.

01 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is key.

13

QualifierFlavor.

0B 00 00 00

QualifierType.

CIM-TYPE-BOOLEAN.

FF FF

EncodedValue for the CIM qualifier that is BOOL.

The value in this case is logical TRUE (all bits set).

Offset 0x34

00 73 69 6E 74 33 32

00

An Encoded-String with a value of sint32. This is the value of the first CIM qualifier in this table.

At this point, the Heap for the CIM class has encoded because all of its EncodingLength has been used.

The MethodsPart for the CIM class now begins.

0C 00 00 00

MethodsPart::EncodingLength, or 12 octets.

00 00

MethodsPart::MethodCount, or zero methods.

34 00

MethodsPart::MethodCountPadding.

Any two octets with random values.

00 00 00 80

MethodsPart::MethodHeap::Heap::HeapLength.

This is a zero-length heap, indicating no methods. The most significant bit is always set for HeapLength values.

Remaining Octets

The remaining octets are not significant. Also see EncodingUnit (section 2.2.1).

The raw hexadecimal encoding of MyClass is as follows.

  
     78 56 34 12 2E 02 00 00 05 00 44 50 
     52 41 56 41 54 2D 44 45 56 00 00 52 4F 4F 54 00 
     66 00 00 00 00 00 00 00 00 05 00 00 00 04 00 00 
     00 04 00 00 00 01 00 00 00 06 00 00 00 0A 00 00 
     00 05 FF FF FF FF 3C 00 00 80 00 42 61 73 65 00 
     00 49 64 00 03 00 00 00 00 00 00 00 00 00 00 00 
     00 00 1C 00 00 00 0A 00 00 80 03 08 00 00 00 34 
     00 00 00 01 00 00 80 13 0B 00 00 00 FF FF 00 73 
     69 6E 74 33 32 00 0C 00 00 00 00 00 34 00 00 00 
     00 80 76 01 00 00 00 00 00 00 00 11 00 00 00 0E 
     00 00 00 00 42 61 73 65 00 06 00 00 00 11 00 00 
     00 09 00 00 00 00 08 00 00 00 16 00 00 00 04 00 
     00 00 27 00 00 00 2E 00 00 00 55 00 00 00 5C 00 
     00 00 99 00 00 00 A0 00 00 00 C7 00 00 00 CB 00 
     00 00 47 FF FF FF FF FF FF FF FF FD 00 00 00 FF 
     FF FF FF 11 01 00 80 00 4D 79 43 6C 61 73 73 00 
     00 44 65 73 63 72 69 70 74 69 6F 6E 00 00 4D 79 
     43 6C 61 73 73 20 45 78 61 6D 70 6C 65 00 00 41 
     72 72 61 79 00 13 20 00 00 03 00 0C 00 00 00 01 
     00 00 00 11 00 00 00 0A 00 00 80 03 08 00 00 00 
     4D 00 00 00 00 75 69 6E 74 33 32 00 00 44 61 74 
     61 31 00 08 00 00 00 01 00 04 00 00 00 01 00 00 
     00 27 00 00 00 0A 00 00 80 03 08 00 00 00 91 00 
     00 00 03 00 00 80 00 0B 00 00 00 FF FF 04 00 00 
     80 00 0B 00 00 00 FF FF 00 73 74 72 69 6E 67 00 
     00 44 61 74 61 32 00 08 00 00 00 02 00 08 00 00 
     00 01 00 00 00 11 00 00 00 0A 00 00 80 03 08 00 
     00 00 BF 00 00 00 00 73 74 72 69 6E 67 00 00 49 
     64 00 03 40 00 00 00 00 00 00 00 00 00 00 00 00 
     1C 00 00 00 0A 00 00 80 23 08 00 00 00 F5 00 00 
     00 01 00 00 80 33 0B 00 00 00 FF FF 00 73 69 6E 
     74 33 32 00 00 64 65 66 61 75 6C 74 56 61 6C 75 
     65 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 73 
     00 00 00 80 32 00 00 64 65 66 61 75 6C 74 56 61 
     6C 75 65 00 00 00 00 00 00 00 00 00 00 00 00 00 
     00 00 00 00 00 80 00 00 00 00

In the following table, this encoding is decoded by using ABNF. Note that the ParentClass part of this encoding is the same as the CurrentClass part of the base CIM class encoding.

 Relevant offset

 Octet values

 Comments

EncodingUnit.

78 56 34 12

Signature.

23 02 00 00

EncodingUnit::ObjectEncodingLength UINT32 length of entire CIM class encoding (0x223 octets).

ObjectBlock.

05

Decoration.

Bit 0 set == this is a CIM class definition.

Bit 2 set == this CIM object is decorated with a server and CIM namespace name.

Decoration.

00 44 50 52 41 56 41

54 2D 44 56 00

DecServerName. This is an Encoded-String that contains the name of the server that transmitted the CIM object DPRAVAT-DEV.

00 52 4F 4F 54 00

DecNamespaceName. This is an Encoded-String that contains the CIM namespace. The CIM object was created from ROOT.

Encoding for the derived CIM class. Base is appended at this location.

This is the ClassType::ParentClass block.

66 00 00 00

ParentClass::ClassAndMethodsPart::ClassPart::ClassHeader::EncodingLength.

UINT32 length of ClassPart for the base class, 0x66 octets.

A separate binary chunk for MyClass follows, appended to this CIM class definition.

00

ReservedOctet.

00 00 00 00

ClassNameRef. Offset to CIM class name in the ClassHeap.

05 00 00 00

 NdTableValueTableLength. Length of NdTable and ValueTable for properties (five octets).

04 00 00 00

DerivationList length, including the length of this UINT32.

Because this is four octets and all four are used completely with this value, there is no derivation list.

04 00 00 00

ClassQualifierSet::QualifierSet::EncodingLength, including the length of this UINT32.

 Because all four octets are used completely with this value, there is no QualifierSet.

01 00 00 00

PropertyLookupTable::PropertyCount.

 This is the CIM property count, not the length, in octets.

06 00 00 00

PropertyLookup::PropertyNameRef.

 The name of the CIM property [0] in the form of an Encoded-String.

The 0x0006 offset is from the beginning of the ClassHeap, not from the beginning of this packet.

0A 00 00 00

PropertyLookup::PropertyInfoRef.

The offset for PropertyInfo for Property[0], including any qualifiers. This is the offset from the beginning of the ClassHeap, not the beginning of this packet.

NdTable.

05

This has the binary value 00000101.

Because there is only one property, only the two least significant bits are valid, and the other bits can be any value.

In this case, the bit value 01 indicates that the property has a default value of NULL, but the default is not inherited from a superclass.

ValueTable.

FF FF FF FF

ValueTable::EncodedValue.

There is only one CIM property, and this reserved value indicates that there is no default value.

3C 00 00 80

ClassHeap::Heap::HeapLength.

The length of heap is 0x3C octets. The most significant bit is set to 1 for all encodings.

0x0

00 42 61 73 65 00

Encoded-String base, which is the name of the class.

0x6

00 49 64 00

Encoded-String Property[0] name, which is Id.

0x10

03 00 00 00

PropertyInfo::PropertyType.

CIM-TYPE-SINT32 == 3.

0x14

00 00

PropertyInfo::DeclarationOrder. This is the 0th property.

0x16

00 00 00 00

PropertyInfo::ValueTableOffset.

0x1A

00 00 00 00

PropertyInfo::ClassOfOrigin.

CIM class of origin in DerivationList, or the 0th CIM class (this class).

1C 00 00 00

PropertyQualifierSet::QualifierSet::EncodingLength (0x1C octets in length, including itself).

0A 00 00 80

Qualifier::QualifierName.

CimType dictionary entry encoding, signaled by the most significant bit and the 0xA dictionary entry. This indicates that the current CIM qualifier is the CIMTYPE qualifier, which is required to be attached to every property.

03

QualifierSet::Qualifier::QualifierFlavor.

Here the octet is 03. This means that the bit 0 and bit 1 in the octet are set.

Bit 0 set == Propagate to instances.

Bit 1 set == Propagate to derived classes.

08 00 00 00

Qualifier::QualifierType.

CimType of CIM qualifier value 0x8 == CIM-TYPE-STRING.

34 00 00 00

Qualifier::QualifierValue.

A HeapRef to the string of the CIM qualifier value sint32.

01 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is key.

13

QualifierFlavor.

0B 00 00 00

QualifierType.

CIM-TYPE-BOOLEAN.

FF FF

An EncodedValue for the CIM qualifier, which is BOOL.

The value in this case is logical TRUE (all bits set).

0x34

00 73 69 6E 74 33 32

00

Encoded-String sint32.

0C 00 00 00

The length of MethodsPart, including itself.

00 00

MethodCount (zero methods).

34 00

Two octets of MethodPadding; any values are valid.

00 00 00 80

MethodHeap::Heap::HeapLength.

This is the length of Heap. Zero, with the most significant bit set, as for all heaps.

Encoding for the derived CIM class MyClass is appended at this location.

This is the ClassType::CurrentClass block.

76 01 00 00

ClassHeader::EncodingLength.

Length (0x176 octets).

00

Reserved. Must be zero.

00 00 00 00

The ClassNameRef to CIM class name. This is relative to the upcoming heap for this class, not the previous heap for base.

11 00 00 00

NdTableValueTableLength.

0E 00 00 00

The DerivationList length, in octets, including itself.

00 42 61 73 65 00

The Encoded-String base, which is the superclass to this class.

06 00 00 00

The EncodingLength of the previous string, or six octets (includes both the leading flag and trailing NULL).

11 00 00 00

The ClassQualifierSet::QualifierSet::EncodingLength length, in octets, including itself.

09 00 00 00

QualifierName, Heap offset to Encoded-String.

00

QualifierFlavor. 0 == Local.

08 00 00 00

QualifierType. 0x8 == CIM-TYPE-STRING.

16 00 00 00

QualifierValue. A HeapRef to the Encoded-String that is the value of the qualifier.

04 00 00 00

PropertyLookupTable::PropertyCount.

 There are four properties in this class.

The properties are sorted in this table, regardless of the order in which they appear in the current CIM class and any of its superclasses. This enables a binary search to be performed while locating properties by name.

27 00 00 00

PropertyInfo::PropertyNameRef.

 Offset in Heap to the CIM property name. Points to the Encoded-String array.

2E 00 00 00

PropertyInfo::PropertyInfoRef. Offset in Heap of the PropertyInfo table and any associated qualifiers for the property.

55 00 00 00

PropertyInfo::PropertyNameRef. Offset in Heap to the CIM property name. Points to the Encoded-String Data1.

5C 00 00 00

PropertyInfo::PropertyInfoRef. Offset in Heap of the PropertyInfo for Data1 and any associated qualifiers.

99 00 00 00

PropertyInfo::PropertyNameRef. Offset in Heap of the CIM property name. Points to Data2.

A0 00 00 00

PropertyInfo::PropertyInfoRef. Offset in Heap of PropertyInfo for Data2 and any associated qualifiers.

C7 00 00 00

PropertyInfo::PropertyNameRef. Offset in Heap of the CIM property name. Points to Id. All properties that are inherited from base classes are repeated in the PropertyLookupTable for each derived class.

CB 00 00 00

PropertyInfo::PropertyInfoRef. Offset in Heap of PropertyInfo for Id and any associated CIM qualifier sets.

47

NdTable.

01 00 01 11b.

Property 0 == 11b NULL, inherits DEFAULT.

Property 1 == 01 NULL, no inherited default.

Property 2 == 00 Not NULL, no inheritance.

Property 3 == 01 Null, no inherited default.

The indexes do not refer to the ordinal position in PropertyLookup; instead, they refer to the propertyIndex field for the CIM property in the PropertyInfo table for that property.

ValueTable.

0x0

FF FF FF FF

No default value.

0x4

FF FF FF FF

No default value.

0x8

FD 00 00 00

HeapRef to default value.

0xC

FF FF FF FF

No default value.

ClassHeap::Heap::HeapLength.

The length is 0x111 octets, and the most significant bit is always set.

0x0

00 4D 79 43 6C 61 73

73 00

Encoded-String MyClass.

0x9

00 44 65 73 63 72 69

70 74 69 6F 6E 00

Encoded-String Description.

0x16

00 4D 79 43 6C 61 73

73 20 45 78 61 6D 70

6C 65 00

Encoded-String MyClass Example.

0x27

00 41 72 72 61 79 00

Encoded-String Array.

0x2E

PropertyInfo for Array property.

13 20 00 00

PropertyType CIM-TYPE-UINT32 and CimArrayFlag.

03 00

DeclarationOrder (starting with 0). Array was the third CIM property after Id, Data1, and Data2. This is the value used in NdTable.

0C 00 00 00

ValueTableOffset Offset into ValueTable for default CIM property value. In this case, the offset points to 0xFFFFFFFF, which means there is no default value.

01 00 00 00

ClassOfOrigin.

Class 1 in DerivationList array.

11 00 00 00

PropertyQualifierSet::QualifierSet::EncodingLength, including itself.

0A 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is cimtype.

03

QualifierFlavor.

08 00 00 00

QualifierType, which is CIM-TYPE-STRING.

4D 00 00 00

QualifierValue. Because the type is string, the value is a HeapRef.

0x4D

00 75 69 6E 74 33 32

00

Encoded-String uint32.

0x55

00 44 61 74 61 31 00

Encoded-String Data1.

0x5C

PropertyInfo.

08 00 00 00

PropertyInfo::PropertyType, CIM-TYPE-STRING == 0x8.

01 00

PropertyInfo::DeclarationOrder, zero-origin. Original order was {Id, Data1, Data2, Array}; so this is Property[1].

04 00 00 00

PropertyInfo::ValueTableOffset. In this case, at that offset is the value 0xFFFFFFFF, which means there is no default.

01 00 00 00

PropertyInfo::ClassOfOrigin.

1 == Current class.

0x6A

PropertyQualifierSet for Data1.

27 00 00 00

EncodingLength of CIM qualifier set in octets, including itself.

0A 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is cimtype.

03

QualifierFlavor.

08 00 00 00

QualifierType or CIM-TYPE-STRING.

91 00 00 00

QualifierValue::EncodedValue, offset to value in current Heap.

Another CIM qualifier for the current PropertyInfo encoding.

03 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is read.

00

QualifierFlavor.

0B 00 00 00

QualifierType is CIM-TYPE-BOOLEAN.

FF FF

QualifierValue::EncodedValue. This is the encoding for logical TRUE when type is CIM-TYPE-BOOLEAN. 0x0000 is FALSE.

04 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is write.

00

QualifierFlavor. No propagate.

0B 00 00 00

QualifierType is CIM-TYPE-BOOLEAN.

FF FF

QualifierValue::EncodedValue. This is the encoding for logical TRUE when type is CIM-TYPE-BOOLEAN.

0x0000 is FALSE.

0x91

00 73 74 72 69 6E 67

00

Encoded-String string.

0x99

00 44 61 74 61 32 00

Encoded-String Data2.

PropertyInfo.

0xA0

08 00 00 00

PropertyInfo::PropertyType Type is CIM-TYPE-STRING.

02 00

PropertyInfo::DeclarationOrder is 2 out of {0, 1, 2, 3}.

08 00 00 00

PropertyInfo::ValueTableOffset for default value. This points to a HeapRef of 0xFD, which in turn points to DefaultValue.

01 00 00 00

PropertyInfo::ClassOfOrigin points to class[1] in the derivation chain.

PropertyQualifierSet.

11 00 00 00

QualifierSet::EncodingLength. CIM qualifier set is 0x11 octets in length, including itself.

0A 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is cimtype.

03

Qualifier::QualifierFlavor, propagate to subclass and instance.

08 00 00 00

QualifierType is CIM-TYPE-STRING.

BF 00 00 00

QualifierValue::EncodedValue HeapRef to value.

0xBF

00 73 74 72 69 6E 67

00

Encoded-String of string.

0xC7

00 49 64 00

Encoded-String of Id.

PropertyInfo.

0xCB

03 40 00 00

PropertyInfo::PropertyType.

CIM-TYPE-SINT32 + INHERITED.

00 00

PropertyInfo::DeclarationOrder, CIM property number 0.

00 00 00 00

PropertyInfo::ValueTableOffset default value in ValueTable.

00 00 00 00

PropertyInfo::ClassOfOrigin.

CIM class 0 in DerivationList.

PropertyInfo::PropertyQualifierSet.

1C 00 00 00

QualifierSet::EncodingLength in octets, including itself.

0A 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is cimtype.

23

Qualifier::QualifierFlavor, inherited and toclass+toinstance.

08 00 00 00

Qualifier::QualifierType is CIM-TYPE-STRING.

F5 00 00 00

Qualifier::QualifierValue::Encoded-Value, a HeapRef to value.

01 00 00 80

Qualifier::QualifierName.

This is a DictionaryReference instead of a plain HeapRef because the most significant bit is set (0x80).

The dictionary reference is key.

33

Qualifier::QualifierFlavor = Not overridable/propagated/toclass/toinstance.

0B 00 00 00

Qualifier::QualifierType is CIM-TYPE-BOOLEAN.

FF FF

Qualifier::QualifierValue::EncodedValue Default value.

0xF5

00 73 69 6E 74 33 32

00

Encoded-String sint32.

0xFD

00 64 65 66 61 75 6C

74 56 61 6C 75 65 00

Encoded-String defaultValue.

0x10B

00 00 00 00 00 00

MethodsPart.

0C 00 00 00

MethodsPart::EncodingLength, including itself.

00 00

MethodsPart::MethodCount (no methods in this case).

00 73

MethodsPart:: Padding. Two octets of padding; can be any value.

00 00 00 80

MethodsPart::MethodHeap::HeapLength zero length method heap.

END OF OBJECT

Show: