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