The PDH_COUNTER_INFO structure contains information describing the properties of a counter. This information also includes the counter path. The format of this buffer is to have the structure described below followed by a variable-length buffer containing the string information referenced by the string pointers in the structure (szFullPath, szMachineName, szObjectName, szInstanceName, szParentInstance, szCounterName, and szExplainText).
typedef struct _PDH_COUNTER_INFO {
DWORD dwLength;
DWORD dwType;
DWORD CVersion;
DWORD CStatus;
LONG lScale;
LONG lDefaultScale;
DWORD dwUserData;
DWORD dwQueryUserData;
LPTSTR szFullPath;
union {
PDH_COUNTER_PATH_ELEMENTS CounterPath;
struct {
LPTSTR szMachineName;
LPTSTR szObjectName;
LPTSTR szInstanceName;
LPTSTR szParentInstance;
DWORD dwInstanceIndex;
LPTSTR szCounterName;
};
};
LPTSTR szExplainText;
DWORD DataBuffer[1];
} PDH_COUNTER_INFO, *PPDH_COUNTER_INFO;
Performance Data Helper Overview, Performance Data Structures, PDH_COUNTER_PATH_ELEMENTS, PdhGetCounterInfo