PdhAddCounter
The PdhAddCounter function initializes a counter structure for the specified counter in the specified query.
PDH_STATUS PdhAddCounter(
  IN HQUERY hQuery,       // handle to the query
  IN LPCTSTR szFullCounterPath,
                          // path of the counter
  IN DWORD dwUserData,    // user-defined value
  IN HCOUNTER *phCounter  // pointer to the counter handle buffer
);
 
Parameters
- 
hQuery
- 
The handle of the query to which the new counter will be added.
- 
szFullCounterPath
- 
The fully qualified and resolved path of the counter to create. This path cannot contain wild card path strings or characters. See PDH_COUNTER_PATH_ELEMENTS.
- 
dwUserData
- 
A user-defined value, typically, a pointer or index to the user's counter structure.
- 
phCounter
- 
A pointer to the buffer that is to receive the handle to the counter that is created.
Return Values
If the function succeeds, it returns ERROR_SUCCESS, creates a new counter, and returns the handle to the counter in the buffer pointed to by phCounter.
If the function fails, the return value is a PDH error status defined in pdhmsg.h. The following are possible error values:
- 
PDH_CSTATUS_BAD_COUNTERNAME
- 
The counter name path string could not be parsed or interpreted.
- 
PDH_CSTATUS_NO_COUNTER
- 
The specified counter was not found.
- 
PDH_CSTATUS_NO_COUNTERNAME
- 
An empty counter name path string was passed in.
- 
PDH_CSTATUS_NO_MACHINE
- 
A machine entry could not be created.
- 
PDH_CSTATUS_NO_OBJECT
- 
The specified object could not be found.
- 
PDH_FUNCTION_NOT_FOUND
- 
The calculation function for this counter could not be determined.
- 
PDH_INVALID_ARGUMENT
- 
One or more arguments are invalid.
- 
PDH_INVALID_HANDLE
- 
The query handle is not valid.
- 
PDH_MEMORY_ALLOCATION_FAILURE
- 
A memory buffer could not be allocated.
See Also
Performance Data Helper Overview, Performance Data Functions, PdhRemoveCounter, PDH_COUNTER_PATH_ELEMENTS