<div class="content" name="PerflibV2EnumerateCounterSet" uuid="f5156cd0-19ba-4dad-9850-d095fa7c83bb"><p>The PerflibV2EnumerateCounterSet method allows a client to
enumerate the available <a href="da82a046-4e10-46ab-8da9-3d24bb48a2b2#gt_5ad9937c-a24e-4274-92c8-50ff5f97bf19" data-linktype="relative-path">countersets</a>
on a server.</p><dl>
<dd>
<div><pre> error_status_t PerflibV2EnumerateCounterSet(
   [in, string] wchar_t* szMachine,
   [in, range(0, 256)] DWORD dwInSize,
   [out] DWORD* pdwOutSize,
   [out] DWORD* pdwRtnSize,
   [out, size_is(dwInSize), length_is(* pdwOutSize)] 
     GUID* lpData
 );
</pre></div>
</dd></dl><p><b>szMachine: </b>A <a href="da82a046-4e10-46ab-8da9-3d24bb48a2b2#gt_b069acb4-e364-453e-ac83-42d469bb339e" data-linktype="relative-path">Unicode string</a> specifying a
server name, which is passed directly to the counter provider. Counter
providers can ignore the server name provided by <b>szMachine</b>.</p><p><b>dwInSize: </b>The size of the buffer, in number of
<a href="da82a046-4e10-46ab-8da9-3d24bb48a2b2#gt_f49694cc-c350-462d-ab8e-816f0103c6c1" data-linktype="relative-path">GUIDs</a>. </p><p><b>pdwOutSize: </b>On output, the number of GUIDs
that are returned in the array. The server MUST set this value to zero if the
value of <b>dwInSize</b> is less than the total number of GUIDs on the server.</p><p><b>pdwRtnSize: </b>On output, the total number of
GUIDs on the server.</p><p><b>lpData: </b>The buffer that returns an array of
GUIDs.</p><p><b>Return Values: </b>This method MUST return zero
(ERROR_SUCCESS) for success; otherwise, it MUST return one of the standard
Windows errors, as specified in <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
section <a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x00000000 ERROR_SUCCESS</td>
  <td>The return value indicates success.</td>
 </tr><tr>
  <td>0x00000005 ERROR_ACCESS_DENIED</td>
  <td>The server returns this value to the client if the authentication level of the client is less than RPC_C_AUTHN_LEVEL_PKT_PRIVACY.</td>
 </tr><tr>
  <td>0x00000008 ERROR_NOT_ENOUGH_MEMORY</td>
  <td>This return value is used to indicate when the size of the client-provided buffer is not large enough to accommodate all of the GUID values that are being returned by the server.</td>
 </tr><tr>
  <td>0x0000000E ERROR_OUTOFMEMORY</td>
  <td>This return value is used to indicate that the server, while attempting to return all of the appropriate GUIDs to the client, could not allocate memory.</td>
 </tr></tbody></table>
</dd></dl><p> </p></div>