Value and attribute update messages
The content of the Value and attribute update message is highly dynamic. It will only contain data for parameter values/attributes that have changed since the last notification message.
The message starts with a ParamMsgHdrDef and continues with either a ParametersRecDef or an AttributesRecDef. The message may actually consists of multiple of these structures interleaved. This is due to the need to preserve the order in which these notifications where generated on the server.
Image
At the "top" level the message contains one of two records (parameter changes or attribute changes). Each record has a record header as follows:
typedef struct
  {
  unsigned short usRecID; // This is the identification
of the current record.
  unsigned short usRecLen; // This is the length
(in bytes) of the current record (including this header).
  } RecHdrDef;
usRecID: This is the identification of the current record. The following values are defined.
•  const unsigned short RID_VALUE_UPDATE = 11;
•  const unsigned short RID_ATTRIBUTE_UPDATE = 12;
•  const unsigned short RID_END = 0xdead;