<div class="content" name="ApiOnlineResourceEx" uuid="9dadc6d6-ee75-4ce7-8803-26c4a83c6b30"><p>(Protocol Version 3) The ApiOnlineResourceEx method SHOULD<a id="Appendix_A_Target_118"></a><a aria-label="Product behavior note 118" href="1d58eff8-a042-478c-972c-8e9c76a3f978#Appendix_A_118" data-linktype="relative-path">&lt;118&gt;</a> instruct the server to make
the specified resource active or available on the node that currently owns it.</p><p>The server MUST handle this method in the same manner as <span><a href="827179f8-a5e1-45c7-ba5c-77080c32560b" data-linktype="relative-path">ApiOnlineResource (section 3.1.4.2.18)</a></span>
except as follows:</p><ul><li><p><span><span> 
</span></span>If the CLUSAPI_RESOURCE_ONLINE_IGNORE_RESOURCE_STATUS flag is set
in the <i>dwOnlineFlags</i> parameter, the server MUST ignore the locked mode
value of the resource designated by the <i>hResource</i> parameter as well as
the locked mode value of any of its provider resources as specified in section <span><a href="5af0b053-32d0-46b8-bb75-898abc5aa958" data-linktype="relative-path">3.1.1.1.2</a></span>.</p>
</li><li><p><span><span> 
</span></span>If the CLUSAPI_RESOURCE_ONLINE_DO_NOT_UPDATE_PERSISTENT_STATE
flag is set in the <i>dwOnlineFlags</i> parameter, the server MUST not update
the persistent state of the resource designated by the <i>hResource</i>
parameter.</p>
</li><li><p><span><span> 
</span></span>If the CLUSAPI_RESOURCE_ONLINE_NECESSARY_FOR_QUORUM flag is set
in the <i>dwOnlineFlags</i> parameter, the server MUST bring the resource
designated by the <i>hResource</i> parameter to online to maintain a quorum.</p>
</li><li><p><span><span> 
</span></span>If the CLUSAPI_RESOURCE_ONLINE_BEST_POSSIBLE_NODE flag is set in
the <i>dwOnlineFlags</i> parameter, the server MUST determine the best possible
node that will host the resource designated by the <i>hResource</i> parameter.</p>
</li><li><p><span><span> 
</span></span>If the CLUSAPI_RESOURCE_ONLINE_IGNORE_AFFINITY_RULE flag is set
in the <i>dwOnlineFlags</i> parameter, the server MUST ignore the affinity rule
of the resource designated by the <i>hResource</i> parameter.</p>
</li><li><p><span><span> 
</span></span>If the resource designated by <i>hResource</i> is not already in
the ClusterResourceOnline state (section <span><a href="cac947fb-7066-4d0c-b76d-7d26a89a2d46" data-linktype="relative-path">3.1.4.2.13</a></span>), the
server MUST provide the buffer designated by the <i>lpInBuffer</i> parameter to
the server implementation-specific object that controls the resource operation
while bringing the resource online and MUST provide this buffer to the server
implementation-specific objects for any of the designated resource&#39;s provider
resources that are not already in the ClusterResourceOnline state. How the
server provides this buffer is implementation-specific.</p>
</li></ul><p>The server accepts an ApiOnlineResourceEx request only if it
is in the read/write state, as specified in section <span><a href="756547e7-ca64-4b7c-9f1b-2b1fbc6153d3" data-linktype="relative-path">3.1.1</a></span>.</p><p>The server MUST require that the access level associated
with the <i>hResource</i> parameter is &#34;All&#34; (section <span><a href="a249a463-3d3b-4058-abf6-3024d81806a0" data-linktype="relative-path">3.1.4</a></span>).</p><dl>
<dd>
<div><pre> error_status_t ApiOnlineResourceEx(
   [in] HRES_RPC hResource,
   [in] DWORD dwOnlineFlags,
   [in, size_is(cbInBufferSize)] BYTE* lpInBuffer,
   [in] DWORD cbInBufferSize,
   [out] error_status_t *rpc_status
 );
