2.2.13.2 IWbemContextProperty Marshaling Structure

The IWbemContextProperty data structure defines the wire format for property data that is used by this protocol. The property is a variable-length structure and has the following structure:

 IWbemContextProperty = PropertyName PropertyFlags PropertyType PropertyValue
  • PropertyName MUST be the name of the property, marshaled as a string in the IWbemContextString format specified in 2.2.13.3.

     PropertyName = IWbemContextString
    
  • PropertyFlags is a 32-bit integer. It MUST be set to 0 and ignored.

     PropertyFlags = UINT32
    
  • PropertyType is a 16-bit unsigned integer that represents the type of the property.

     PropertyType = UINT16
    

    MUST have one of the following values as specified in [MS-OAUT] section 2.2.7:

    • VT_NULL

    • VT_I2

    • VT_I4

    • VT_R4

    • VT_R8

    • VT_BSTR

    • VT_BOOL

    • VT_UI1

    • VT_UI2

    • VT_UI4

    • VT_UNKNOWN

    • VT_I1

    If the value is an array, the listed property types MUST be combined by using the bitwise OR operation with VT_ARRAY (also specified in [MS-OAUT] section 2.2.7).

  • PropertyValue is marshaled as shown in the following table.

     Property types

     Marshaling

    VT_BSTR

    MUST be marshaled as an IWbemContextString.

    VT_IUNKNOWN

    MUST be marshaled as a buffer for the IWbemClassObject interface.

    VT_NULL

    MUST be marshaled as an array of size 0.

    VT_UI1, VT_I1

    MUST be marshaled as an array of 8 bytes with the first byte containing the value of the property.

    VT_I2, VT_UI2, VT_BOOL

    MUST be marshaled as an array of 8 bytes with the first 2 bytes containing the value of the property.

    VT_I4, VT_UI4

    MUST be marshaled as an array of 8 bytes with the first 4 bytes containing the value of the property.

    VT_R4

     MUST be marshaled as an array of 8 bytes with the first 4 bytes containing the value of the property, as specified in [IEEE754], a 4-byte floating-point format.

    VT_R8

    MUST be marshaled in an 8-byte floating-point format as specified in [IEEE754].

    VT_ARRAY | VT_*

    MUST be marshaled as an IWbemContextArray structure, as specified in 2.2.13.4.