<div class="content"><p> </p><p>The ObjectArray structure MUST be used to encode multiple <span><a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_8d8f4b2c-bf33-4964-b55c-96ac2cc999bb" data-linktype="relative-path">CIM
objects</a></span> that are returned in response to the <span><a href="c8dd9392-0bf2-4515-a247-5b888aa8bc91" data-linktype="relative-path">IWbemWCOSmartEnum::Next (section 3.1.4.7.1)</a></span>
method. This structure is also used to encode parameters of the optimized <span><a href="ce36fcf4-5aaa-4dc7-a760-928f6616da77" data-linktype="relative-path">IWbemObjectSink::Indicate (section 3.1.4.2.1)</a></span>
method.<a id="Appendix_A_Target_6"></a><a aria-label="Product behavior note 6" href="27182640-aa3f-43b6-941f-a77d25f798e8#Appendix_A_6" data-linktype="relative-path">&lt;6&gt;</a> To minimize network bandwidth, a
server SHOULD support the ObjectArray structure when an array of CIM objects is
sent. </p><p>The optimization MUST be achieved by sending the <span><a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_633b12d4-e2c4-442f-95ff-4b2b5d708ed5" data-linktype="relative-path">CIM class</a></span>
information just once at the beginning of the communication for the same class
type. Instances of different classes are allowed, in which case only the first
instance of every unique class MUST contain the CIM class information for
optimization. This CIM class MUST be identified by a randomly generated <span><a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_f49694cc-c350-462d-ab8e-816f0103c6c1" data-linktype="relative-path">GUID</a></span>,
generated by the server, that that is maintained by both the server and the
client for the duration of the method call. The remaining <span><a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_94e80069-5f2a-4281-a676-50ea656c4795" data-linktype="relative-path">CIM
instances</a></span> MUST be sent without the CIM class information. The CIM
class definition that is identified by the GUID is used to reconstruct the full
CIM instances on the client side. </p><table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td colspan="32">
  <p>dwByteOrdering</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>abSignature</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>...</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>dwSizeOfHeader1</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>dwDataSize1</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>dwFlags</p>
  </td>
 </tr>
 <tr>
  <td colspan="8">
  <p>bVersion</p>
  </td>
  <td colspan="8">
  <p>bPacketType</p>
  </td>
  <td colspan="16">
  <p>dwSizeOfHeader2</p>
  </td>
 </tr>
 <tr>
  <td colspan="16">
  <p>...</p>
  </td>
  <td colspan="16">
  <p>dwDataSize2</p>
  </td>
 </tr>
 <tr>
  <td colspan="16">
  <p>...</p>
  </td>
  <td colspan="16">
  <p>dwSizeOfHeader3</p>
  </td>
 </tr>
 <tr>
  <td colspan="16">
  <p>...</p>
  </td>
  <td colspan="16">
  <p>dwDataSize3</p>
  </td>
 </tr>
 <tr>
  <td colspan="16">
  <p>...</p>
  </td>
  <td colspan="16">
  <p>dwNumObjects</p>
  </td>
 </tr>
 <tr>
  <td colspan="16">
  <p>...</p>
  </td>
  <td colspan="16">
  <p>wbemObjects
  (variable)</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>...</p>
  </td>
 </tr>
</tbody></table><p><b>dwByteOrdering (4 bytes): </b>The byte ordering.
It MUST be value 0.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  </td>
  <td>
  <p>The value when byte ordering is little-endian.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>abSignature (8 bytes): </b>MUST be set to {0x57,
0x42, 0x45, 0x4D, 0x44, 0x41, 0x54, 0x41} (a byte array containing the
unquoted, unterminated ASCII string &#34;WBEMDATA&#34;). </p><p><b>dwSizeOfHeader1 (4 bytes): </b>This stores the
total size of these fields: <b>dwByteOrdering</b>, <b>abSignature</b>, <b>dwSizeofHeader1</b>,
<b>dwDataSize1</b>, <b>dwFlags</b>, <b>bVersion</b>, and <b>bPacketType</b>.</p><dl>
<dd>
<p>The size of the header MUST be 0x0000001A. Data
immediately follows the header.</p>
</dd></dl><p><b>dwDataSize1 (4 bytes): </b>MUST indicate the
length, in bytes, of the data that follows this header, starting at the <b>dwSizeOfHeader2</b>
field.</p><p><b>dwFlags (4 bytes): </b>The flag value MUST be
0x00000000.</p><p><b>bVersion (1 byte): </b>The version number of the
header. The version MUST be 1.</p><p><b>bPacketType (1 byte): </b>The value of this field
is dependent on the call context.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  </td>
  <td>
  <p>The value in the context of an optimized
  IWbemObjectSink::Indicate call.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000001</p>
  </td>
  <td>
  <p>The value in the context of an optimized
  IWbemWCOSmartEnum::Next call.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>dwSizeOfHeader2 (4 bytes): </b>This stores the
size of these fields: <b>dwSizeofHeader2</b> and <b>dwDataSize2</b>.</p><dl>
<dd>
<p>This value MUST be 8. Data immediately follows after
the field <b>dwDataSize2</b>.</p>
</dd></dl><p><b>dwDataSize2 (4 bytes): </b>MUST be the size, in
bytes, of the data that follows this field.</p><p><b>dwSizeOfHeader3 (4 bytes): </b> This stores the
size of these fields: <b>dwSizeofHeader3</b>, <b>dwDataSize3</b>, and <b>dwNumObjects</b>.
This value MUST be 12. Data immediately follows after the field <b>dwNumObjects</b>.</p><p><b>dwDataSize3 (4 bytes): </b>MUST indicate the
length of the remaining data, starting at the <b>wbemObjects</b> field.</p><p><b>dwNumObjects (4 bytes): </b>MUST be the number of
CIM objects in the ObjectArray.</p><p><b>wbemObjects (variable): </b>The objects array that
contains the CIM class definition and CIM instances. These CIM objects MUST be
encoded in the <span><a href="a2600186-07e2-4598-998c-e20ca1a966e6" data-linktype="relative-path">WBEM_DATAPACKET_OBJECT</a></span>
structure.</p></div>