</pre></div>
</dd></dl><p><b>hResource: </b>An HRES_RPC context handle that was
obtained in a previous call to <span><a href="181f8de0-f518-4c5b-b98e-ddb18aa325ce" data-linktype="relative-path">ApiOpenResource (section 3.1.4.2.9)</a></span>,
<span><a href="6595931d-2fe5-4097-9270-f6bada5d9242" data-linktype="relative-path">ApiOpenResourceEx (section 3.1.4.2.119)</a></span>,
or <span><a href="bc6ca940-7177-4bef-9567-ae4a692a2ba5" data-linktype="relative-path">ApiCreateResource (section 3.1.4.2.10)</a></span>.</p><p><b>dwOnlineFlags: </b>A bitwise-OR of zero or more of
the following flags.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x00000001 CLUSAPI_RESOURCE_ONLINE_IGNORE_RESOURCE_STATUS</td>
  <td>The server MUST ignore the resource locked mode as specified in section 3.1.1.1.1.</td>
 </tr><tr>
  <td>0x00000002 CLUSAPI_RESOURCE_ONLINE_DO_NOT_UPDATE_PERSISTENT_STATE</td>
  <td>The server MUST not update the persistent state of the resource.</td>
 </tr><tr>
  <td>0x00000004 CLUSAPI_RESOURCE_ONLINE_NECESSARY_FOR_QUORUM</td>
  <td>The server MUST bring the resource to online to maintain a quorum.</td>
 </tr><tr>
  <td>0x00000008 CLUSAPI_RESOURCE_ONLINE_BEST_POSSIBLE_NODE</td>
  <td>The server MUST determine the best possible node that will host the resource.&lt;119&gt;</td>
 </tr><tr>
  <td>0x00000020 CLUSAPI_RESOURCE_ONLINE_IGNORE_AFFINITY_RULE</td>
  <td>The server MUST ignore the affinity rule of the resource.&lt;120&gt;</td>
 </tr></tbody></table>
</dd></dl><p><b>lpInBuffer: </b>A pointer to a buffer that the
server will provide to implementation-specific objects that control the
resource operations for each resource in the group. The client SHOULD set this
parameter to a <span><a href="7ed348f2-eddf-4c3f-a1cb-b651ec3cff92" data-linktype="relative-path">PROPERTY_LIST (section 2.2.3.10)</a></span>.
For each value in this list, the client SHOULD set the property name to the
name of the <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_597fe367-f504-4295-9ed9-92cd892796cd" data-linktype="relative-path">resource type</a></span> of one
of the resources in the group. The client MAY provide a buffer that does not
have a property value corresponding to each resource type in the group, and the
client MAY provide a buffer that has multiple property values for the same
resource type. Except for the following property values, the server MUST treat
all property values provided by the client identically.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Property Name</p>
   </th>
   <th>
   <p>CLUSTER_PROPERTY_FORMAT</p>
   </th>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>Virtual Machine</td>
  <td>CLUSPROP_FORMAT_DWORD</td>
  <td>0x00000004</td>
  <td>Reserved for local use.</td>
 </tr></tbody></table>
</dd></dl><p><b>cbInBufferSize: </b>The size in bytes of the
buffer pointed to by the <i>lpInBuffer</i> parameter.</p><p><b>rpc_status: </b>A 32-bit integer used to indicate
success or failure. The <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> runtime MUST
indicate, by writing to this parameter, whether it succeeded in executing this
method on the server. The encoding of the value passed in this parameter MUST
conform to encoding for comm_status and fault_status, as specified in Appendix
E of <span><a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a></span>.</p><p><b>Return Values: </b>This method MUST return the same error
codes as returned by the ApiOnlineResource (section 3.1.4.2.18)
method, in addition to the following return value.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x00000057 ERROR_INVALID_PARAMETER</td>
  <td>The dwOnlineFlags parameter is not one of the specified values.</td>
 </tr></tbody></table>
</dd></dl><p> </p></div>