<div class="content" name="CreateInstanceEnumAsync" uuid="5b3541b9-4cb8-4530-aff1-de422ed2c93f"><p>The IWbemServices::CreateInstanceEnumAsync method provides
an asynchronous instance enumeration. When this method is invoked, the server
MUST return all instances for the specific class in the current namespace.</p><dl>
<dd>
<div><pre> HRESULT CreateInstanceEnumAsync(
   [in] const BSTR strSuperClass,
   [in] long lFlags,
   [in] IWbemContext* pCtx,
   [in] IWbemObjectSink* pResponseHandler
 );
</pre></div>
</dd></dl><p><b>strSuperClass: </b>MUST contain the name of the <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_633b12d4-e2c4-442f-95ff-4b2b5d708ed5" data-linktype="relative-path">CIM class</a> for which the
client wants instances. This parameter MUST NOT be NULL.</p><p><b>lFlags: </b>Flags that affect the behavior of the
IWbemServices::CreateInstanceEnumAsync method. Flag behavior MUST be
interpreted as specified in the following table.</p><dl>
<dd>
<p>The server MUST allow any combination of zero or
more flags from the following table and MUST comply with all the restrictions
in a flag description. Any other DWORD value that does not match a flag
condition MUST be treated as not valid.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x00020000</td>
  <td>If this bit is not set, the server SHOULD return no CIM localizable information. If this bit is set, the server SHOULD return CIM localizable information for the CIM object, as specified in section 2.2.6.</td>
 </tr><tr>
  <td>WBEM_FLAG_SEND_STATUS 0x00000080</td>
  <td>If this bit is not set the server MUST make one final IWbemObjectSink::SetStatus call on the interface pointer that is provided in the pResponseHandler parameter. If this bit is set, the server MAY make intermediate IWbemObjectSink::SetStatus calls on the interface pointer prior to call completion.</td>
 </tr><tr>
  <td>WBEM_FLAG_DIRECT_READ 0x00000200</td>
  <td>If this bit is not set, the server MUST consider the entire class hierarchy when it returns the result. If this bit is set, the server MUST disregard any derived class when it searches the result.</td>
 </tr><tr>
  <td>WBEM_FLAG_SHALLOW 0x00000001</td>
  <td>If this bit is set, the server MUST return instances of the requested class only and MUST exclude instances of classes that are derived from the requested class. If this bit is not set, the server MUST return all instances of the requested class as well as instances of classes that are derived from the requested class.</td>
 </tr></tbody></table>
</dd></dl><p><b>pCtx: </b>MUST be a pointer to an <a href="18c8f1a1-652f-43b7-9186-6098bc303a8d" data-linktype="relative-path">IWbemContext</a> interface,
which MUST contain additional information that the client wants to pass to the
server. If <i>pCtx</i> is NULL, the parameter MUST be ignored.</p><p><b>pResponseHandler: </b>MUST be a pointer to the <a href="0ddb4f22-371a-4697-af5b-d4184b179b68" data-linktype="relative-path">IWbemObjectSink</a> interface
that is implemented by the caller and where enumeration results are delivered.
The parameter MUST NOT be NULL.</p><p><b>Return Values: </b>This method MUST return an
HRESULT value that MUST indicate the status of the method call. The server MUST
return WBEM_S_NO_ERROR (as specified in section <a href="a2899649-a5a3-4b13-9ffa-d8394dcdac63" data-linktype="relative-path">2.2.11</a>) to indicate the
successful completion of the method.</p><dl>
<dd>
<p><b>WBEM_S_NO_ERROR</b> (0x00)</p>
</dd></dl><p>The following validation happens before asynchronous
operation is started.</p><p>The <a href="6837a7cb-ba2d-46b1-802c-fce2fd5a6ad6#gt_f3ef2572-95cf-4c5c-b3c9-551fd648f409" data-linktype="relative-path">security
principal</a> that makes the call MUST have WBEM_ENABLE and WBEM_REMOTE_ENABLE
accesses to the namespace; otherwise, WBEM_E_ACCESS_DENIED MUST be returned.</p><p>The method MUST fail if <i>strSuperClass</i> does not exist.</p><p>The server SHOULD enforce a maximum length for the <i>strSuperClass</i>
parameter and return WBEM_E_QUOTA_VIOLATION if the limit is exceeded.<a id="Appendix_A_Target_47"></a><a aria-label="Product behavior note 47" href="27182640-aa3f-43b6-941f-a77d25f798e8#Appendix_A_47" data-linktype="relative-path">&lt;47&gt;</a></p><p>Requirements mentioned in the parameter definitions are also
checked before starting the asynchronous operation.</p><p>If successful, the server MUST create a new entry in
AsyncOperationTable as specified in section <a href="83a955c3-2fba-4d06-bd88-76ed9bbada43" data-linktype="relative-path">3.1.1.1.3</a>.</p><p>The following validation happens asynchronously.</p><p>If <i>strSuperClass</i> is dynamic, the server MUST obtain <b>SupportsEnumerate</b>
for the given provider in the <b>ProviderTable</b>. If <b>SupportsEnumerate</b>
is FALSE, the server MUST return WBEM_E_PROVIDER_NOT_CAPABLE.</p><p>In response to IWbemServices::CreateInstanceEnumAsync, the
server MUST evaluate the <i>strSuperClass</i> parameter (as specified in this
section) and MUST return all instances for the specified class in the current
namespace. The method MUST fail if the following applies: if the method
parameters or their combinations are not valid as specified earlier in this
section or if the server is unable to execute the method.</p></div>