<div class="content"><p> </p><p>The OpenUsers method is called by the client. In response,
the server opens a handle to the <b>HKEY_USERS</b> predefined key.</p><dl>
<dd>
<div><pre> error_status_t OpenUsers(
   [in, unique] PREGISTRY_SERVER_NAME ServerName,
   [in] REGSAM samDesired,
   [out] PRPC_HKEY phKey
 );
</pre></div>
</dd></dl><p><b>ServerName:</b> SHOULD be sent as NULL and MUST be
ignored on receipt because the binding to the server is already complete at
this stage.</p><p><b>samDesired:</b> The bit field that describes the
wanted security access for the key. It MUST be constructed from one or more of
the values that are specified in section <span><a href="fefbc801-b141-4bb1-9dcb-bf366da3ae7e" data-linktype="relative-path">2.2.3</a></span>.</p><p><b>phKey: </b>A pointer to an RPC context handle for
the root key, <b>HKEY_USERS</b>, as specified in section <span><a href="d93b4170-a865-47bc-a10b-13cb17fbc1b0" data-linktype="relative-path">3.1.1.7</a></span>.
The handle is found in the handle table (<b>HANDLETABLE</b>).</p><p><b>Return Values: </b>The method returns 0
(ERROR_SUCCESS) to indicate success; otherwise, it returns a nonzero error
code, as specified in <span><a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a></span>
section <span><a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a></span>.
The server SHOULD return without modification any error code encountered in
servicing the client request.</p><dl>
<dd>
<p>The most common error codes are listed in the
following table.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000005</p>
  <p>ERROR_ACCESS_DENIED</p>
  </td>
  <td>
  <p>Access is denied.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000013</p>
  <p>ERROR_WRITE_PROTECT</p>
  </td>
  <td>
  <p>A read or write operation was attempted to a volume
  after it was dismounted. The server can no longer service registry requests
  because server shutdown has been initiated.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p>Server Operations</p><p>If the registry server can no longer service registry
requests because server shutdown has been initiated (<b>SHUTDOWNINPROGRESS</b>
is set to TRUE), the server MUST return ERROR_WRITE_PROTECT.</p><p>The server attempts to open the predefined key <b>HKEY_USERS</b>
and return a handle to that key in the <i>phKey</i> parameter. The server MUST
evaluate the security descriptor that is associated with the key against the
access requested in the <i>samDesired</i> parameter.</p><p>If the caller is permitted to open the key, the server MUST
return 0 to indicate success, and create a new valid context handle. The server
MUST store the context handle value in the handle table (HANDLETABLE) along
with a mapping to the <b>HKEY_USERS</b> key. The server MUST place a handle
value (see <span><a href="93d384ce-c668-4f48-a5f7-a633bc042a29" data-linktype="relative-path">3.1.1.9</a></span>) in the <i>phKey</i>
parameter. If the caller does not have access, the server MUST return
ERROR_ACCESS_DENIED. For more information about security descriptors, see <span><a href="5204afb0-5b8b-44b9-a631-7c1dc5cdaf7f" data-linktype="relative-path">3.1.1.10</a></span>.</p><p>The server MUST validate the value of the <i>samDesired</i>
parameter set by the client. If the value of <i>samDesired</i> includes flags
set which are not listed in section 2.2.3, the server MUST return
ERROR_INVALID_PARAMETER.</p><p>The server MUST disregard the <i>samDesired</i> parameter if
the <i>samDesired</i> parameter set by the client has bit 0x2 set, indicating
permission to create a subkey. The server MUST not allow subkey creation in
certain locations of the registry hierarchy. These restrictions are detailed
within the Server Operations section of the <span><a href="c7186ae2-1c82-45e9-933b-97d9873657e8" data-linktype="relative-path">BaseRegCreateKey</a></span>
method.</p></div>