PdhEnumObjects

The PdhEnumObjects function returns a list of objects available on the specified machine.

PDH_STATUS PdhEnumObjects(
  IN LPCTSTR szReserved,    // reserved
  IN LPCTSTR szMachineName,  // machine name
  IN LPTSTR mszObjectList,  // buffer for objects
  IN LPDWORD pcchBufferLength,  // size of buffer
  IN DWORD dwDetailLevel,   // detail level
  IN BOOL bRefresh          // refresh flag for connected machines
);
 

Parameters

szReserved
Reserved. Must be NULL.
szMachineName
The name of the machine on which to list the objects. If the machine specified is not in the list of currently connected machines, the PDH will try to connect to the machine and add it to the list.
mszObjectList
The buffer allocated by the calling function that is to receive the MULTI_SZ list of objects available on the specified machine. This parameter may be NULL if the value of the DWORD pointed to by pcchBufferLength is 0.
pcchBufferLength
A pointer to the DWORD containing the size, in characters, of the available buffer on entry and the size of the returned buffer on exit. If the buffer size on entry is zero, then no data is returned in the mszObjectList buffer, and that parameter may be NULL. However, the size of the buffer required, in characters, is returned in the DWORD pointed to by pcchBufferLength. The size returned includes both terminating NULL characters of the MULTI_SZ string.
dwDetailLevel
The detail level of the performance items to return. All items that are of the specified detail level or less will be returned.
bRefresh
Indicates that a new list of objects should be obtained from the specified machine. If the machine is not currently connected by the PDH, then this flag is ignored and the list is refreshed automatically.

Return Values

If the function succeeds, it returns ERROR_SUCCESS.

If the function fails, the return value is a PDH error status defined in pdhmsg.h. The following are possible error values:

PDH_MORE_DATA
There are more entries available to return than there is room in the buffer. Some entries might be returned in the buffer, however.
PDH_INSUFFICIENT_BUFFER
The buffer provided is not large enough to contain any data.
PDH_INVALID_ARGUMENT
A required argument is invalid or a reserved argument is not NULL.

Remarks

When you request a required buffer size, the bRefresh flag should be FALSE for all subsequent calls to this function. Otherwise, the size might not be valid.

See Also

Performance Data Helper Overview, Performance Data Functions, , PdhConnectMachine, PdhEnumMachines