<div class="content"><p>The EnumKeys method enumerates the subnodes of the specified
node.</p><dl>
<dd>
<div><pre> HRESULT EnumKeys(
   [in] METADATA_HANDLE hMDHandle,
   [unique, in, string] LPCWSTR pszMDPath,
   [out, size_is(ADMINDATA_MAX_NAME_LEN)] 
     LPWSTR pszMDName,
   [in] DWORD dwMDEnumObjectIndex
 );
</pre></div>
</dd></dl><p><b>hMDHandle: </b>An unsigned 32-bit integer value
containing an open <a href="1243ba70-74ca-44f9-be0b-dfd6697010b4#gt_086b13f2-2715-4000-a16c-6acc3d59cc19" data-linktype="relative-path">metabase</a>
handle specifying the key to be enumerated.</p><p><b>pszMDPath: </b>A pointer to a Unicode string that
contains the path of the node whose subnodes are to be enumerated, relative to
the path of the <i>hMDHandle</i> parameter.</p><p><b>pszMDName: </b>A pointer to a string buffer that
receives the names of the enumerated metabase subnodes.</p><p><b>dwMDEnumObjectIndex: </b>An integer value
specifying the index of the subnode to be retrieved.</p><p><b>Return Values: </b>A signed 32-bit value that
indicates return status. If the method returns a negative value, it failed. If
the 12-bit facility code (bits 16–27) is set to 0x007, the value contains a
Win32 error code in the lower 16 bits. Zero or positive values indicate
success, with the lower 16 bits in positive nonzero values containing warnings
or flags defined in the method implementation. For more information about Win32
error codes and <a href="../ms-dtyp/a9046ed2-bfb2-4d56-a719-2824afce59ac" data-linktype="relative-path">HRESULT</a>
values, see <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  <p>S_OK</p>
  </td>
  <td>
  <p>The call was successful.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070003</p>
  <p>ERROR_PATH_NOT_FOUND</p>
  </td>
  <td>
  <p>The system cannot find the path specified.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070005</p>
  <p>E_ACCESSDENIED</p>
  </td>
  <td>
  <p>General access denied error.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070006</p>
  <p>ERROR_INVALID_HANDLE</p>
  </td>
  <td>
  <p>The handle is invalid.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070057</p>
  <p>E_INVALIDARG</p>
  </td>
  <td>
  <p>One or more arguments are invalid.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070103</p>
  <p>ERROR_NO_MORE_ITEMS</p>
  </td>
  <td>
  <p>No more data is available.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p>The <a href="1243ba70-74ca-44f9-be0b-dfd6697010b4#gt_e127848e-c66d-427d-b3aa-9f904fa4ada7" data-linktype="relative-path">opnum</a>
field value for this method is 6.</p><p>A subnode can be enumerated once per call. Subnodes are
numbered from zero to (NumKeys - 1), with NumKeys equal to the number of
subnodes below the node.</p><p>When processing this call, the <a href="1243ba70-74ca-44f9-be0b-dfd6697010b4#gt_434b0234-e970-4e8c-bdfa-e16a30d96703" data-linktype="relative-path">server</a> MUST do the
following:</p><ul><li><p><span><span> 
</span></span>Check the handle. This handle is valid if it is either the master
root handle or a handle returned from a previous <a href="a54be1d0-009a-493d-a53e-e2f7fbe87293" data-linktype="relative-path">OpenKey</a> call. If the
handle is invalid, return ERROR_INVALID_HANDLE.</p>
</li><li><p><span><span> 
</span></span>The server SHOULD check whether the handle was opened for read
access. If not, return an error.<a id="Appendix_A_Target_12"></a><a aria-label="Product behavior note 12" href="88fd1df0-e63e-41ca-9bf3-bedcab57cd86#Appendix_A_12" data-linktype="relative-path">&lt;12&gt;</a></p>
</li><li><p><span><span> 
</span></span>Check whether the relative path points to the existing subnode of
the parent handle. If not, return ERROR_PATH_NOT_FOUND.</p>
</li><li><p><span><span> 
</span></span>Find the child node of the destination node that has an index
equal to the <i>dwMDEnumKeyIndex</i> parameter. If there is no child with that
index, return ERROR_NO_MORE_ITEMS.</p>
</li><li><p><span><span> 
</span></span>Copy the name of this child node to the <i>pszMDName</i> buffer.</p>
</li></ul></div>