PdhEnumObjectItems
The PdhEnumObjectItems function returns the available counters and instances provided by the specified object on the specified machine.
PDH_STATUS PdhEnumObjectItems(
IN LPCTSTR szReserved, // reserved
IN LPCTSTR szMachineName, // machine name
IN LPCTSTR szObjectName, // object name
IN LPTSTR mszCounterList, // buffer for object's counters
IN LPDWORD pcchCounterListLength,
// size of counter list buffer
IN LPTSTR mszInstanceList, // buffer for object's instances
IN LPDWORD pcchInstanceListLength,
// size of instance list buffer
IN DWORD dwDetailLevel, // detail level
IN DWORD dwFlags // formatting flag
);
Parameters
-
szReserved
-
Reserved. Must be NULL.
-
szMachineName
-
The name of the machine on which to list the object items. If the machine specified is not in the list of currently connected machines, the PDH will try to connect to it.
-
szObjectName
-
The name of the object on the specified machine from which the items are to be listed.
-
mszCounterList
-
The buffer allocated by the calling function that is to receive the MULTI_SZ list of performance counters provided by the specified object on the specified machine. This parameter can be NULL if the value of the DWORD referenced by pcchCounterListLength is 0.
-
pcchCounterListLength
-
A pointer to a DWORD containing the size, in characters, of the available buffer, and which returns the size of the buffer used. If the buffer size on entry is zero, then no data is returned in the mszCounterList buffer, and the size of the buffer required is returned in the DWORD pointed to by pdwCounterListLength. The size returned includes both terminating NULL characters of the MULTI_SZ string.
-
mszInstanceList
-
The buffer allocated by the calling function that is to receive the MULTI_SZ list of the instances of the specified object on the specified machine. This argument can be NULL if the value of the DWORD pointed to by pcchCounterListLength is 0.
-
pcchInstanceListLength
-
A pointer to the DWORD containing the size, in characters, of the available buffer, and which returns the size of the buffer used. If the buffer size on entry is zero, then no data is returned in the mszInstanceList buffer, and the size of the buffer required is returned in the DWORD pointed to by pcchInstanceListLength. The size returned includes both terminating NULL characters of the MULTI_SZ string. If the specified object does not support variable instances, then the returned value will be 0. If the specified object does support variable instances, but does not currently have any instances, then the value returned in this DWORD will be 2, which is the size, in characters, of an empty MULTI_SZ list 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.
-
dwFlags
-
Must be 0.
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.
-
PDH_MEMORY_ALLOCATION_FAILURE
-
A required temporary buffer could not be allocated.
-
PDH_CSTATUS_NO_MACHINE
-
The specified machine is offline or unavailable.
-
PDH_CSTATUS_NO_OBJECT
-
The specified object could not be found on the specified machine.
See Also
Performance Data Helper Overview, Performance Data Functions, , PdhConnectMachine, PdhEnumObjects