<div class="content" name="ObjectArray" uuid="3685744a-4f8e-44f4-88db-c1013cb616e3"><p>The ObjectArray structure MUST be used to encode multiple <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_8d8f4b2c-bf33-4964-b55c-96ac2cc999bb" data-linktype="relative-path">CIM objects</a> that are
returned in response to the <a href="c8dd9392-0bf2-4515-a247-5b888aa8bc91" data-linktype="relative-path">IWbemWCOSmartEnum::Next (section 3.1.4.7.1)</a>
method. This structure is also used to encode parameters of the optimized <a href="ce36fcf4-5aaa-4dc7-a760-928f6616da77" data-linktype="relative-path">IWbemObjectSink::Indicate (section 3.1.4.2.1)</a>
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 <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_633b12d4-e2c4-442f-95ff-4b2b5d708ed5" data-linktype="relative-path">CIM class</a> 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 <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_f49694cc-c350-462d-ab8e-816f0103c6c1" data-linktype="relative-path">GUID</a>, generated by the
server, that that is maintained by both the server and the client for the
duration of the method call. The remaining <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_94e80069-5f2a-4281-a676-50ea656c4795" data-linktype="relative-path">CIM instances</a> 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">dwByteOrdering</td>
 </tr>
 <tr>
  <td colspan="32">abSignature</td>
 </tr>
 <tr>
  <td colspan="32">...</td>
 </tr>
 <tr>
  <td colspan="32">dwSizeOfHeader1</td>
 </tr>
 <tr>
  <td colspan="32">dwDataSize1</td>
 </tr>
 <tr>
  <td colspan="32">dwFlags</td>
 </tr>
 <tr>
  <td colspan="8">bVersion</td>
  <td colspan="8">bPacketType</td>
  <td colspan="16">dwSizeOfHeader2</td>
 </tr>
 <tr>
  <td colspan="16">...</td>
  <td colspan="16">dwDataSize2</td>
 </tr>
 <tr>
  <td colspan="16">...</td>
  <td colspan="16">dwSizeOfHeader3</td>
 </tr>
 <tr>
  <td colspan="16">...</td>
  <td colspan="16">dwDataSize3</td>
 </tr>
 <tr>
  <td colspan="16">...</td>
  <td colspan="16">dwNumObjects</td>
 </tr>
 <tr>
  <td colspan="16">...</td>
  <td colspan="16">wbemObjects (variable)</td>
 </tr>
 <tr>
  <td colspan="32">...</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>0x00000000</td>
  <td>The value when byte ordering is little-endian.</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>0x00000000</td>
  <td>The value in the context of an optimized IWbemObjectSink::Indicate call.</td>
 </tr><tr>
  <td>0x00000001</td>
  <td>The value in the context of an optimized IWbemWCOSmartEnum::Next call.</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 <a href="a2600186-07e2-4598-998c-e20ca1a966e6" data-linktype="relative-path">WBEM_DATAPACKET_OBJECT</a>
structure.</p></div>