Category: Technical

  • バーブコーディングのブームがそろそろ過ぎ去ろうとしているのではないか

    動画サイトでは、まだまだバイブコーディングの話題で盛り上げています。しかし、すでにいくつかの楽観視できない結果でデータとして出ています。最近は下記の結果が目に飛び込んできました。

    The AI Productivity Boom that Wasn’t | L&DeepDive

    要約しますと、ベテランプログラマーであれば、生成AIを使って、20%早くなったという錯覚が生じて、実際は20%遅くなったという結果になった。

    これでは、バイブコーディングのきれいな泡はほぼ弾けてしまいました。

    バイブコーディングでは、もともとテクにある負債を神速に積み上げることが予見されています。今回の結果を加えて、生産性を落としていることも再度確認されました。

    もちろん、生成AIは一つの発展方向ですが、実際のビジネス環境というすごく複雑な文脈(コンテキスト)をどうやって一つの生成AIに低コストに詰め込むことは相当難しいでしょう。

    Claude Code社では、80%-90%のコードはAIに書かせていると宣言したことですが、あれば、自社製品作成の一環としてもみなすことができ、通常のプロジェクト開発と比べて、コスト上昇に対する容認度はかなり高いでしょう。

    バイブコーディングはプロダクションコードの主力になるまでまだまだ時間がかかりそうですね。

  • I made a browser extension that helps generate low-code test cases.

    Are you a pure programming lover? Or you are someone who dares not to challenge programming?

    I’d prefer to choose the latter as testers. The reason is that the people who are not programmers tend to focus more on how users would look at the system. The problem is then how to let them make automated tests.

    Letting testers do even low code tests could be a bit overwhelming. The only real solution seems to record and replay. But most of the tools just record to Python or JS codes. And I do not want source codes presented in faces of testers.

    How to solve this dilemma?

    My answer is a self-made browser plugin! I call it the CommandRecorder.
    The CommandRecorder simply records user actions and replay them in order. The codes that are generated are in Japanese! Accompanied is a test runner which is hidden behind a GUI program. The testers just need to select which case file and which sheet to run.

    The test case books are in Excel file format. An Excel file has some good features that a plain text file cannot provide.
    E.g.,
    – Excel sheets can use powerful formulae.
    – Cells are well aligned.
    – To repeat a pattern, you just need to drag.
    – Data areas by purpose can be cleanly separated by sheets.
    – Editing are straight forward, you don’t have to know structuring grammars.

    The only difficulty of using Excel files is there lacks an effective comparison tool for finding version differences. But what the hell! I just need to find time to make one.

    And more, have you noticed the output of the CommandRecorder is in Japanese? Yes, a natural language! This makes the resulting code very easily understandable. Even one who is completely unaware of the system and unaware of any programming language can understand what a test does. This largely flattens the learning curve.

  • Rust練習問題:数の整除

    問題文

    定理:二桁以上の正整数であれば、その一の位を取り除いて、残った数を前記一の位の数字の五倍で割ったら、残りの数が17の倍数の場合かつその場合に限って、元の数も17の倍数である。

    例えば、34が17の場合である。なぜなら、3-20=-17が17の倍数である。201は17の倍数ではない。なぜなら、20-5=15は17の倍数ではない。一個正整数nを入力して、あなたの任務はこれが17の倍数であるかを判断することだ。

    入力フォーマット

    入力ファイルは最多で10セットのテストデータを有する。一セットのテストデータは一行を占める。その行は一個の整数n(1<=n<=10^100)のみがあり、判断待ちの正整数を表す。n=0であれば、終了を意味し、この行を処理すべきではない。

    出力フォーマット

    一セットのテストデータに対して一行を出力して、相応のnが17の倍数であるかを表す。1が肯定を表し、0が否定を表す。

    入力サンプル

    34
    201
    2098765413
    1717171717171717171717171717171717171717171717171718
    0

    出力サンプル

    1
    0
    1
    0

    分析

    この問題の難点は、nの範囲にある。64-bitの整数型を使っても、表示範囲が最大で20桁の十進数くらいになる。100桁まで昇るnとしても使えない。つまり、プログラミング言語のビルトイン型では、nを表現できない。したがって、nを表現できる型またはそれに類するものを作らないといけない。

    また、前記定理によると、nが17の倍数であるかは、nより一桁小さい別の整数で判定できる。

    つまり、$n=n_0$が17の倍数という問題が下記の問題に相当する。
    ・$n_1$が17の倍数であるか、さらに次の問題に相当する。
    ・$n_2$が17の倍数であるか、さらに次の問題に相当する。
    ・$n_3$が17の倍数であるか、さらに次の問題に相当する。
    ・……
    そして、$n_1 > 10 n_2 > 10^2 n_3 > 10^3 n_4 > ……$

    すると、ある$n_p$がプログラミング言語のビルトイン型で表現できる大きさになったら、通常の割り算で17の倍数であるかは判定できるようになる。

    前記の定理の中に、掛け算と引き算がある。掛け算に参加する数字は小さく、引き算に参加する数字が大きい。このため、大きい数字の引き算を実装する必要があることになる。

    回答案

    use std::io;
    
    fn main() {
        let mut line = String::new();
        while io::stdin().read_line(&mut line).unwrap_or(0) > 0 {
            line = String::from(line.trim());
            if line == "0" {
                break;
            }
            let bn = BigNumber { digits: line.clone() };
            println!("{}", if is_divisible_by_17(&bn) { 1 } else { 0 });
            line.clear()
        }
    }
    
    struct BigNumber {
        digits: String
    }
    
    impl BigNumber {
        fn is_negative(&self) -> bool {
            if let Some(first_char) = self.digits.chars().next() {
                match first_char {
                    '-' => true,
                    _ => false
                }
            }
            else {
                false
            }
        }
    
        fn subtract(&self, other: &BigNumber) -> BigNumber {
            let mut result_digits = String::new();
            let mut ards : Vec<i8> = Vec::new();
            let mut brds : Vec<i8> = Vec::new();
            for c in self.digits.chars().rev() {
                match c {
                    '0'..='9' => ards.push((c as u8 - '0' as u8) as i8),
                    _ => panic!("Only unsigned numbers are allowed in minuend")
                }
            }
            for c in other.digits.chars().rev() {
                match c {
                    '0'..='9' => brds.push((c as u8 - '0' as u8) as i8),
                    _ => panic!("Only unsigned numbers are allowed in subtrahend")
                }
            }
            let mut diffds : Vec<i8> = Vec::new();
            let mut carry : i8 = 0;
            let maxlen = if ards.len() > brds.len() {ards.len()} else {brds.len()};
            for di in 0..maxlen {
                let mut df = 
                    if di >= ards.len() {0} else {ards[di]}
                    - if di >= brds.len() {0} else {brds[di]}
                    - carry;
                if df < 0 {
                    carry = 1;
                    df += 10;
                }
                else {
                    carry = 0;
                }
                diffds.push(df);
            }
            if carry == 1 {
                // The result is negative, and need be complemented.
                for d in diffds.iter_mut() {
                    *d = 9 - *d + carry;
                    if *d < 10 {
                        carry = 0;
                    }
                    else {
                        *d -= 10;
                    }
                }
                result_digits.push('-');
            }
            for d in diffds.iter().rev() {
                result_digits.push(('0' as u8 + *d as u8) as char);
            }
            BigNumber {
                digits: result_digits
            }
        }
    
        fn last_digit(&self) -> Option<i8> {
            if let Some(c) = self.digits.chars().rev().next() {
                Some((c as u32 - '0' as u32) as i8)
            }
            else {
                None
            }
        }
    
        fn remove_last_digit(&mut self) {
            if self.is_negative() {
                if self.digits.len() > 2 {
                    self.digits.pop();
                }
                else {
                    self.digits.clear();
                    self.digits.push('0');
                }
            }
            else {
                if self.digits.len() > 1 {
                    self.digits.pop();
                }
                else {
                    self.digits.clear();
                    self.digits.push('0');
                }
            }
        }
    }
    
    fn is_divisible_by_17(number: &BigNumber) -> bool {
        if number.digits.len() < 4 {
            let intval = number.digits.parse::<i32>().unwrap();
            return intval % 17 == 0;
        }
        let last_digit_times_5: u32 = number.last_digit().unwrap() as u32 * 5;
        let mut shortened = BigNumber {digits: number.digits.clone()};
        shortened.remove_last_digit();
        let subtrahend = BigNumber {digits: last_digit_times_5.to_string()};
        let difference = shortened.subtract(&subtrahend);
        return is_divisible_by_17(&difference);
    }
  • Rust練習問題:弟の算数検査

    問題文

    弟は100以内の足し算と引き算をやりました。チャックしてあげてください。核問題の形式はa+b=c或いはa-b=c、どれも100を超えない非負整数です。cは弟が算出した回答で、200以内の比数整数であるか、一個の「?」かです。「?」は回答不能を意味します。

    入力形式

    入力は100行以内とし、EOF記号で終了します。一行ごとに、一問があります。形式は前述規定に則し、いかなるスペースを含みません。入力されたすべての整数に左に不要な0をつけていません。

    出力形式

    一行のみを出力します。一個の非負整数のみが出て、つまり、弟が正解した問題の数。

    入力サンプル

    1+2=3
    3-1=5
    6+7=?
    99-0=99

    回答案

    use std::io;
    use core::iter::Peekable;
    use core::str::Chars;
    pub struct Expression {
        a: i32,
        b: i32,
        op: char,
        answer: i32,
        unanswered: bool
    }
    
    fn main() {
        let mut line: String = String::new();
        let mut correct_count: i32 = 0;
        while io::stdin().read_line(&mut line).unwrap() > 0 {
            let mut char_seq: Peekable<Chars<'_>> = line.trim().chars().peekable();
            let a: i32   = read_number(&mut char_seq).unwrap().unwrap();
            let op: char = char_seq.next().unwrap();
            let b: i32   = read_number(&mut char_seq).unwrap().unwrap();
            assert!(char_seq.next().unwrap()=='=');
            let got_answer = read_number(&mut char_seq).unwrap();
            let expression = Expression {
                a: a,
                op: op,
                b: b,
                answer: got_answer.unwrap_or_default(),
                unanswered: got_answer.is_none()
            };
            match check_expression(&expression) {
                Ok(r) => correct_count += if r {1} else {0},
                Err(e) => println!("Error: {}", e)
            }
            line.clear();
        }
        println!("{}", correct_count);
    }
    
    fn read_number(text_iter: &mut Peekable<Chars<'_>>) -> Result<Option<i32>, &'static str> {
        let mut number_str: String = String::new();
        while let Some(&c) = text_iter.peek() {
            match c {
                c if c >= '0' && c <= '9' => {
                    number_str.push(c);
                    text_iter.next();
                },
                '?' => {
                    number_str.push(c);
                    text_iter.next();
                    break;
                },
                _ => break
            }
        }
        if number_str == "?" {
            Ok(None)
        } else if number_str.len() > 0 {
            Ok(Some(number_str.parse().unwrap()))
        }
        else {
            Err("Reading a number while not at a number.")
        }
    }
    
    fn check_expression(expr: &Expression) -> Result<bool, &'static str> {
        let expected: i32;
        match expr.op {
            '+' => expected = expr.a + expr.b,
            '-' => expected = expr.a - expr.b,
            '*' => expected = expr.a * expr.b,
            '/' => expected = expr.a / expr.b,
            _ => return Err("Invalid operator.")
        }
        Ok(!expr.unanswered && expr.answer == expected)
    }
  • Compute Sigmoid Function Smart

    The sigmoid function frequently appears in machine learning contexts. It has a simple form: $$
    \sigma(x)=\frac{1}{1+e^{-x}}
    $$. A naive implementation in C would be:

    double sigma(double x)
    {
        return 1.0/(1.0+exp(-x));
    }

    It looks good, right? No, it is not. When $x << 0$, say $x=1000$, exp(-x) will yield NaN, even though $\sigma(x)$ approaches $0$. We need a way to bypass the NaN. Let’s look at the graph of $\sigma(x)$.

    It looks symmetric about $(0, \frac{1}{2})$. If it is the case, $$\begin{equation}
    \sigma(x)=1-\sigma(-x)
    \end{equation}$$ will have to hold. Let’s try to prove it.

    $$\begin{align}
    1-\sigma(-x) &= 1-\frac{1}{1+e^x} \\
    &=\frac{1+e^x}{1+e^x}-\frac{1}{1+e^x} \\
    &=\frac{1+e^x-1}{1+e^x} \\
    &=\frac{e^x}{1+e^x} \\
    &=\frac{1}{\frac{1}{e^x}+\frac{e^x}{e^x}} \\
    &=\frac{1}{e^{-x}+1} \\
    &=\sigma(x)
    \end{align}$$

    Done. It’s proven. Now, whenever $x<0$, we can switch $\sigma(x)$ to $1-\sigma(-x)$, which yields the same value and completely avoids the NaN problem. The following is the code.

    double sigma(double x)
    {
        if (x>=0)
            return 1.0/(1.0+exp(-x));
        return 1.0 - 1.0/(1.0+exp(x));
    }
  • HOWTO: Eclipse 2023-12 + Cygwin + GDB 13 — A Work Around

    It was said that GDB 11 or above does not work well with Eclipse with Cygwin. The true reason seems to be that Eclipse sends Windows-style path of your executable to GDB of Cygwin, while GDB of cygwin does not recognize “C:\” as beginning of an absolute path. So GDB will start end up some ugly combined path like

    /cygdrive/c/Users/yourname/Desktop/C:/store/your-project-name/C:/store/your-project-name/Debug/your-project-name.exe

    I haven’t found a beautiful way to work around it as GDB does not fix this problem, and Eclipse developers insist this as a problem of GDB. So, stalemate.

    But, I am not going to get jammed here. GDB wants that path? I give GDB the path.

    So, under Cygwin, I make a symbolic link like the following:

    mkdir -p "/cygdrive/c/Users/yourname/Desktop/C:/store/your-project-name/C:"
    cd "/cygdrive/c/Users/yourname/Desktop/C:/store/your-project-name/C:"
    ln -s /cygdrive/c/store store

    This will let GDB find your executable.

    What if you cannot be sure the path that GDB is looking at? Don’t worry! Follow this operation path. Window > Preferences > C/C++ > Debug > GDB, check “Show the GDB traces consoles with character limit:”. Run debugging again. Then in the console tab, open the console named “… gdb traces”. The path that GDB looks for will be in it.

    Eclipse cannot find source files when debugging? Don’t worry! I bet you see window reporting “Can’t find a source file at …”. Then click the “Edit Source Lookup Path …” button. Then Add > Path Mapping > OK >(enter a new mapping name, e.g. “cygwin”) > Add . Enter “/cygdrive/c/” as the “Compilcation path”, select “C:\” as Local file system path. Repeat this adding operation until all source files are found.

    By the way, if you get some strange exit code when starting GDB, like 0xc0000135 or something alike, be sure to look into environment variable settings. Your system PATH variable, project environment variables in Debug settings. Be sure to set a complete list of paths or nothing.

    But there is still a drawback. I still have not found how to make breakpoint work. …

    So, the better solution may still be installing gdb 9.2-1. If you cannot find it in your Cygwin setup program, try using another mirror.

  • Try Word Vector

    Explain The Idea

    Word vector is widely used in text-related AI processes. Its center idea is to maximize the following likelihood function.

    $$\begin{equation} \label{eq:originalL}
    L(\theta) = \prod_{t=1}^T \prod_{\substack{-m \le j \le m \\ j \ne 0}} p(w_{t+j} | w_t ; \theta)
    \end{equation}$$

    Terrifying! Right? Let me explain it.

    Imagine as if you have a long text which is a sequence of words. At any time, consider a word $w_t$ as center of a window in the long word sequence. What is the probability of words surrounding $w_t$? Rephrase it, what is the probability of surrounding words appearing in a window, given $w_t$ is the center? Solution to this question can be considered in the following way.

    For any one specific occurrence of $w_t$, its surrounding is $\{ w_{-m}, w_{-m+1}, …, w_{t-1}, w_{t+1}, …, w_{m-1}, w_{m} \}$. For each of the $w_{t+j}$, where $-m \le j \le m \land j \ne 0$, the probability of $w_{t+j}$ given $w_t$ is just denoted as $p(w_{t+j} | w_t ; \theta)$. The $\theta$ there is the parameter to be trained, which guides how each probability is calculated while the formulae are fixed. In fact, you can think of $\theta$ as a store. When computing $p(w_{t+j} | w_t ; \theta)$, $p$ takes the part of $w_{t+j}$ out of $\theta$, takes the part of $w_t$ out of $\theta$, then do the computation using a fixed formula. Now multiply all $p(w_{t+j} | w_t ; \theta)$ for $w_t$’s surrounding words, we get a probability estimate of one surrounding given $w_t$. This is the $$ \prod_{\substack{-m \le j \le m \\ j \ne 0}} p(w_{t+j} | w_t ; \theta) $$ part.

    Now, I have got a probability estimate for one position in the long sequence of words. We use the same formula for all positions, and multiply the probabilities to get the probability estimate of all windows appearing collectively, given the long word sequence. And the whole probability estimate is $L(\theta)$. Note: the word sequence is the universe, therefore it is not explicitly included in the formula.

    $L(\theta)$ is clearly between $0$ and $1$, by definition. And the word sequence appears in reality. Therefore, ideally, $L(\theta)$ should be $1$. So, what we need to do is to maximize $L(\theta)$ to make it as close to $1$ as possible.

    In real computation, all $p(w_{t+j} | w_t ; \theta)$’s are between $0$ and $1$. Their products will be extremely close to 0. This will cause underflow and loss of precision. Hence, we use $J(\theta)=-\frac{1}{T}log(L(\theta))$ instead. The minus sign changes maximization into minimization, as people are more comfortable with minimization and more software packages are tuned to minimization. The $\frac{1}{T}$ helps to constrain the sum in the magnitude of one log-probability value, namely the sum does not grow indefinitely large in magnitude as $T$ grows. $J(\theta)$ expands to $$
    J(\theta)=-\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} log(p(w_{t+j} | w_t ; \theta))
    $$

    Before working further, we must determine the formula of $p(w_{t+j} | w_t ; \theta)$. Any formula that constitutes a probability density function will do. But softmax is a well acccepted one. So, I will use softmax. This is also the function used in the original algorithm. The original algorithm uses two vectors for each word. $u_c$ when the word considered is the center word, $u_o$ otherwise. Hence, $$ p(w_o | w_c ; \theta) = \frac{exp({u_o}^\top u_c)}{\sum_{q \in V}exp({u_q}^\top u_c)} $$, where $u_o$, $u_c$ and $u_q$ are taken out of $\theta$, and $V$ is the vocabulary, namely the set of all words. In this setting, each word will end up with two vectors. People will have to merge the two vectors for each word, because eventually we want one vector for each word. Here I think, why not just use one vector $u$ for each word? I am going to try it. The formula looks identical: $$ p(w_a | w_b ; \theta) = \frac{exp({u_a}^\top u_b)}{\sum_{d \in V}exp({u_d}^\top u_b)} $$, just it no longer distinguishes center from surrounding. A side effect of this change is that size of $\theta$ is halved.

    The full $J(\theta)$ is $$\begin{align}
    J(\theta)
    &=-\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} log(p(w_{t+j} | w_t ; \theta)) \\
    &=-\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} log \left(\frac{exp({u_{t+j}}^\top u_t)}{\sum_{d \in V}exp({u_d}^\top u_t)} \right) \label{eq:originalJ}
    \end{align}$$.

    Derive The Formula for Minimization

    To minimize $J(\theta)$ over $\theta$, I compute derivative of $J(\theta)$.

    $$ \begin{align}
    & \frac{\partial}{\partial \theta} log(\frac{exp({u_{t+j}}^\top u_t)}{\sum_{d \in V}exp({u_d}^\top u_t)}) \\
    &= \frac{\partial}{\partial \theta} \left[ log(exp({u_{t+j}}^\top u_t)) – log({\sum_{d \in V}exp({u_d}^\top u_t)}) \right] \\
    &= \frac{\partial}{\partial \theta} log(exp({u_{t+j}}^\top u_t)) – \frac{\partial}{\partial \theta} log({\sum_{d \in V}exp({u_d}^\top u_t)}) \\
    &= \left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \frac{1}{\sum_{f \in V}exp({u_f}^\top u_t)} {\sum_{d \in V} \frac{\partial}{\partial \theta} exp({u_d}^\top u_t)} \right] \\
    &= \left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \frac{1}{\sum_{f \in V}exp({u_f}^\top u_t)} {\sum_{d \in V} exp({u_d}^\top u_t) \frac{\partial}{\partial \theta} {u_d}^\top u_t} \right] \\
    &=\left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \frac{1}{\sum_{f \in V}exp({u_f}^\top u_t)} \sum_{d \in V} exp({u_d}^\top u_t) {u_d} \right] \\
    &=\left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \frac{\sum_{d \in V} exp({u_d}^\top u_t) {u_d}}{\sum_{f \in V}exp({u_f}^\top u_t)} \right] \\
    &=\left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \sum_{d \in V} { \frac{exp({u_d}^\top u_t) }{\sum_{f \in V}exp({u_f}^\top u_t)} u_d } \right] \\
    &=\left[ \frac{\partial}{\partial \theta} {u_{t+j}}^\top u_t \right] – \left[ \sum_{d \in V} { p(w_d | w_t ; \theta) u_d } \right] \\
    \end{align}
    $$

    As the computational process will be iterative, we can treat $u_{t+j}$ as constant parameters to $u_t$. So the last step becomes:

    $$ u_{t+j} – \left[ \sum_{d \in V} { p(w_d | w_t ; \theta) u_d } \right] $$

    Put them together:

    $$ \begin{align} \label{eq:derivativeJ}
    \frac{\partial J}{\partial \theta} = -\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ u_{t+j} – \sum_{d \in V} { p(w_d | w_t ; \theta) u_d } \right]
    \end{align} $$

    So, we can now use $\frac{\partial J}{\partial \theta}$ to update $\theta$ so that $\frac{\partial J}{\partial \theta}$ will approach $0$. But how? Let me explain intuitively.

    You can think of $\frac{\partial J}{\partial \theta}$ as a slope. A slope is a vector pointing to the direction of changing function value, assuming the function is continuous and convex in a vicinity that contains both $\theta$ and the minimal point of $J(\theta)$. So, if the direction of $\frac{\partial J}{\partial \theta}$ coincides the growing direction of $J(\theta)$, a portion of $\frac{\partial J}{\partial \theta}$ need be subtracted from $\theta$. If the direction of $\frac{\partial J}{\partial \theta}$ contradicts the growing direction of $J(\theta)$, a portion of negated $\frac{\partial J}{\partial \theta}$ need be added to $\theta$, which amounts to also subtracting a portion of $\frac{\partial J}{\partial \theta}$ from $\theta$. Therefore, subtracting a portion of $\frac{\partial J}{\partial \theta}$ from $\theta$ is the method for updating $\theta$ in the minimization process. Repeatedly updating $\theta$ in this way until no changes in $\theta$ is perceivable. This is the Gradient Descent Algorithm. If the portion is not fixed, but changing due to some intuitive, then it is the Adaptive Gradient Descent Algorithm. In formula, it is:

    $$ \theta_{k+1} \gets \theta_{k} – \alpha \frac{\partial J}{\partial \theta} $$

    Computational Considerations

    In the process of computing $\frac{\partial J}{\partial \theta}$, we will need all ${u_a}^\top u_b$’s for all $a,b \in V$. As $|V|$ can be very large. The memory that are required for storing all ${u_a}^\top u_b$’s will be formidably large. So, storing them is better avoided.

    Look closely at structure of $$p(w_d | w_t ; \theta) = \frac{exp({u_d}^\top u_t)}{\sum_{f \in V}exp({u_f}^\top u_t)}$$. It needs dot products of $u_t$ with all other vectors $u_f$ for all $f \in V$. And $t$ is just some $f$. Observe structure of $J(\theta)$ again: $$
    J(\theta)=-\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} log(p(w_{t+j} | w_t ; \theta))
    $$. We can find that in the inner sum $$
    \sum_{\substack{-m \le j \le m \\ j \ne 0}}^T log(p(w_{t+j} | w_t ; \theta))
    $$, denominator of $p$ is repeatedly computed, and it does not depend on $j$. Hence denominator of $p$ can be calculated beforehand and used repeatedly.

    However, you may notice that $p(w_{t+j} | w_t ; \theta)$ still asks for too much computation as it must iterate over the whole vocabulary.

    Changing Probability Evaluation Method into An Intuitive One

    Let’s focus on $$\begin{align}
    log(p(w_{t+j} | w_t ; \theta))
    &= log \left(\frac{exp({u_{t+j}}^\top u_t)}{\sum_{d \in V}exp({u_d}^\top u_t)} \right) \\
    & \notag \\
    &= log(exp({u_{t+j}}^\top u_t)) \quad – \quad log(\sum_{f \in V}exp({u_f}^\top u_t)) \\
    &= \underbrace{{u_{t+j}}^\top u_t}_\text{part1} \quad – \quad \underbrace{log(\sum_{f \in V}exp({u_f}^\top u_t))}_\text{part2}
    \end{align}$$.
    Part1 is a linear part, it measures similarity of two words in a vector space. Part2 removes some ground similarity that $u_t$ is to all words on average. The heavy computation burden comes from part2. So, we need to come up with some efficient, yet possibly approximate, alternatives.

    Look deeper into part2. suppose the average of all the exponential is $E$. Then part2 is $log(\sum_{f \in V}E)=log(|V| \cdot E)$. This means that part2 can be treated as a kind of average over the set of ${u_f}^\top u_t$. It has the property that large $exp({u_f}^\top u_t)$’s will dominate the value of the logged sum. Only when all the $exp({u_f}^\top u_t)$’s are close to $0$, will the part2 become negative. In fact, becoming negative is not definitely necessary, because this negativity only helps when all the negative words are dissimilar to the center word. This achieves the similar effect of only punishing similarity between the negative words with the center word. With this observation, part2 becomes $$
    \sum_{f \in V}\Lambda({u_f}^\top u_t)
    $$, where $\Lambda$ is the rectified linear unit function $
    ReLU(x)=
    \begin{cases}
    x & \text{if } x \ge 0 \\
    0 & \text{if } x < 0
    \end{cases}
    $.

    Put them back into the formula of $J$: $$\begin{equation} \label{eq:alternativeL1}
    J(\theta)=-\frac{1}{T} \sum_{t=1}^T \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ \underbrace{{u_{t+j}}^\top u_t}_\text{part1} \; – \;
    \underbrace{\sum_{f \in V}\Lambda({u_f}^\top u_t)}_\text{part2} \right]
    \end{equation}$$. This is a variation of Skip-Gram with Negative Sampling.

    The first summation $$
    \sum_{t=1}^T
    $$ can still be too big. One can update $\theta$ partially by selecting a sample from the indices $\{w_1,…,w_T\}$. This entitles the algorithm Stochastic: $$
    J(\theta)=-\frac{1}{|S|} \sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ {u_{t+j}}^\top u_t \; – \;
    \sum_{f \in K}\Lambda({u_f}^\top u_t) \right]
    $$, where $S$ is a sample of $\{w_1,…,w_T\}$.
    Theoretically, if $|S|$ is fixed, $\frac{1}{|S|}$ can be omitted. And $J$ becomes $$\begin{equation} \label{eq:alternativeL2}
    J(\theta)=-\sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ {u_{t+j}}^\top u_t \; – \;
    \sum_{f \in K} \Lambda({u_f}^\top u_t) \right]
    \end{equation}$$.
    However, removing $\frac{1}{|S|}$ may not be a very good idea. The reason is that $\frac{1}{|S|}$ scales down the derivative, so that it does not grow too big as the number of involved terms increase. Without $\frac{1}{|S|}$, it can easy cause floating-point number overflow.

    There are two kinds of samples $S$ and $K$. They are sampled using different strategies. $S$ needs to cover the whole set of word positions, hence sampling of $S$ can be a permutation of $\{w_1,…,w_T\}$ cut into segments. $K$ needs to avoid words in current window, hence it is almost a tendency to cover less frequent words. Two methods can be used. One is to sample the vocabulary uniformly. Due to Zipf’s law, you will most probably always hit less frequent words. The other is to sample the uniform distribution while taking a bias towards less frequent words. Which one is better? Have a try!

    Now, consider any partial derivative $\frac{\partial J}{\partial u_i}$ on a single variable. Consider an arbitrary pair $(t, j) \in S \times \{-m \le j \le +m \wedge j \ne 0 \}$.

    $\frac{\partial}{\partial u_i}{u_{t+j}}^\top u_t$ can be nonzero only if either $w_{t+j}=w_i$ or $w_t=w_i$.
    – When $w_{t+j}=w_i$, $u_t$ is an additive term in the expansion of $\frac{\partial}{\partial u_i}{u_{t+j}}^\top u_t$.
    – When $w_t=w_i$, $u_{t+j}$ is an additive term in the expansion of $\frac{\partial}{\partial u_i}{u_{t+j}}^\top u_t$.

    Then, consider an arbitrary pair $(t,f) \in S \times K$.

    $-\frac{\partial}{\partial u_i}{u_f}^\top u_t$ can be nonzero only if $w_i = w_t \vee w_i = w_f$.
    – When $w_i=w_t$, $-u_f$ is an additive term in the expansion of $\frac{\partial}{\partial u_i}{u_f}^\top u_t$.
    – When $w_i=w_f$, $-u_t$ is an additive term in the expansion of $\frac{\partial}{\partial u_i}{u_f}^\top u_t$.

    The above conditions are not exclusive, meaning, if a $w_i$ satisfies multiple conditions, multiple additive terms will be involved. Because $j$ can have $2m$ values, the expansion of $-\frac{\partial}{\partial u_i}{u_f}^\top u_t$ will be repeated for $2m$ times.

    To summarize, define $
    \Lambda'(x)=
    \begin{cases}
    1 & \text{if } x>0 \\
    0 & \text{if } x \le 0
    \end{cases}
    $ and $
    I(a,b)=\begin{cases}
    1 & \text{if }a=b \\
    0 & \text{if } a \ne b
    \end{cases}
    $, then, $$\begin{align}
    &\frac{\partial}{\partial u_i}J(\theta) \\
    &=-\frac{1}{|S|}\sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[
    \frac{\partial}{\partial u_i}{u_{t+j}}^\top u_t \; – \;
    \sum_{f \in K} \frac{\partial}{\partial u_i}\Lambda({u_f}^\top u_t) \right] \\
    &=- \left\{
    \sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \frac{1}{|S|}\left[
    I(w_{t+j}, w_i) u_t + I(w_t, w_i) u_{t+j}
    \right]
    \; – \;
    2m \sum_{t \in S} \sum_{f \in K} \frac{1}{|S|}\Lambda'({u_f}^\top u_t) \left[
    I(w_i, w_t)u_f+I(w_i, w_f)u_t
    \right]
    \right\} \\
    &=-
    \sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \frac{1}{|S|} \left[
    I(w_{t+j}, w_i) u_t + I(w_t, w_i) u_{t+j}
    \right]
    \; + \;
    2m \sum_{t \in S} \sum_{f \in K} \frac{1}{|S|} \Lambda'({u_f}^\top u_t) \left[
    I(w_i, w_t)u_f+I(w_i, w_f)u_t
    \right] \label{eq:derivativeJ2} \\
    \end{align}$$

    What Could Be the Problem?

    It turns out that still some problems remain challenging.

    Non-Convexity

    First, let’s look back at equation \eqref{eq:originalJ} or \eqref{eq:alternativeL2}. Think of each $p(\bullet)$s as $x_i$. On any 2-D circle formed by any of $x_i$ and $x_j$, $x_i x_j$ reaches its maximum when $x_i = x_j$, and minimum when $x_i=-x_j$. So do they when applied $exp(\bullet)$. So, $\vec{0}$ is indeed a saddle point. This means that I cannot set initial values of $\theta$ to $\vec{0}$. And this raises a risk in training that $\theta$ might converge to $\vec{0}$. At least, if this happens, I must retrain the model.

    Linear Dependency

    Look close at \eqref{eq:derivativeJ} and \eqref{eq:derivativeJ2}, you can find that the derivative can only update $\theta$ in multiple of $u_t$ and $u_f$. So, if the $u_t$ and $u_f$ are linearly-dependent to begin with, the resulting $\theta$ can only consist of linearly-dependent vectors. So, I must initialize $\theta$ so that all the $u$’s are likely to be linear-independent, or at least find a way to introduce some disturbance to break the linear-dependency.

    Magnitude

    $J(\theta)$ is affected by dot products of two word vectors. Positive dot products tend to be greater in positive direction, negative dot products tend to be greater in negative direction. After the dot products growing big, they almost do not affect value of $\sigma$, thus almost do not affect value of $J(\theta)$. This is bad. Because, if a dot product is two big, it will definitely cause a float-pointing overflow, which will make further computation meaningless. So, I will need a mechanism to restrict magnitudes of the word vectors. One way to do it is to add a squared $L_2$ norm. This turns \eqref{eq:alternativeL2} into $$\begin{equation}
    J(\theta)=-\sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ \frac{1}{|S|} {u_{t+j}}^\top u_t \; – \;
    \sum_{f \in K} \frac{1}{|S|} \Lambda({u_f}^\top u_t) \right] + \frac{D}{2} \theta^\top \theta
    \end{equation}$$.
    Here, $D$ is a constant for tuning the balance between model fidelity and vector magnitude. Then, \eqref{eq:derivativeJ2} becomes $$\begin{align}
    \frac{\partial J(\theta)}{\partial u_i}=
    -\underbrace{
    \sum_{t \in S} \sum_{\substack{-m \le j \le m \\ \ j \ne 0}} \frac{1}{|S|} \left[
    I(w_{t+j}, w_i) u_t + I(w_t, w_i) u_{t+j}
    \right]}_\text{Term1}
    \; + \;
    \underbrace{
    2m \sum_{t \in S} \sum_{f \in K} \frac{1}{|S|} \Lambda'({u_f}^\top u_t) \left[
    I(w_i, w_t)u_f+I(w_i, w_f)u_t
    \right]
    }_\text{Term2}
    \; + \;
    \underbrace{ D u_i }_\text{Term3}
    \end{align}$$

    .

    In practice, a correct $D$ may be hard to estimate in advance. Another method could be scaling magnitude of the whole collection of word vectors to some constant, between each sample.

    Weighting

    In the above formulae, the two sequences $\{a,b,c,d,e\}$ and $\{d,a,c,e,b\}$ are indifferent. This is not good. Because, clearly, “Let me give you books” and “Let me give books you” clearly means different action direction. And the latter one is perhaps very rare. One method to alleviate this problem is weight the dot products in $\text{Term1}$ according to their distance from the center words. So: $$\begin{equation}
    J(\theta)=-\sum_{t \in S} \sum_{\substack{-m \le j \le m \\ j \ne 0}} \left[ \mu (1-\tau^{m-|j|+1}) {u_{t+j}}^\top u_t \; – \;
    \sum_{f \in K}\Lambda({u_f}^\top u_t) \right] + \frac{D}{2} \theta^\top \theta
    \end{equation}$$,
    where $0 < \tau \le 1$ is some weight decay constant, and $\mu$ is a constant scaling factor. The reason for $\mu$ is that $\tau^{|j|-1}$ is at most $1$, this weight is likely to underweight $\text{Term1}$, so $\mu$ is used to scale it back.

    Then $$\begin{align}
    \frac{\partial J(\theta)}{\partial u_i}=
    -\underbrace{
    \sum_{t \in S} \sum_{\substack{-m \le j \le m \\ \ j \ne 0}} \mu (1-\tau^{m-|j|+1}) \frac{1}{|S|} \left[
    I(w_{t+j}, w_i) u_t + I(w_t, w_i) u_{t+j}
    \right]}_\text{Term1′}
    \; + \;
    \underbrace{
    2m \sum_{t \in S} \sum_{f \in K} \frac{1}{|S|} \Lambda'({u_f}^\top u_t) \left[
    I(w_i, w_t)u_f+I(w_i, w_f)u_t
    \right]
    }_\text{Term2′}
    \; + \;
    \underbrace{ D u_i }_\text{Term3′}
    \end{align}$$

    One way to calculate a $\mu$ is to set $$
    \mu=\frac{m}{\sum_{j=1}^m (1-\tau^{m-|j|+1})}
    $$.

    Stability

    To avoid a random imperfect initialization to determine the result prematurely, I added some random disturbance during the training. And because each time only a sample is seen, results from each sample are merged with exponential moving average.

  • Install React-Native for Windows on Mapped Network Drive. Very Limited Success!

    React-Native claims to let people write once and run everywhere. So today, I decided to have it at my PC. And I don’t want it on my local drive, as its available space is becoming more and more precious. So, I decided it to install it on one of my mapped network drive, say “U:”.

    Before installing react-native, you may need to install git first and run the following command to set email and name.

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"
    git config --global --add safe.directory "//192.168.x.y/mount-point/project-name"

    The installation process is listed on the Get Started with Windows page, which gives the following command line that can be easily completed in Windows CMD.

    npx react-native@nightly init <projectName> --version "nightly"

    And you may have noticed the “nightly” word. This is a bit too aggressive. I wanted the latest release version. Therefore, I switched “latest” for “nightly” and ran the following line.

    npx react-native@latest init project-name --version "latest" --verbose
    cd project-name
    npx react-native-windows-init --overwrite

    This command ran smoothly to its end.

    Now, I ran:

    npx react-native run-windows

    However, it claimed lack of dependencies. And I needed to run on an elevated powershell:

    U:\project-name\node_modules\react-native-windows\scripts\rnw-dependencies.ps1

    But before it, I have to switch to the drive U: in powershell. This time, I got the following error:

    Powershell did not share the same drive mapping as in CMD/File Explorer!

    Here is what came to rescue. I needed to map the network drive under powershell. The following was the command.

    PS C:\WINDOWS\system32> New-PSDrive -Name U -Root \\192.168.x.y\network-mount -PSProvider FileSystem

    After it, I was able to switch to U: in powershell. BTW, if you need to keep the U: drive permanently, you just need to add a “-Persist” argument to the command line above.

    Run the following commands to install dependencies.

    Set-ExecutionPolicy Unrestricted -Scope Process -Force;
    U:\project-name\node_modules\react-native-windows\scripts\rnw-dependencies.ps1

    Or, you can run the following instead, as introduced on the System Requirements page.

    Set-ExecutionPolicy Unrestricted -Scope Process -Force;
    iex (New-Object System.Net.WebClient).DownloadString('https://aka.ms/rnw-vs2022-deps.ps1');

    The installation process ends here. However, my turmoil did not end here. This command did not end successfully. It could not run WindowsStoreAppUtils.ps1 due to powershell execution policy. I bypassed this problem by editing the following file:

    U:\project-name\node_modules\@react-native-windows\cli\lib-commonjs\utils\commandWithProgress.js

    Find the string '-NoProfile' in the file, and add two lines below it:

                '-ExecutionPolicy',
                'ByPass',
    

    Now you can run:

    npx react-native run-windows --logging

    The above adjustments helped me to successfully build a debug version. However, registering the app will fail, because the app resided on a network drive. After searching on the Internet, it seems that registering an app on network drive is simply not supported.

    I also tried running through Visual Studio, but the result was the same.

    DEP0700: Registration of the app failed. [0x80073D1F]

    Bad luck! At least, I learned that react-native-windows apps cannot be developed on network drives, because you cannot debug it.

    Later, I tried build without running, and I succeeded. This is what I did:

    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\MakeCert" /n "CN=project-name" /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e "12/31/2100" /sv project-name.pvk project-name.cer
    
    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\Pvk2Pfx" /pvk project-name.pvk /spc project-name.cer /pfx project-name.pfx

    You may have to change the blue and red parts above to match your projects. These commands create three files.

    project-name.cer
    project-name.pvk
    project-name.pfx

    The .cer file is the certificate file. You need to find in the file explorer, double click to import it into your PC. Be sure to import it into local machine, not current user. Put it into the “Trusted Root Certification Authorities” store. Otherwise, app install will not succeed.

    The .pfx file will be the one that you use to sign your app package. Select “From File …” when building app package in VisualStudio.

    As a note, be sure to build in Release settings. For otherwise, the app will not run. As it will not successfully connect to the local server port, even if you started the server.

    Good luck!

  • Use Powershell To Collect Windows Performance Data

    Powershell has many cmdlets that help users perform various tasks. In this post, I will use several commands to collect CPU and memory usage of processes.

    Collect Process CPU Usage

    Powershell has a Get-Counter cmdlet. This cmdlet let users to obtain metrics of the system. One of the counters that you can use is “\Processor(*)\% Processor Time“. Open your powershell, and run the following command:

    The result looks like:

    You can find that the timestamp is just when the user ran this command. What we need is just the CounterSamples part. So with following command, the CounterSamples part is extracted.

    This gives a list of all processes with CPU usages. But it is too many for performance monitoring. Therefore, I will restrict the results to those having nonzero CPU usages. This is done with the following command.

    This results in something like the following:

    The CookedValue column is the “percentage” of CPU use. You can find that the values can be greater than 100. This is because it adds multiple cores. On my PC, there are 16 cores, so it sums to about 1600.

    Collect Process Memory Usage

    To get memory usage, another cmdlet Get-Process is useful. It goes like as below:

    Here, like in the previous section, I used the Where-Object cmdlet to restrict the result to active processes only. And because Get-Process can give a long list of properties of every process, I restrict to two fields. Name is the name of the process. WS is is the working set memory in KB. The output goes like the following:

    Name                           WS
    ----                           --
    ChsIME                    7901184
    conhost                  16814080
    conhost                  17293312
    ctfmon                   21581824
    dllhost                  13258752
    explorer                207691776
    LockApp                  61153280
    msedge                   20189184
    msedge                  289972224
    msedge                   17846272
    msedge                   29536256
    msedge                   47423488
    msedge                  106610688
    msedge                  123375616
    msedge                  125349888
    msedge                  168783872
    msedge                  128581632
    msedge                  191397888
    msedge                  104919040
    msedge                   21688320
    msedge                  120528896
    msedge                    8261632
    MusNotifyIcon            14864384
    notepad++                30425088
    powershell               98615296
    powershell              101376000
    RtkAudUService64          9863168
    RuntimeBroker            28770304
    RuntimeBroker            24854528
    RuntimeBroker            41598976
    RuntimeBroker            32833536
    SearchApp               266919936
    SecurityHealthSystray     9510912
    sihost                   29876224
    StartMenuExperienceHost  73383936
    svchost                  13090816
    svchost                  25026560
    svchost                  33251328
    svchost                   8740864
    svchost                  22769664
    taskhostw                18632704
    TextInputHost            53374976
    TSVNCache                 9928704
    ttpmenu                  12865536
    UserOOBEBroker           10113024
    

    Summary

    This article, I mentioned two ways for collecting CPU and memory usages, respectively. These outputs can be treated as input data matrices for producing higher level summaries like identifying usage pattern or bottleneck, etc.

    Wish this helpful!

  • All Counters from Get-Counter in Powershell

    The following command lists all counter sets.

    Get-Counter -ListSet *

    The result on my PC (Windows 10) is the following:

    
    
    CounterSetName     : Hyper-V VM Virtual Device Pipe IO
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Worker process per-pipe statistics, for performance debugging.
    Paths              : {\Hyper-V VM Virtual Device Pipe IO(*)\Receive Message Quota Exceeded, \Hyper-V VM Virtual Device 
                         Pipe IO(*)\Receive QoS - Total Message Delay Time (100ns), \Hyper-V VM Virtual Device Pipe 
                         IO(*)\Receive QoS - Exempt Messages/sec, \Hyper-V VM Virtual Device Pipe IO(*)\Receive QoS - 
                         Non-Conformant Messages/sec...}
    PathsWithInstances : {\Hyper-V VM Virtual Device Pipe IO(*)\Receive Message Quota Exceeded, \Hyper-V VM Virtual Device 
                         Pipe IO(*)\Receive QoS - Total Message Delay Time (100ns), \Hyper-V VM Virtual Device Pipe 
                         IO(*)\Receive QoS - Exempt Messages/sec, \Hyper-V VM Virtual Device Pipe IO(*)\Receive QoS - 
                         Non-Conformant Messages/sec...}
    Counter            : {\Hyper-V VM Virtual Device Pipe IO(*)\Receive Message Quota Exceeded, \Hyper-V VM Virtual Device 
                         Pipe IO(*)\Receive QoS - Total Message Delay Time (100ns), \Hyper-V VM Virtual Device Pipe 
                         IO(*)\Receive QoS - Exempt Messages/sec, \Hyper-V VM Virtual Device Pipe IO(*)\Receive QoS - 
                         Non-Conformant Messages/sec...}
    
    CounterSetName     : RAS
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : VPN counters which keep track of their values since service start
    Paths              : {\RAS\Bytes Transmitted By Disconnected Clients, \RAS\Bytes Received By Disconnected Clients, 
                         \RAS\Failed Authentications, \RAS\Max Clients...}
    PathsWithInstances : {}
    Counter            : {\RAS\Bytes Transmitted By Disconnected Clients, \RAS\Bytes Received By Disconnected Clients, 
                         \RAS\Failed Authentications, \RAS\Max Clients...}
    
    CounterSetName     : Hyper-V VM Vid Partition
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : These are the perf counters for a VID partition object.
    Paths              : {\Hyper-V VM Vid Partition(*)\Remote Physical Pages, \Hyper-V VM Vid Partition(*)\Preferred NUMA 
                         Node Index, \Hyper-V VM Vid Partition(*)\Physical Pages Allocated}
    PathsWithInstances : {\Hyper-V VM Vid Partition(*)\Remote Physical Pages, \Hyper-V VM Vid Partition(*)\Preferred NUMA 
                         Node Index, \Hyper-V VM Vid Partition(*)\Physical Pages Allocated}
    Counter            : {\Hyper-V VM Vid Partition(*)\Remote Physical Pages, \Hyper-V VM Vid Partition(*)\Preferred NUMA 
                         Node Index, \Hyper-V VM Vid Partition(*)\Physical Pages Allocated}
    
    CounterSetName     : WSMan Quota Statistics
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Displays quota usage and violation information for WS-Management processes.
    Paths              : {\WSMan Quota Statistics(*)\Process ID, \WSMan Quota Statistics(*)\Active Users, \WSMan Quota 
                         Statistics(*)\Active Operations, \WSMan Quota Statistics(*)\Active Shells...}
    PathsWithInstances : {\WSMan Quota Statistics(*)\Process ID, \WSMan Quota Statistics(*)\Active Users, \WSMan Quota 
                         Statistics(*)\Active Operations, \WSMan Quota Statistics(*)\Active Shells...}
    Counter            : {\WSMan Quota Statistics(*)\Process ID, \WSMan Quota Statistics(*)\Active Users, \WSMan Quota 
                         Statistics(*)\Active Operations, \WSMan Quota Statistics(*)\Active Shells...}
    
    CounterSetName     : Event Log
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Event Log
    Paths              : {\Event Log\Event filter operations/sec, \Event Log\Active subscriptions, \Event Log\ELF RPC 
                         calls/sec, \Event Log\Events/sec...}
    PathsWithInstances : {}
    Counter            : {\Event Log\Event filter operations/sec, \Event Log\Active subscriptions, \Event Log\ELF RPC 
                         calls/sec, \Event Log\Events/sec...}
    
    CounterSetName     : Network QoS Policy
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set consists of flow statistics specific to a network QoS policy.
    Paths              : {\Network QoS Policy(*)\Packets dropped/sec, \Network QoS Policy(*)\Packets dropped, \Network QoS 
                         Policy(*)\Bytes transmitted/sec, \Network QoS Policy(*)\Bytes transmitted...}
    PathsWithInstances : {\Network QoS Policy(*)\Packets dropped/sec, \Network QoS Policy(*)\Packets dropped, \Network QoS 
                         Policy(*)\Bytes transmitted/sec, \Network QoS Policy(*)\Bytes transmitted...}
    Counter            : {\Network QoS Policy(*)\Packets dropped/sec, \Network QoS Policy(*)\Packets dropped, \Network QoS 
                         Policy(*)\Bytes transmitted/sec, \Network QoS Policy(*)\Bytes transmitted...}
    
    CounterSetName     : RemoteFX Root GPU Management
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Displays RemoteFX Root GPU Management Counters
    Paths              : {\RemoteFX Root GPU Management(*)\Resources: VMs running RemoteFX, \RemoteFX Root GPU 
                         Management(*)\VRAM: Reserved  % per GPU, \RemoteFX Root GPU Management(*)\VRAM: Available MB per 
                         GPU}
    PathsWithInstances : {\RemoteFX Root GPU Management(*)\Resources: VMs running RemoteFX, \RemoteFX Root GPU 
                         Management(*)\VRAM: Reserved  % per GPU, \RemoteFX Root GPU Management(*)\VRAM: Available MB per 
                         GPU}
    Counter            : {\RemoteFX Root GPU Management(*)\Resources: VMs running RemoteFX, \RemoteFX Root GPU 
                         Management(*)\VRAM: Reserved  % per GPU, \RemoteFX Root GPU Management(*)\VRAM: Available MB per 
                         GPU}
    
    CounterSetName     : SMB Client Shares
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : This counter set displays information about server shares that are being accessed by the client 
                         using SMB protocol version 2 or higher.
    Paths              : {\SMB Client Shares(*)\Compressed Bytes Sent/sec, \SMB Client Shares(*)\Compressed Responses/sec, 
                         \SMB Client Shares(*)\Compressed Requests/sec, \SMB Client Shares(*)\Turbo I/O Writes/sec...}
    PathsWithInstances : {\SMB Client Shares(\192.168.1.7\Books)\Compressed Bytes Sent/sec, \SMB Client 
                         Shares(\192.168.1.7\ez-acc-dev-wwwroot)\Compressed Bytes Sent/sec, \SMB Client 
                         Shares(\192.168.1.7\Games)\Compressed Bytes Sent/sec, \SMB Client 
                         Shares(\192.168.1.7\ThunderbirdProfile)\Compressed Bytes Sent/sec...}
    Counter            : {\SMB Client Shares(*)\Compressed Bytes Sent/sec, \SMB Client Shares(*)\Compressed Responses/sec, 
                         \SMB Client Shares(*)\Compressed Requests/sec, \SMB Client Shares(*)\Turbo I/O Writes/sec...}
    
    CounterSetName     : Hyper-V Virtual Machine Bus Provider Pipes
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Per-Pipe statistics, for performance debugging.
    Paths              : {\Hyper-V Virtual Machine Bus Provider Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Provider Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Provider Pipes(*)\Writes/sec, 
                         \Hyper-V Virtual Machine Bus Provider Pipes(*)\Reads/sec}
    PathsWithInstances : {\Hyper-V Virtual Machine Bus Provider Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Provider Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Provider Pipes(*)\Writes/sec, 
                         \Hyper-V Virtual Machine Bus Provider Pipes(*)\Reads/sec}
    Counter            : {\Hyper-V Virtual Machine Bus Provider Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Provider Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Provider Pipes(*)\Writes/sec, 
                         \Hyper-V Virtual Machine Bus Provider Pipes(*)\Reads/sec}
    
    CounterSetName     : Windows Time Service
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Windows Time Service Performance Counters display the time synchronization runtime information 
                         from the service. Note that the service has to be running in order for this information to be 
                         displayed.
    Paths              : {\Windows Time Service\NTP Server Outgoing Responses, \Windows Time Service\NTP Server Incoming 
                         Requests, \Windows Time Service\NTP Client Time Source Count, \Windows Time Service\NTP Roundtrip 
                         Delay...}
    PathsWithInstances : {}
    Counter            : {\Windows Time Service\NTP Server Outgoing Responses, \Windows Time Service\NTP Server Incoming 
                         Requests, \Windows Time Service\NTP Client Time Source Count, \Windows Time Service\NTP Roundtrip 
                         Delay...}
    
    CounterSetName     : SynchronizationNuma
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Synchronization performance object consists of counters for kernel synchronization. The 
                         synchronization object represents each processor as an instance of the object. The counters are 
                         aggregated based on the system NUMA topology.
    Paths              : {\SynchronizationNuma(*)\Exec. Resource Boost Shared Owners/sec, \SynchronizationNuma(*)\Exec. 
                         Resource Boost Excl. Owner/sec, \SynchronizationNuma(*)\Exec. Resource Set Owner Pointer Shared 
                         (Existing Owner)/sec, \SynchronizationNuma(*)\Exec. Resource Set Owner Pointer Shared (New 
                         Owner)/sec...}
    PathsWithInstances : {\SynchronizationNuma(0,0)\Exec. Resource Boost Shared Owners/sec, 
                         \SynchronizationNuma(0,1)\Exec. Resource Boost Shared Owners/sec, 
                         \SynchronizationNuma(0,10)\Exec. Resource Boost Shared Owners/sec, 
                         \SynchronizationNuma(0,11)\Exec. Resource Boost Shared Owners/sec...}
    Counter            : {\SynchronizationNuma(*)\Exec. Resource Boost Shared Owners/sec, \SynchronizationNuma(*)\Exec. 
                         Resource Boost Excl. Owner/sec, \SynchronizationNuma(*)\Exec. Resource Set Owner Pointer Shared 
                         (Existing Owner)/sec, \SynchronizationNuma(*)\Exec. Resource Set Owner Pointer Shared (New 
                         Owner)/sec...}
    
    CounterSetName     : Synchronization
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Synchronization performance object consists of counters for kernel synchronization. The 
                         synchronization object represents each processor as an instance of the object.
    Paths              : {\Synchronization(*)\Exec. Resource Boost Shared Owners/sec, \Synchronization(*)\Exec. Resource 
                         Boost Excl. Owner/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (Existing 
                         Owner)/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (New Owner)/sec...}
    PathsWithInstances : {\Synchronization(0)\Exec. Resource Boost Shared Owners/sec, \Synchronization(1)\Exec. Resource 
                         Boost Shared Owners/sec, \Synchronization(10)\Exec. Resource Boost Shared Owners/sec, 
                         \Synchronization(11)\Exec. Resource Boost Shared Owners/sec...}
    Counter            : {\Synchronization(*)\Exec. Resource Boost Shared Owners/sec, \Synchronization(*)\Exec. Resource 
                         Boost Excl. Owner/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (Existing 
                         Owner)/sec, \Synchronization(*)\Exec. Resource Set Owner Pointer Shared (New Owner)/sec...}
    
    CounterSetName     : Event Tracing for Windows
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The counters in this collection refer to system-wide metrics about the performance of the Event 
                         Tracing for Windows subsystem.
    Paths              : {\Event Tracing for Windows\Total Memory Usage --- Non-Paged Pool, \Event Tracing for 
                         Windows\Total Memory Usage --- Paged Pool, \Event Tracing for Windows\Total Number of Active 
                         Sessions, \Event Tracing for Windows\Total Number of Distinct Disabled Providers...}
    PathsWithInstances : {}
    Counter            : {\Event Tracing for Windows\Total Memory Usage --- Non-Paged Pool, \Event Tracing for 
                         Windows\Total Memory Usage --- Paged Pool, \Event Tracing for Windows\Total Number of Active 
                         Sessions, \Event Tracing for Windows\Total Number of Distinct Disabled Providers...}
    
    CounterSetName     : Thermal Zone Information
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Thermal Zone Information performance counter set consists of counters that measure aspects of 
                         each thermal zone in the system.
    Paths              : {\Thermal Zone Information(*)\High Precision Temperature, \Thermal Zone Information(*)\Throttle 
                         Reasons, \Thermal Zone Information(*)\% Passive Limit, \Thermal Zone Information(*)\Temperature}
    PathsWithInstances : {\Thermal Zone Information(*)\High Precision Temperature, \Thermal Zone Information(*)\Throttle 
                         Reasons, \Thermal Zone Information(*)\% Passive Limit, \Thermal Zone Information(*)\Temperature}
    Counter            : {\Thermal Zone Information(*)\High Precision Temperature, \Thermal Zone Information(*)\Throttle 
                         Reasons, \Thermal Zone Information(*)\% Passive Limit, \Thermal Zone Information(*)\Temperature}
    
    CounterSetName     : Processor Information
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Processor Information performance counter set consists of counters that measure aspects of 
                         processor activity. The processor is the part of the computer that performs arithmetic and 
                         logical computations, initiates operations on peripherals, and runs the threads of processes. A 
                         computer can have multiple processors. On some computers, processors are organized in NUMA nodes 
                         that share hardware resources such as physical memory. The Processor Information counter set 
                         represents each processor as a pair of numbers, where the first number is the NUMA node number 
                         and the second number is the zero-based index of the processor within that NUMA node. If the 
                         computer does not use NUMA nodes, the first number is zero.
    Paths              : {\Processor Information(*)\Performance Limit Flags, \Processor Information(*)\% Performance 
                         Limit, \Processor Information(*)\% Privileged Utility, \Processor Information(*)\% Processor 
                         Utility...}
    PathsWithInstances : {\Processor Information(0,0)\Performance Limit Flags, \Processor Information(0,1)\Performance 
                         Limit Flags, \Processor Information(0,10)\Performance Limit Flags, \Processor 
                         Information(0,11)\Performance Limit Flags...}
    Counter            : {\Processor Information(*)\Performance Limit Flags, \Processor Information(*)\% Performance 
                         Limit, \Processor Information(*)\% Privileged Utility, \Processor Information(*)\% Processor 
                         Utility...}
    
    CounterSetName     : Event Tracing for Windows Session
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The counters in this collection are related to individual Event Tracing for Windows sessions.
    Paths              : {\Event Tracing for Windows Session(*)\Number of Real-Time Consumers, \Event Tracing for Windows 
                         Session(*)\Events Lost, \Event Tracing for Windows Session(*)\Events Logged per sec, \Event 
                         Tracing for Windows Session(*)\Buffer Memory Usage -- Non-Paged Pool...}
    PathsWithInstances : {\Event Tracing for Windows Session(8696EAC4-1288-4288-A4EE-49EE431B0AD9)\Number of Real-Time 
                         Consumers, \Event Tracing for Windows Session(Circular Kernel Context Logger)\Number of Real-Time 
                         Consumers, \Event Tracing for Windows Session(CldFltLog)\Number of Real-Time Consumers, \Event 
                         Tracing for Windows Session(DefenderApiLogger)\Number of Real-Time Consumers...}
    Counter            : {\Event Tracing for Windows Session(*)\Number of Real-Time Consumers, \Event Tracing for Windows 
                         Session(*)\Events Lost, \Event Tracing for Windows Session(*)\Events Logged per sec, \Event 
                         Tracing for Windows Session(*)\Buffer Memory Usage -- Non-Paged Pool...}
    
    CounterSetName     : FileSystem Disk Activity
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The FileSystem Disk Activity performance counter set consists of counters that measure the aspect 
                         of filesystem's IO Activity.  This counter set measures the number of bytes filesystem read from 
                         and wrote to the disk drive.
    Paths              : {\FileSystem Disk Activity(*)\FileSystem Bytes Written, \FileSystem Disk Activity(*)\FileSystem 
                         Bytes Read}
    PathsWithInstances : {\FileSystem Disk Activity(default)\FileSystem Bytes Written, \FileSystem Disk 
                         Activity(_Total)\FileSystem Bytes Written, \FileSystem Disk Activity(default)\FileSystem Bytes 
                         Read, \FileSystem Disk Activity(_Total)\FileSystem Bytes Read}
    Counter            : {\FileSystem Disk Activity(*)\FileSystem Bytes Written, \FileSystem Disk Activity(*)\FileSystem 
                         Bytes Read}
    
    CounterSetName     : Hyper-V Virtual Storage Device
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set represents the statistics for a virtual storage device.
    Paths              : {\Hyper-V Virtual Storage Device(*)\Maximum Adapter Worker Count, \Hyper-V Virtual Storage 
                         Device(*)\Adapter Open Channel Count, \Hyper-V Virtual Storage Device(*)\Maximum Bandwidth, 
                         \Hyper-V Virtual Storage Device(*)\Byte Quota Replenishment Rate...}
    PathsWithInstances : {\Hyper-V Virtual Storage Device(*)\Maximum Adapter Worker Count, \Hyper-V Virtual Storage 
                         Device(*)\Adapter Open Channel Count, \Hyper-V Virtual Storage Device(*)\Maximum Bandwidth, 
                         \Hyper-V Virtual Storage Device(*)\Byte Quota Replenishment Rate...}
    Counter            : {\Hyper-V Virtual Storage Device(*)\Maximum Adapter Worker Count, \Hyper-V Virtual Storage 
                         Device(*)\Adapter Open Channel Count, \Hyper-V Virtual Storage Device(*)\Maximum Bandwidth, 
                         \Hyper-V Virtual Storage Device(*)\Byte Quota Replenishment Rate...}
    
    CounterSetName     : PacketDirect EC Utilization
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : NDIS PacketDirect execution context utilization counter set.
    Paths              : {\PacketDirect EC Utilization(*)\RX Queue Count, \PacketDirect EC Utilization(*)\TX Queue Count, 
                         \PacketDirect EC Utilization(*)\% Processing Time, \PacketDirect EC Utilization(*)\% Busy Waiting 
                         Time...}
    PathsWithInstances : {\PacketDirect EC Utilization(*)\RX Queue Count, \PacketDirect EC Utilization(*)\TX Queue Count, 
                         \PacketDirect EC Utilization(*)\% Processing Time, \PacketDirect EC Utilization(*)\% Busy Waiting 
                         Time...}
    Counter            : {\PacketDirect EC Utilization(*)\RX Queue Count, \PacketDirect EC Utilization(*)\TX Queue Count, 
                         \PacketDirect EC Utilization(*)\% Processing Time, \PacketDirect EC Utilization(*)\% Busy Waiting 
                         Time...}
    
    CounterSetName     : RDMA Activity
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The RDMA Activity counter set measures RDMA activity on a NetworkDirect-capable network interface 
                         card.
    Paths              : {\RDMA Activity(*)\RDMA Outbound Frames/sec, \RDMA Activity(*)\RDMA Inbound Frames/sec, \RDMA 
                         Activity(*)\RDMA Outbound Bytes/sec, \RDMA Activity(*)\RDMA Inbound Bytes/sec...}
    PathsWithInstances : {\RDMA Activity(*)\RDMA Outbound Frames/sec, \RDMA Activity(*)\RDMA Inbound Frames/sec, \RDMA 
                         Activity(*)\RDMA Outbound Bytes/sec, \RDMA Activity(*)\RDMA Inbound Bytes/sec...}
    Counter            : {\RDMA Activity(*)\RDMA Outbound Frames/sec, \RDMA Activity(*)\RDMA Inbound Frames/sec, \RDMA 
                         Activity(*)\RDMA Outbound Bytes/sec, \RDMA Activity(*)\RDMA Inbound Bytes/sec...}
    
    CounterSetName     : PacketDirect Receive Counters
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : NDIS PacketDirect receive counter set.
    Paths              : {\PacketDirect Receive Counters(*)\Packets Dropped/sec, \PacketDirect Receive Counters(*)\Packets 
                         Dropped, \PacketDirect Receive Counters(*)\Bytes Received/sec, \PacketDirect Receive 
                         Counters(*)\Bytes Received...}
    PathsWithInstances : {\PacketDirect Receive Counters(*)\Packets Dropped/sec, \PacketDirect Receive Counters(*)\Packets 
                         Dropped, \PacketDirect Receive Counters(*)\Bytes Received/sec, \PacketDirect Receive 
                         Counters(*)\Bytes Received...}
    Counter            : {\PacketDirect Receive Counters(*)\Packets Dropped/sec, \PacketDirect Receive Counters(*)\Packets 
                         Dropped, \PacketDirect Receive Counters(*)\Bytes Received/sec, \PacketDirect Receive 
                         Counters(*)\Bytes Received...}
    
    CounterSetName     : PacketDirect Queue Depth
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : NDIS PacketDirect queue depth counter set.
    Paths              : {\PacketDirect Queue Depth(*)\% Average Queue Utilization, \PacketDirect Queue Depth(*)\Average 
                         Queue Depth}
    PathsWithInstances : {\PacketDirect Queue Depth(*)\% Average Queue Utilization, \PacketDirect Queue Depth(*)\Average 
                         Queue Depth}
    Counter            : {\PacketDirect Queue Depth(*)\% Average Queue Utilization, \PacketDirect Queue Depth(*)\Average 
                         Queue Depth}
    
    CounterSetName     : Per Processor Network Activity Cycles
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Per Processor Network Activity Cycles counter set measures processor cycles due to network 
                         activity of an interface on each processor.
    Paths              : {\Per Processor Network Activity Cycles(*)\Interrupt DPC Latency Cycles/sec, \Per Processor 
                         Network Activity Cycles(*)\Stack Send Complete Cycles/sec, \Per Processor Network Activity 
                         Cycles(*)\Miniport RSS Indirection Table Change Cycles, \Per Processor Network Activity 
                         Cycles(*)\Build Scatter Gather Cycles/sec...}
    PathsWithInstances : {\Per Processor Network Activity Cycles(0, Bluetooth Device (Personal Area Network))\Interrupt 
                         DPC Latency Cycles/sec, \Per Processor Network Activity Cycles(0, Microsoft Network Adapter 
                         Multiplexor Driver)\Interrupt DPC Latency Cycles/sec, \Per Processor Network Activity Cycles(0, 
                         Microsoft Wi-Fi Direct Virtual Adapter)\Interrupt DPC Latency Cycles/sec, \Per Processor Network 
                         Activity Cycles(0, Microsoft Wi-Fi Direct Virtual Adapter #2)\Interrupt DPC Latency Cycles/sec...}
    Counter            : {\Per Processor Network Activity Cycles(*)\Interrupt DPC Latency Cycles/sec, \Per Processor 
                         Network Activity Cycles(*)\Stack Send Complete Cycles/sec, \Per Processor Network Activity 
                         Cycles(*)\Miniport RSS Indirection Table Change Cycles, \Per Processor Network Activity 
                         Cycles(*)\Build Scatter Gather Cycles/sec...}
    
    CounterSetName     : Per Processor Network Interface Card Activity
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Per Processor Network Interface Card Activity counter set measures network activity of a 
                         network interface card per processor.
    Paths              : {\Per Processor Network Interface Card Activity(*)\Packets Coalesced/sec, \Per Processor Network 
                         Interface Card Activity(*)\DPCs Deferred/sec, \Per Processor Network Interface Card 
                         Activity(*)\Tcp Offload Send bytes/sec, \Per Processor Network Interface Card Activity(*)\Tcp 
                         Offload Receive bytes/sec...}
    PathsWithInstances : {\Per Processor Network Interface Card Activity(0, Bluetooth Device (Personal Area 
                         Network))\Packets Coalesced/sec, \Per Processor Network Interface Card Activity(0, Microsoft 
                         Network Adapter Multiplexor Driver)\Packets Coalesced/sec, \Per Processor Network Interface Card 
                         Activity(0, Microsoft Wi-Fi Direct Virtual Adapter)\Packets Coalesced/sec, \Per Processor Network 
                         Interface Card Activity(0, Microsoft Wi-Fi Direct Virtual Adapter #2)\Packets Coalesced/sec...}
    Counter            : {\Per Processor Network Interface Card Activity(*)\Packets Coalesced/sec, \Per Processor Network 
                         Interface Card Activity(*)\DPCs Deferred/sec, \Per Processor Network Interface Card 
                         Activity(*)\Tcp Offload Send bytes/sec, \Per Processor Network Interface Card Activity(*)\Tcp 
                         Offload Receive bytes/sec...}
    
    CounterSetName     : Physical Network Interface Card Activity
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Physical Network Interface Card Activity counter set measures events on a physical network 
                         card.
    Paths              : {\Physical Network Interface Card Activity(*)\Low Power Transitions (Lifetime), \Physical Network 
                         Interface Card Activity(*)\% Time Suspended (Lifetime), \Physical Network Interface Card 
                         Activity(*)\% Time Suspended (Instantaneous), \Physical Network Interface Card Activity(*)\Device 
                         Power State}
    PathsWithInstances : {\Physical Network Interface Card Activity(Realtek 8821CE Wireless LAN 802.11ac PCI-E NIC)\Low 
                         Power Transitions (Lifetime), \Physical Network Interface Card Activity(Realtek PCIe GbE Family 
                         Controller)\Low Power Transitions (Lifetime), \Physical Network Interface Card Activity(Realtek 
                         8821CE Wireless LAN 802.11ac PCI-E NIC)\% Time Suspended (Lifetime), \Physical Network Interface 
                         Card Activity(Realtek PCIe GbE Family Controller)\% Time Suspended (Lifetime)...}
    Counter            : {\Physical Network Interface Card Activity(*)\Low Power Transitions (Lifetime), \Physical Network 
                         Interface Card Activity(*)\% Time Suspended (Lifetime), \Physical Network Interface Card 
                         Activity(*)\% Time Suspended (Instantaneous), \Physical Network Interface Card Activity(*)\Device 
                         Power State}
    
    CounterSetName     : PacketDirect Transmit Counters
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : NDIS PacketDirect transmit counter set.
    Paths              : {\PacketDirect Transmit Counters(*)\Bytes Transmitted/sec, \PacketDirect Transmit 
                         Counters(*)\Bytes Transmitted, \PacketDirect Transmit Counters(*)\Packets Transmitted/sec, 
                         \PacketDirect Transmit Counters(*)\Packets Transmitted}
    PathsWithInstances : {\PacketDirect Transmit Counters(*)\Bytes Transmitted/sec, \PacketDirect Transmit 
                         Counters(*)\Bytes Transmitted, \PacketDirect Transmit Counters(*)\Packets Transmitted/sec, 
                         \PacketDirect Transmit Counters(*)\Packets Transmitted}
    Counter            : {\PacketDirect Transmit Counters(*)\Bytes Transmitted/sec, \PacketDirect Transmit 
                         Counters(*)\Bytes Transmitted, \PacketDirect Transmit Counters(*)\Packets Transmitted/sec, 
                         \PacketDirect Transmit Counters(*)\Packets Transmitted}
    
    CounterSetName     : PacketDirect Receive Filters
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : NDIS PacketDirect receive filter counter set.
    Paths              : {\PacketDirect Receive Filters(*)\Bytes Matched/sec, \PacketDirect Receive Filters(*)\Bytes 
                         Matched, \PacketDirect Receive Filters(*)\Packets Matched/sec, \PacketDirect Receive 
                         Filters(*)\Packets Matched}
    PathsWithInstances : {\PacketDirect Receive Filters(*)\Bytes Matched/sec, \PacketDirect Receive Filters(*)\Bytes 
                         Matched, \PacketDirect Receive Filters(*)\Packets Matched/sec, \PacketDirect Receive 
                         Filters(*)\Packets Matched}
    Counter            : {\PacketDirect Receive Filters(*)\Bytes Matched/sec, \PacketDirect Receive Filters(*)\Bytes 
                         Matched, \PacketDirect Receive Filters(*)\Packets Matched/sec, \PacketDirect Receive 
                         Filters(*)\Packets Matched}
    
    CounterSetName     : Distributed Routing Table
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Distributed Routing Table (DRT) performance object consists of counters that monitor the 
                         local DRT cache as well as counters that measure the rates at which DRT protocol messages are 
                         sent and received.
    Paths              : {\Distributed Routing Table(*)\Unrecognized Messages Received, \Distributed Routing 
                         Table(*)\Lookup Messages Received/second, \Distributed Routing Table(*)\Lookup Messages 
                         Sent/second, \Distributed Routing Table(*)\Ack Messages Received/second...}
    PathsWithInstances : {\Distributed Routing Table(*)\Unrecognized Messages Received, \Distributed Routing 
                         Table(*)\Lookup Messages Received/second, \Distributed Routing Table(*)\Lookup Messages 
                         Sent/second, \Distributed Routing Table(*)\Ack Messages Received/second...}
    Counter            : {\Distributed Routing Table(*)\Unrecognized Messages Received, \Distributed Routing 
                         Table(*)\Lookup Messages Received/second, \Distributed Routing Table(*)\Lookup Messages 
                         Sent/second, \Distributed Routing Table(*)\Ack Messages Received/second...}
    
    CounterSetName     : XHCI CommonBuffer
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Consists of counters that measure aspects of a CommonBuffer object of an xHCI controller.
    Paths              : {\XHCI CommonBuffer(*)\FreeCount, \XHCI CommonBuffer(*)\AllocationCount, \XHCI 
                         CommonBuffer(*)\PagesInUse, \XHCI CommonBuffer(*)\PagesTotal}
    PathsWithInstances : {\XHCI CommonBuffer(*)\FreeCount, \XHCI CommonBuffer(*)\AllocationCount, \XHCI 
                         CommonBuffer(*)\PagesInUse, \XHCI CommonBuffer(*)\PagesTotal}
    Counter            : {\XHCI CommonBuffer(*)\FreeCount, \XHCI CommonBuffer(*)\AllocationCount, \XHCI 
                         CommonBuffer(*)\PagesInUse, \XHCI CommonBuffer(*)\PagesTotal}
    
    CounterSetName     : XHCI TransferRing
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Consists of counters that measure aspects of a transferring of an xHCI controller.
    Paths              : {\XHCI TransferRing(*)\Underrun Overrun count, \XHCI TransferRing(*)\Missed Service Error Count, 
                         \XHCI TransferRing(*)\Isoch TD Failures/sec, \XHCI TransferRing(*)\Isoch TD/sec...}
    PathsWithInstances : {\XHCI TransferRing(*)\Underrun Overrun count, \XHCI TransferRing(*)\Missed Service Error Count, 
                         \XHCI TransferRing(*)\Isoch TD Failures/sec, \XHCI TransferRing(*)\Isoch TD/sec...}
    Counter            : {\XHCI TransferRing(*)\Underrun Overrun count, \XHCI TransferRing(*)\Missed Service Error Count, 
                         \XHCI TransferRing(*)\Isoch TD Failures/sec, \XHCI TransferRing(*)\Isoch TD/sec...}
    
    CounterSetName     : XHCI Interrupter
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Consists of counters that measure aspects of an interrupter of an xHCI controller.
    Paths              : {\XHCI Interrupter(*)\DpcRequeueCount, \XHCI Interrupter(*)\EventRingFullCount, \XHCI 
                         Interrupter(*)\Events processed/DPC, \XHCI Interrupter(*)\DPCs/sec...}
    PathsWithInstances : {\XHCI Interrupter(*)\DpcRequeueCount, \XHCI Interrupter(*)\EventRingFullCount, \XHCI 
                         Interrupter(*)\Events processed/DPC, \XHCI Interrupter(*)\DPCs/sec...}
    Counter            : {\XHCI Interrupter(*)\DpcRequeueCount, \XHCI Interrupter(*)\EventRingFullCount, \XHCI 
                         Interrupter(*)\Events processed/DPC, \XHCI Interrupter(*)\DPCs/sec...}
    
    CounterSetName     : Netlogon
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters for measuring the performance of Netlogon.
    Paths              : {\Netlogon(*)\Last Authentication Time, \Netlogon(*)\Average Semaphore Hold Time, 
                         \Netlogon(*)\Semaphore Timeouts, \Netlogon(*)\Semaphore Acquires...}
    PathsWithInstances : {\Netlogon(*)\Last Authentication Time, \Netlogon(*)\Average Semaphore Hold Time, 
                         \Netlogon(*)\Semaphore Timeouts, \Netlogon(*)\Semaphore Acquires...}
    Counter            : {\Netlogon(*)\Last Authentication Time, \Netlogon(*)\Average Semaphore Hold Time, 
                         \Netlogon(*)\Semaphore Timeouts, \Netlogon(*)\Semaphore Acquires...}
    
    CounterSetName     : Hyper-V VM Save, Snapshot, and Restore
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a virtual machine's save, snapshot, and restore systems.
    Paths              : {\Hyper-V VM Save, Snapshot, and Restore(*)\Operation Time, \Hyper-V VM Save, Snapshot, and 
                         Restore(*)\Requests High Priority, \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Processed, 
                         \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Dispatched...}
    PathsWithInstances : {\Hyper-V VM Save, Snapshot, and Restore(*)\Operation Time, \Hyper-V VM Save, Snapshot, and 
                         Restore(*)\Requests High Priority, \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Processed, 
                         \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Dispatched...}
    Counter            : {\Hyper-V VM Save, Snapshot, and Restore(*)\Operation Time, \Hyper-V VM Save, Snapshot, and 
                         Restore(*)\Requests High Priority, \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Processed, 
                         \Hyper-V VM Save, Snapshot, and Restore(*)\Requests Dispatched...}
    
    CounterSetName     : SMB Server
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The SMB Server performance counters measure file server activity for SMB protocol versions 2 and 
                         higher
    Paths              : {\SMB Server\Receive Bytes/sec, \SMB Server\Send Bytes/sec, \SMB Server\Write Requests/sec, \SMB 
                         Server\Write Bytes/sec...}
    PathsWithInstances : {}
    Counter            : {\SMB Server\Receive Bytes/sec, \SMB Server\Send Bytes/sec, \SMB Server\Write Requests/sec, \SMB 
                         Server\Write Bytes/sec...}
    
    CounterSetName     : SMB Server Sessions
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set displays information about SMB server sessions using SMB protocol version 2 or 
                         higher
    Paths              : {\SMB Server Sessions(*)\Current Data Queue Length, \SMB Server Sessions(*)\Data Requests/sec, 
                         \SMB Server Sessions(*)\Data Bytes/sec, \SMB Server Sessions(*)\Avg. Data Queue Length...}
    PathsWithInstances : {\SMB Server Sessions(*)\Current Data Queue Length, \SMB Server Sessions(*)\Data Requests/sec, 
                         \SMB Server Sessions(*)\Data Bytes/sec, \SMB Server Sessions(*)\Avg. Data Queue Length...}
    Counter            : {\SMB Server Sessions(*)\Current Data Queue Length, \SMB Server Sessions(*)\Data Requests/sec, 
                         \SMB Server Sessions(*)\Data Bytes/sec, \SMB Server Sessions(*)\Avg. Data Queue Length...}
    
    CounterSetName     : SMB Server Shares
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : This counter set displays information about SMB server shares that are shared using SMB protocol 
                         version 2 or higher.
    Paths              : {\SMB Server Shares(*)\Compressed Requests/sec, \SMB Server Shares(*)\Compressed Responses/sec, 
                         \SMB Server Shares(*)\Bytes Compressed/sec, \SMB Server Shares(*)\Write Bytes transmitted 
                         ByPassCSV/sec...}
    PathsWithInstances : {\SMB Server Shares(\\*\ADMIN$)\Compressed Requests/sec, \SMB Server Shares(\\*\C$)\Compressed 
                         Requests/sec, \SMB Server Shares(\\*\IPC$)\Compressed Requests/sec, \SMB Server 
                         Shares(_Total)\Compressed Requests/sec...}
    Counter            : {\SMB Server Shares(*)\Compressed Requests/sec, \SMB Server Shares(*)\Compressed Responses/sec, 
                         \SMB Server Shares(*)\Bytes Compressed/sec, \SMB Server Shares(*)\Write Bytes transmitted 
                         ByPassCSV/sec...}
    
    CounterSetName     : Hyper-V Dynamic Memory Balancer
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set represents the statistics for the Microsoft Dynamic Memory Balancer.
    Paths              : {\Hyper-V Dynamic Memory Balancer(*)\Available Memory For Balancing, \Hyper-V Dynamic Memory 
                         Balancer(*)\System Current Pressure, \Hyper-V Dynamic Memory Balancer(*)\Available Memory, 
                         \Hyper-V Dynamic Memory Balancer(*)\Average Pressure}
    PathsWithInstances : {\Hyper-V Dynamic Memory Balancer(*)\Available Memory For Balancing, \Hyper-V Dynamic Memory 
                         Balancer(*)\System Current Pressure, \Hyper-V Dynamic Memory Balancer(*)\Available Memory, 
                         \Hyper-V Dynamic Memory Balancer(*)\Average Pressure}
    Counter            : {\Hyper-V Dynamic Memory Balancer(*)\Available Memory For Balancing, \Hyper-V Dynamic Memory 
                         Balancer(*)\System Current Pressure, \Hyper-V Dynamic Memory Balancer(*)\Available Memory, 
                         \Hyper-V Dynamic Memory Balancer(*)\Average Pressure}
    
    CounterSetName     : Hyper-V Dynamic Memory VM
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set represents the memory statistics for a Virtual Machine.
    Paths              : {\Hyper-V Dynamic Memory VM(*)\Guest Available Memory, \Hyper-V Dynamic Memory VM(*)\Smart Paging 
                         Working Set Size, \Hyper-V Dynamic Memory VM(*)\Memory Remove Operations, \Hyper-V Dynamic Memory 
                         VM(*)\Removed Memory...}
    PathsWithInstances : {\Hyper-V Dynamic Memory VM(*)\Guest Available Memory, \Hyper-V Dynamic Memory VM(*)\Smart Paging 
                         Working Set Size, \Hyper-V Dynamic Memory VM(*)\Memory Remove Operations, \Hyper-V Dynamic Memory 
                         VM(*)\Removed Memory...}
    Counter            : {\Hyper-V Dynamic Memory VM(*)\Guest Available Memory, \Hyper-V Dynamic Memory VM(*)\Smart Paging 
                         Working Set Size, \Hyper-V Dynamic Memory VM(*)\Memory Remove Operations, \Hyper-V Dynamic Memory 
                         VM(*)\Removed Memory...}
    
    CounterSetName     : Hyper-V Virtual SMB
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for Virtual SMB
    Paths              : {\Hyper-V Virtual SMB(*)\Direct-Mapped Sections, \Hyper-V Virtual SMB(*)\Direct-Mapped Pages, 
                         \Hyper-V Virtual SMB(*)\Write Bytes/sec (RDMA), \Hyper-V Virtual SMB(*)\Write Bytes/sec...}
    PathsWithInstances : {\Hyper-V Virtual SMB(*)\Direct-Mapped Sections, \Hyper-V Virtual SMB(*)\Direct-Mapped Pages, 
                         \Hyper-V Virtual SMB(*)\Write Bytes/sec (RDMA), \Hyper-V Virtual SMB(*)\Write Bytes/sec...}
    Counter            : {\Hyper-V Virtual SMB(*)\Direct-Mapped Sections, \Hyper-V Virtual SMB(*)\Direct-Mapped Pages, 
                         \Hyper-V Virtual SMB(*)\Write Bytes/sec (RDMA), \Hyper-V Virtual SMB(*)\Write Bytes/sec...}
    
    CounterSetName     : RemoteFX Network
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This is counter set for the per session RemoteFX network counters
    Paths              : {\RemoteFX Network(*)\Total Received Bytes, \RemoteFX Network(*)\Total Sent Bytes, \RemoteFX 
                         Network(*)\Current UDP Bandwidth, \RemoteFX Network(*)\Current UDP RTT...}
    PathsWithInstances : {\RemoteFX Network(*)\Total Received Bytes, \RemoteFX Network(*)\Total Sent Bytes, \RemoteFX 
                         Network(*)\Current UDP Bandwidth, \RemoteFX Network(*)\Current UDP RTT...}
    Counter            : {\RemoteFX Network(*)\Total Received Bytes, \RemoteFX Network(*)\Total Sent Bytes, \RemoteFX 
                         Network(*)\Current UDP Bandwidth, \RemoteFX Network(*)\Current UDP RTT...}
    
    CounterSetName     : RemoteFX Graphics
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The RemoteFX encoding performance object consists of counters that measure the performance of 
                         RemoteFX graphics encoding
    Paths              : {\RemoteFX Graphics(*)\Source Frames/Second, \RemoteFX Graphics(*)\Average Encoding Time, 
                         \RemoteFX Graphics(*)\Frame Quality, \RemoteFX Graphics(*)\Frames Skipped/Second - Insufficient 
                         Server Resources...}
    PathsWithInstances : {\RemoteFX Graphics(*)\Source Frames/Second, \RemoteFX Graphics(*)\Average Encoding Time, 
                         \RemoteFX Graphics(*)\Frame Quality, \RemoteFX Graphics(*)\Frames Skipped/Second - Insufficient 
                         Server Resources...}
    Counter            : {\RemoteFX Graphics(*)\Source Frames/Second, \RemoteFX Graphics(*)\Average Encoding Time, 
                         \RemoteFX Graphics(*)\Frame Quality, \RemoteFX Graphics(*)\Frames Skipped/Second - Insufficient 
                         Server Resources...}
    
    CounterSetName     : GPU Local Adapter Memory
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The local memory usage of each adapter
    Paths              : {\GPU Local Adapter Memory(*)\Local Usage}
    PathsWithInstances : {\GPU Local Adapter Memory(luid_0x00000000_0x0000E381_phys_0)\Local Usage, \GPU Local Adapter 
                         Memory(luid_0x00000000_0x0000EF5D_phys_0_part_0)\Local Usage}
    Counter            : {\GPU Local Adapter Memory(*)\Local Usage}
    
    CounterSetName     : GPU Engine
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The running time of each gpu engine
    Paths              : {\GPU Engine(*)\Utilization Percentage, \GPU Engine(*)\Running Time}
    PathsWithInstances : {\GPU Engine(pid_1440_luid_0x00000000_0x0000E381_phys_0_eng_0_engtype_3D)\Utilization Percentage, 
                         \GPU Engine(pid_1440_luid_0x00000000_0x0000E381_phys_0_eng_10_engtype_Compute_1)\Utilization 
                         Percentage, \GPU Engine(pid_1440_luid_0x00000000_0x0000E381_phys_0_eng_11_engtype_VR)\Utilization 
                         Percentage, \GPU 
                         Engine(pid_1440_luid_0x00000000_0x0000E381_phys_0_eng_12_engtype_Copy)\Utilization Percentage...}
    Counter            : {\GPU Engine(*)\Utilization Percentage, \GPU Engine(*)\Running Time}
    
    CounterSetName     : GPU Adapter Memory
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The memory usage of each adapter
    Paths              : {\GPU Adapter Memory(*)\Shared Usage, \GPU Adapter Memory(*)\Dedicated Usage, \GPU Adapter 
                         Memory(*)\Total Committed}
    PathsWithInstances : {\GPU Adapter Memory(luid_0x00000000_0x0000E381_phys_0)\Shared Usage, \GPU Adapter 
                         Memory(luid_0x00000000_0x0000EF5D_phys_0)\Shared Usage, \GPU Adapter 
                         Memory(luid_0x00000000_0x0000E381_phys_0)\Dedicated Usage, \GPU Adapter 
                         Memory(luid_0x00000000_0x0000EF5D_phys_0)\Dedicated Usage...}
    Counter            : {\GPU Adapter Memory(*)\Shared Usage, \GPU Adapter Memory(*)\Dedicated Usage, \GPU Adapter 
                         Memory(*)\Total Committed}
    
    CounterSetName     : GPU Process Memory
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The memory usage of each process
    Paths              : {\GPU Process Memory(*)\Shared Usage, \GPU Process Memory(*)\Dedicated Usage, \GPU Process 
                         Memory(*)\Non Local Usage, \GPU Process Memory(*)\Local Usage...}
    PathsWithInstances : {\GPU Process Memory(pid_1440_luid_0x00000000_0x0000E381_phys_0)\Shared Usage, \GPU Process 
                         Memory(pid_1440_luid_0x00000000_0x0000EF5D_phys_0)\Shared Usage, \GPU Process 
                         Memory(pid_1888_luid_0x00000000_0x0000E381_phys_0)\Shared Usage, \GPU Process 
                         Memory(pid_1888_luid_0x00000000_0x0000EF5D_phys_0)\Shared Usage...}
    Counter            : {\GPU Process Memory(*)\Shared Usage, \GPU Process Memory(*)\Dedicated Usage, \GPU Process 
                         Memory(*)\Non Local Usage, \GPU Process Memory(*)\Local Usage...}
    
    CounterSetName     : GPU Non Local Adapter Memory
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The non local memory usage of each adapter
    Paths              : {\GPU Non Local Adapter Memory(*)\Non Local Usage}
    PathsWithInstances : {\GPU Non Local Adapter Memory(luid_0x00000000_0x0000E381_phys_0_part_0)\Non Local Usage}
    Counter            : {\GPU Non Local Adapter Memory(*)\Non Local Usage}
    
    CounterSetName     : PowerShell Workflow
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Displays performance counters for PowerShell Workflow engine.
    Paths              : {\PowerShell Workflow(*)\PowerShell Remoting: # of connections closed-reopened, \PowerShell 
                         Workflow(*)\PowerShell Remoting: # of disposed connections, \PowerShell Workflow(*)\PowerShell 
                         Remoting: # of created connections, \PowerShell Workflow(*)\PowerShell Remoting: # of forced to 
                         wait requests in queue...}
    PathsWithInstances : {\PowerShell Workflow(*)\PowerShell Remoting: # of connections closed-reopened, \PowerShell 
                         Workflow(*)\PowerShell Remoting: # of disposed connections, \PowerShell Workflow(*)\PowerShell 
                         Remoting: # of created connections, \PowerShell Workflow(*)\PowerShell Remoting: # of forced to 
                         wait requests in queue...}
    Counter            : {\PowerShell Workflow(*)\PowerShell Remoting: # of connections closed-reopened, \PowerShell 
                         Workflow(*)\PowerShell Remoting: # of disposed connections, \PowerShell Workflow(*)\PowerShell 
                         Remoting: # of created connections, \PowerShell Workflow(*)\PowerShell Remoting: # of forced to 
                         wait requests in queue...}
    
    CounterSetName     : HTTP Service
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Set of HTTP service counters
    Paths              : {\HTTP Service\TotalFlushedUris, \HTTP Service\UriCacheFlushes, \HTTP Service\UriCacheMisses, 
                         \HTTP Service\UriCacheHits...}
    PathsWithInstances : {}
    Counter            : {\HTTP Service\TotalFlushedUris, \HTTP Service\UriCacheFlushes, \HTTP Service\UriCacheMisses, 
                         \HTTP Service\UriCacheHits...}
    
    CounterSetName     : HTTP Service Url Groups
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Set of URL Group-specific counters
    Paths              : {\HTTP Service Url Groups(*)\AllRequests, \HTTP Service Url Groups(*)\HeadRequests, \HTTP Service 
                         Url Groups(*)\GetRequests, \HTTP Service Url Groups(*)\ConnectionAttempts...}
    PathsWithInstances : {\HTTP Service Url Groups(FE00000A40000002)\AllRequests, \HTTP Service Url 
                         Groups(FE00000B40000001)\AllRequests, \HTTP Service Url Groups(FE00000A40000002)\HeadRequests, 
                         \HTTP Service Url Groups(FE00000B40000001)\HeadRequests...}
    Counter            : {\HTTP Service Url Groups(*)\AllRequests, \HTTP Service Url Groups(*)\HeadRequests, \HTTP Service 
                         Url Groups(*)\GetRequests, \HTTP Service Url Groups(*)\ConnectionAttempts...}
    
    CounterSetName     : HTTP Service Request Queues
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Set of request queue counters
    Paths              : {\HTTP Service Request Queues(*)\CacheHitRate, \HTTP Service Request Queues(*)\RejectedRequests, 
                         \HTTP Service Request Queues(*)\RejectionRate, \HTTP Service Request Queues(*)\ArrivalRate...}
    PathsWithInstances : {\HTTP Service Request Queues(---1)\CacheHitRate, \HTTP Service Request 
                         Queues(---2)\CacheHitRate, \HTTP Service Request Queues(---1)\RejectedRequests, \HTTP Service 
                         Request Queues(---2)\RejectedRequests...}
    Counter            : {\HTTP Service Request Queues(*)\CacheHitRate, \HTTP Service Request Queues(*)\RejectedRequests, 
                         \HTTP Service Request Queues(*)\RejectionRate, \HTTP Service Request Queues(*)\ArrivalRate...}
    
    CounterSetName     : WinNAT ICMP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WinNat ICMP counter set measures network activity for network address translated ICMP packets.
    Paths              : {\WinNAT ICMP\NumSessionsTimedOut, \WinNAT ICMP\NumPacketsDropped, \WinNAT 
                         ICMP\NumExtToIntTranslations, \WinNAT ICMP\NumIntToExtTranslations...}
    PathsWithInstances : {}
    Counter            : {\WinNAT ICMP\NumSessionsTimedOut, \WinNAT ICMP\NumPacketsDropped, \WinNAT 
                         ICMP\NumExtToIntTranslations, \WinNAT ICMP\NumIntToExtTranslations...}
    
    CounterSetName     : WinNAT
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WinNAT general counter set measures network activity for all network address translated packets.
    Paths              : {\WinNAT\Intra-RoutingDomain Hairpinned Packets, \WinNAT\Intra-RoutingDomain Hairpinned 
                         Packets/sec, \WinNAT\Inter-RoutingDomain Hairpinned Packets, \WinNAT\Inter-RoutingDomain 
                         Hairpinned Packets/sec...}
    PathsWithInstances : {}
    Counter            : {\WinNAT\Intra-RoutingDomain Hairpinned Packets, \WinNAT\Intra-RoutingDomain Hairpinned 
                         Packets/sec, \WinNAT\Inter-RoutingDomain Hairpinned Packets, \WinNAT\Inter-RoutingDomain 
                         Hairpinned Packets/sec...}
    
    CounterSetName     : WinNAT TCP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WinNat TCP counter set measures network activity for network address translated TCP packets.
    Paths              : {\WinNAT TCP\NumSessionsTimedOut, \WinNAT TCP\NumPacketsDropped, \WinNAT 
                         TCP\NumExtToIntTranslations, \WinNAT TCP\NumIntToExtTranslations...}
    PathsWithInstances : {}
    Counter            : {\WinNAT TCP\NumSessionsTimedOut, \WinNAT TCP\NumPacketsDropped, \WinNAT 
                         TCP\NumExtToIntTranslations, \WinNAT TCP\NumIntToExtTranslations...}
    
    CounterSetName     : WinNAT Instance
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WinNAT instance counterset provides resource usage information per NAT instance.
    Paths              : {\WinNAT Instance(*)\UDP Ports Available, \WinNAT Instance(*)\UDP Ports In Use, \WinNAT 
                         Instance(*)\TCP Ports Available, \WinNAT Instance(*)\TCP Ports In Use}
    PathsWithInstances : {\WinNAT Instance(*)\UDP Ports Available, \WinNAT Instance(*)\UDP Ports In Use, \WinNAT 
                         Instance(*)\TCP Ports Available, \WinNAT Instance(*)\TCP Ports In Use}
    Counter            : {\WinNAT Instance(*)\UDP Ports Available, \WinNAT Instance(*)\UDP Ports In Use, \WinNAT 
                         Instance(*)\TCP Ports Available, \WinNAT Instance(*)\TCP Ports In Use}
    
    CounterSetName     : WinNAT UDP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WinNat UDP counter set measures network activity for network address translated UDP packets.
    Paths              : {\WinNAT UDP\NumSessionsTimedOut, \WinNAT UDP\NumPacketsDropped, \WinNAT 
                         UDP\NumExtToIntTranslations, \WinNAT UDP\NumIntToExtTranslations...}
    PathsWithInstances : {}
    Counter            : {\WinNAT UDP\NumSessionsTimedOut, \WinNAT UDP\NumPacketsDropped, \WinNAT 
                         UDP\NumExtToIntTranslations, \WinNAT UDP\NumIntToExtTranslations...}
    
    CounterSetName     : TCPIP Performance Diagnostics
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set measures various TCPIP activity for performance diagnostics.
    Paths              : {\TCPIP Performance Diagnostics\URO segment forwarding failures during software segmentation, 
                         \TCPIP Performance Diagnostics\URO segments forwarded via software segmentation and checksum, 
                         \TCPIP Performance Diagnostics\URO segments forwarded via software segmentation, \TCPIP 
                         Performance Diagnostics\TCP RSC bytes received...}
    PathsWithInstances : {}
    Counter            : {\TCPIP Performance Diagnostics\URO segment forwarding failures during software segmentation, 
                         \TCPIP Performance Diagnostics\URO segments forwarded via software segmentation and checksum, 
                         \TCPIP Performance Diagnostics\URO segments forwarded via software segmentation, \TCPIP 
                         Performance Diagnostics\TCP RSC bytes received...}
    
    CounterSetName     : TCPIP Performance Diagnostics (Per-CPU)
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : This counter set measures various per-CPU TCPIP activity for performance diagnostics.
    Paths              : {\TCPIP Performance Diagnostics (Per-CPU)(*)\TCP current connections}
    PathsWithInstances : {\TCPIP Performance Diagnostics (Per-CPU)(CPU0)\TCP current connections, \TCPIP Performance 
                         Diagnostics (Per-CPU)(CPU1)\TCP current connections, \TCPIP Performance Diagnostics 
                         (Per-CPU)(CPU10)\TCP current connections, \TCPIP Performance Diagnostics (Per-CPU)(CPU11)\TCP 
                         current connections...}
    Counter            : {\TCPIP Performance Diagnostics (Per-CPU)(*)\TCP current connections}
    
    CounterSetName     : Energy Meter
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Energy Meter performance object measures total energy consumption.
    Paths              : {\Energy Meter(*)\Power, \Energy Meter(*)\Energy, \Energy Meter(*)\Time}
    PathsWithInstances : {\Energy Meter(*)\Power, \Energy Meter(*)\Energy, \Energy Meter(*)\Time}
    Counter            : {\Energy Meter(*)\Power, \Energy Meter(*)\Energy, \Energy Meter(*)\Time}
    
    CounterSetName     : Power Meter
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set displays power metering and budgeting information
    Paths              : {\Power Meter(*)\Power Budget, \Power Meter(*)\Power}
    PathsWithInstances : {\Power Meter(*)\Power Budget, \Power Meter(*)\Power}
    Counter            : {\Power Meter(*)\Power Budget, \Power Meter(*)\Power}
    
    CounterSetName     : ServiceModelEndpoint 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : ServiceModel performance counters for endpoint
    Paths              : {\ServiceModelEndpoint 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelEndpoint 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages 
                         Dropped Per Second, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages Dropped...}
    PathsWithInstances : {\ServiceModelEndpoint 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelEndpoint 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages 
                         Dropped Per Second, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages Dropped...}
    Counter            : {\ServiceModelEndpoint 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelEndpoint 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages 
                         Dropped Per Second, \ServiceModelEndpoint 4.0.0.0(*)\Reliable Messaging Messages Dropped...}
    
    CounterSetName     : ServiceModelOperation 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : ServiceModelOperation 4.0.0.0 performance counters
    Paths              : {\ServiceModelOperation 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelOperation 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized 
                         Per Second, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized...}
    PathsWithInstances : {\ServiceModelOperation 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelOperation 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized 
                         Per Second, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized...}
    Counter            : {\ServiceModelOperation 4.0.0.0(*)\Transactions Flowed Per Second, \ServiceModelOperation 
                         4.0.0.0(*)\Transactions Flowed, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized 
                         Per Second, \ServiceModelOperation 4.0.0.0(*)\Security Calls Not Authorized...}
    
    CounterSetName     : ServiceModelService 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : ServiceModel performance counters for service
    Paths              : {\ServiceModelService 4.0.0.0(*)\Percent Of Max Concurrent Sessions, \ServiceModelService 
                         4.0.0.0(*)\Percent Of Max Concurrent Instances, \ServiceModelService 4.0.0.0(*)\Percent Of Max 
                         Concurrent Calls, \ServiceModelService 4.0.0.0(*)\Queued Messages Dropped Per Second...}
    PathsWithInstances : {\ServiceModelService 4.0.0.0(*)\Percent Of Max Concurrent Sessions, \ServiceModelService 
                         4.0.0.0(*)\Percent Of Max Concurrent Instances, \ServiceModelService 4.0.0.0(*)\Percent Of Max 
                         Concurrent Calls, \ServiceModelService 4.0.0.0(*)\Queued Messages Dropped Per Second...}
    Counter            : {\ServiceModelService 4.0.0.0(*)\Percent Of Max Concurrent Sessions, \ServiceModelService 
                         4.0.0.0(*)\Percent Of Max Concurrent Instances, \ServiceModelService 4.0.0.0(*)\Percent Of Max 
                         Concurrent Calls, \ServiceModelService 4.0.0.0(*)\Queued Messages Dropped Per Second...}
    
    CounterSetName     : Hyper-V Virtual Machine Bus
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set represents the statistics for the virtual machine bus.
    Paths              : {\Hyper-V Virtual Machine Bus\Throttle Events, \Hyper-V Virtual Machine Bus\Interrupts Sent/sec, 
                         \Hyper-V Virtual Machine Bus\Interrupts Received/sec}
    PathsWithInstances : {}
    Counter            : {\Hyper-V Virtual Machine Bus\Throttle Events, \Hyper-V Virtual Machine Bus\Interrupts Sent/sec, 
                         \Hyper-V Virtual Machine Bus\Interrupts Received/sec}
    
    CounterSetName     : Hyper-V VM Live Migration
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a virtual machine's live migration.
    Paths              : {\Hyper-V VM Live Migration(*)\Receiver: Decompressed Bytes/sec, \Hyper-V VM Live 
                         Migration(*)\Receiver: Bytes Pending Decompression, \Hyper-V VM Live Migration(*)\Receiver: 
                         Compressed Bytes Received/sec, \Hyper-V VM Live Migration(*)\Receiver: Maximum Threadpool Thread 
                         Count...}
    PathsWithInstances : {\Hyper-V VM Live Migration(*)\Receiver: Decompressed Bytes/sec, \Hyper-V VM Live 
                         Migration(*)\Receiver: Bytes Pending Decompression, \Hyper-V VM Live Migration(*)\Receiver: 
                         Compressed Bytes Received/sec, \Hyper-V VM Live Migration(*)\Receiver: Maximum Threadpool Thread 
                         Count...}
    Counter            : {\Hyper-V VM Live Migration(*)\Receiver: Decompressed Bytes/sec, \Hyper-V VM Live 
                         Migration(*)\Receiver: Bytes Pending Decompression, \Hyper-V VM Live Migration(*)\Receiver: 
                         Compressed Bytes Received/sec, \Hyper-V VM Live Migration(*)\Receiver: Maximum Threadpool Thread 
                         Count...}
    
    CounterSetName     : Hyper-V Legacy Network Adapter
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a virtual machine's Ethernet controller.
    Paths              : {\Hyper-V Legacy Network Adapter(*)\Bytes Sent/sec, \Hyper-V Legacy Network Adapter(*)\Bytes 
                         Dropped, \Hyper-V Legacy Network Adapter(*)\Bytes Received/sec, \Hyper-V Legacy Network 
                         Adapter(*)\Frames Sent/sec...}
    PathsWithInstances : {\Hyper-V Legacy Network Adapter(*)\Bytes Sent/sec, \Hyper-V Legacy Network Adapter(*)\Bytes 
                         Dropped, \Hyper-V Legacy Network Adapter(*)\Bytes Received/sec, \Hyper-V Legacy Network 
                         Adapter(*)\Frames Sent/sec...}
    Counter            : {\Hyper-V Legacy Network Adapter(*)\Bytes Sent/sec, \Hyper-V Legacy Network Adapter(*)\Bytes 
                         Dropped, \Hyper-V Legacy Network Adapter(*)\Bytes Received/sec, \Hyper-V Legacy Network 
                         Adapter(*)\Frames Sent/sec...}
    
    CounterSetName     : Bluetooth Device
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters related to a remote Bluetooth device
    Paths              : {\Bluetooth Device(*)\SCO bytes read/sec, \Bluetooth Device(*)\LE ACL bytes read/sec, \Bluetooth 
                         Device(*)\Classic ACL bytes read/sec, \Bluetooth Device(*)\SCO bytes written/sec...}
    PathsWithInstances : {\Bluetooth Device(*)\SCO bytes read/sec, \Bluetooth Device(*)\LE ACL bytes read/sec, \Bluetooth 
                         Device(*)\Classic ACL bytes read/sec, \Bluetooth Device(*)\SCO bytes written/sec...}
    Counter            : {\Bluetooth Device(*)\SCO bytes read/sec, \Bluetooth Device(*)\LE ACL bytes read/sec, \Bluetooth 
                         Device(*)\Classic ACL bytes read/sec, \Bluetooth Device(*)\SCO bytes written/sec...}
    
    CounterSetName     : Bluetooth Radio
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters related to a local Bluetooth radio
    Paths              : {\Bluetooth Radio(*)\LE Scan Interval - Coded Phy, \Bluetooth Radio(*)\LE Scan Window - Coded 
                         Phy, \Bluetooth Radio(*)\LE Scan Duty Cycle (%) - Coded Phy, \Bluetooth Radio(*)\Inquiry Scan 
                         Interval...}
    PathsWithInstances : {\Bluetooth Radio(Realtek Bluetooth Adapter)\LE Scan Interval - Coded Phy, \Bluetooth 
                         Radio(Realtek Bluetooth Adapter)\LE Scan Window - Coded Phy, \Bluetooth Radio(Realtek Bluetooth 
                         Adapter)\LE Scan Duty Cycle (%) - Coded Phy, \Bluetooth Radio(Realtek Bluetooth Adapter)\Inquiry 
                         Scan Interval...}
    Counter            : {\Bluetooth Radio(*)\LE Scan Interval - Coded Phy, \Bluetooth Radio(*)\LE Scan Window - Coded 
                         Phy, \Bluetooth Radio(*)\LE Scan Duty Cycle (%) - Coded Phy, \Bluetooth Radio(*)\Inquiry Scan 
                         Interval...}
    
    CounterSetName     : Hyper-V Worker Virtual Processor
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for the virtual processor of a virtual machine.
    Paths              : {\Hyper-V Worker Virtual Processor(*)\Intercepts Delayed, \Hyper-V Worker Virtual 
                         Processor(*)\Intercept Delay Time (ms)}
    PathsWithInstances : {\Hyper-V Worker Virtual Processor(*)\Intercepts Delayed, \Hyper-V Worker Virtual 
                         Processor(*)\Intercept Delay Time (ms)}
    Counter            : {\Hyper-V Worker Virtual Processor(*)\Intercepts Delayed, \Hyper-V Worker Virtual 
                         Processor(*)\Intercept Delay Time (ms)}
    
    CounterSetName     : Hyper-V Dynamic Memory Integration Service
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : This counter set represents the statistics for Dynamic Memory Integration Services
    Paths              : {\Hyper-V Dynamic Memory Integration Service\Maximum Memory, Mbytes}
    PathsWithInstances : {}
    Counter            : {\Hyper-V Dynamic Memory Integration Service\Maximum Memory, Mbytes}
    
    CounterSetName     : Teredo Client
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Statistics of Teredo client.
    Paths              : {\Teredo Client(*)\Out - Teredo Data Kernel Mode, \Teredo Client(*)\Out - Teredo Data User Mode, 
                         \Teredo Client(*)\In - Teredo Data Kernel Mode, \Teredo Client(*)\In - Teredo Data User Mode...}
    PathsWithInstances : {\Teredo Client(Default)\Out - Teredo Data Kernel Mode, \Teredo Client(Default)\Out - Teredo Data 
                         User Mode, \Teredo Client(Default)\In - Teredo Data Kernel Mode, \Teredo Client(Default)\In - 
                         Teredo Data User Mode...}
    Counter            : {\Teredo Client(*)\Out - Teredo Data Kernel Mode, \Teredo Client(*)\Out - Teredo Data User Mode, 
                         \Teredo Client(*)\In - Teredo Data Kernel Mode, \Teredo Client(*)\In - Teredo Data User Mode...}
    
    CounterSetName     : Teredo Server
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Statistics of Teredo server hosted on this machine.
    Paths              : {\Teredo Server(*)\In - Teredo Server Total Packets: Success + Error / sec, \Teredo Server(*)\Out 
                         - Teredo Server: RA-Secondary , \Teredo Server(*)\Out - Teredo Server: RA-Primary, \Teredo 
                         Server(*)\In - Teredo Server Error Packets: Authentication Error...}
    PathsWithInstances : {\Teredo Server(Default)\In - Teredo Server Total Packets: Success + Error / sec, \Teredo 
                         Server(Default)\Out - Teredo Server: RA-Secondary , \Teredo Server(Default)\Out - Teredo Server: 
                         RA-Primary, \Teredo Server(Default)\In - Teredo Server Error Packets: Authentication Error...}
    Counter            : {\Teredo Server(*)\In - Teredo Server Total Packets: Success + Error / sec, \Teredo Server(*)\Out 
                         - Teredo Server: RA-Secondary , \Teredo Server(*)\Out - Teredo Server: RA-Primary, \Teredo 
                         Server(*)\In - Teredo Server Error Packets: Authentication Error...}
    
    CounterSetName     : IPHTTPS Global
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Statistics of IPHTTPS server on this machine.
    Paths              : {\IPHTTPS Global(*)\Sessions - Total sessions, \IPHTTPS Global(*)\Out - Total packets sent, 
                         \IPHTTPS Global(*)\In - Total packets received, \IPHTTPS Global(*)\Errors - Receive errors on the 
                         server...}
    PathsWithInstances : {\IPHTTPS Global(Default)\Sessions - Total sessions, \IPHTTPS Global(Default)\Out - Total packets 
                         sent, \IPHTTPS Global(Default)\In - Total packets received, \IPHTTPS Global(Default)\Errors - 
                         Receive errors on the server...}
    Counter            : {\IPHTTPS Global(*)\Sessions - Total sessions, \IPHTTPS Global(*)\Out - Total packets sent, 
                         \IPHTTPS Global(*)\In - Total packets received, \IPHTTPS Global(*)\Errors - Receive errors on the 
                         server...}
    
    CounterSetName     : DNS64 Global
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Statistics of DNS64 on this machine.
    Paths              : {\DNS64 Global(*)\AAAA - Synthesized records, \DNS64 Global(*)\Other queries - Failed, \DNS64 
                         Global(*)\Other queries - Successful, \DNS64 Global(*)\IP6.ARPA queries - Matched...}
    PathsWithInstances : {\DNS64 Global(Default)\AAAA - Synthesized records, \DNS64 Global(Default)\Other queries - 
                         Failed, \DNS64 Global(Default)\Other queries - Successful, \DNS64 Global(Default)\IP6.ARPA 
                         queries - Matched...}
    Counter            : {\DNS64 Global(*)\AAAA - Synthesized records, \DNS64 Global(*)\Other queries - Failed, \DNS64 
                         Global(*)\Other queries - Successful, \DNS64 Global(*)\IP6.ARPA queries - Matched...}
    
    CounterSetName     : IPHTTPS Session
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Per session statistics on this IPHTTPS server.
    Paths              : {\IPHTTPS Session(*)\Duration - Duration of the session (Seconds), \IPHTTPS Session(*)\Errors - 
                         Receive errors on this session, \IPHTTPS Session(*)\Errors - Transmit errors on this session, 
                         \IPHTTPS Session(*)\Bytes sent on this session...}
    PathsWithInstances : {\IPHTTPS Session(*)\Duration - Duration of the session (Seconds), \IPHTTPS Session(*)\Errors - 
                         Receive errors on this session, \IPHTTPS Session(*)\Errors - Transmit errors on this session, 
                         \IPHTTPS Session(*)\Bytes sent on this session...}
    Counter            : {\IPHTTPS Session(*)\Duration - Duration of the session (Seconds), \IPHTTPS Session(*)\Errors - 
                         Receive errors on this session, \IPHTTPS Session(*)\Errors - Transmit errors on this session, 
                         \IPHTTPS Session(*)\Bytes sent on this session...}
    
    CounterSetName     : Teredo Relay
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Statistics of Teredo relay hosted on this machine.
    Paths              : {\Teredo Relay(*)\Out - Teredo Relay Success Packets: Data Packets Kernel Mode, \Teredo 
                         Relay(*)\Out - Teredo Relay Success Packets: Data Packets User Mode, \Teredo Relay(*)\In - Teredo 
                         Relay Success Packets: Data Packets Kernel Mode, \Teredo Relay(*)\In - Teredo Relay Success 
                         Packets: Data Packets User Mode...}
    PathsWithInstances : {\Teredo Relay(Default)\Out - Teredo Relay Success Packets: Data Packets Kernel Mode, \Teredo 
                         Relay(Default)\Out - Teredo Relay Success Packets: Data Packets User Mode, \Teredo 
                         Relay(Default)\In - Teredo Relay Success Packets: Data Packets Kernel Mode, \Teredo 
                         Relay(Default)\In - Teredo Relay Success Packets: Data Packets User Mode...}
    Counter            : {\Teredo Relay(*)\Out - Teredo Relay Success Packets: Data Packets Kernel Mode, \Teredo 
                         Relay(*)\Out - Teredo Relay Success Packets: Data Packets User Mode, \Teredo Relay(*)\In - Teredo 
                         Relay Success Packets: Data Packets Kernel Mode, \Teredo Relay(*)\In - Teredo Relay Success 
                         Packets: Data Packets User Mode...}
    
    CounterSetName     : VFP Port Total Outbound Dropped Network Packets
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Total Outbound Dropped Network Packets counter set 
                         tracks the total outbound dropped network packets for a port.
    Paths              : {\VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Copy 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Exception 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped MAC Spoofing 
                         Packets...}
    PathsWithInstances : {\VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Copy 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Exception 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped MAC Spoofing 
                         Packets...}
    Counter            : {\VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Copy 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped GFT Exception 
                         Packets, \VFP Port Total Outbound Dropped Network Packets(*)\Total Outbound Dropped MAC Spoofing 
                         Packets...}
    
    CounterSetName     : VFP QoS Queue Average Outbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) QoS Queue Average Outbound Network Traffic counter set 
                         tracks the average network traffic through an outbound QoS Queue.
    Paths              : {\VFP QoS Queue Average Outbound Network Traffic(*)\Average Outbound Packets Resumed, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Resumed, \VFP QoS Queue Average 
                         Outbound Network Traffic(*)\Average Outbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Queued due to Insufficient 
                         Tokens...}
    PathsWithInstances : {\VFP QoS Queue Average Outbound Network Traffic(*)\Average Outbound Packets Resumed, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Resumed, \VFP QoS Queue Average 
                         Outbound Network Traffic(*)\Average Outbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Queued due to Insufficient 
                         Tokens...}
    Counter            : {\VFP QoS Queue Average Outbound Network Traffic(*)\Average Outbound Packets Resumed, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Resumed, \VFP QoS Queue Average 
                         Outbound Network Traffic(*)\Average Outbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Outbound Network Traffic(*)\Average Outbound Bytes Queued due to Insufficient 
                         Tokens...}
    
    CounterSetName     : VFP Port Average Inbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Average Inbound Network Traffic counter set tracks the 
                         average inbound network traffic of a port.
    Paths              : {\VFP Port Average Inbound Network Traffic(*)\Average Inbound GFT Total Bytes, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Total Packets, \VFP Port Average Inbound Network 
                         Traffic(*)\Average Inbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Exception UF Offloaded UDP Packets...}
    PathsWithInstances : {\VFP Port Average Inbound Network Traffic(*)\Average Inbound GFT Total Bytes, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Total Packets, \VFP Port Average Inbound Network 
                         Traffic(*)\Average Inbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Exception UF Offloaded UDP Packets...}
    Counter            : {\VFP Port Average Inbound Network Traffic(*)\Average Inbound GFT Total Bytes, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Total Packets, \VFP Port Average Inbound Network 
                         Traffic(*)\Average Inbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Inbound Network Traffic(*)\Average Inbound GFT Exception UF Offloaded UDP Packets...}
    
    CounterSetName     : VFP Port Total Outbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Total Outbound Network Traffic counter set tracks the 
                         total outbound network traffic of a port.
    Paths              : {\VFP Port Total Outbound Network Traffic(*)\Total Outbound GFT Bytes, \VFP Port Total Outbound 
                         Network Traffic(*)\Total Outbound GftTotalPackets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Retry Awaiting Packets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Exception UF Offloaded UDP Packets...}
    PathsWithInstances : {\VFP Port Total Outbound Network Traffic(*)\Total Outbound GFT Bytes, \VFP Port Total Outbound 
                         Network Traffic(*)\Total Outbound GftTotalPackets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Retry Awaiting Packets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Exception UF Offloaded UDP Packets...}
    Counter            : {\VFP Port Total Outbound Network Traffic(*)\Total Outbound GFT Bytes, \VFP Port Total Outbound 
                         Network Traffic(*)\Total Outbound GftTotalPackets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Retry Awaiting Packets, \VFP Port Total Outbound Network 
                         Traffic(*)\Total Outbound GFT Exception UF Offloaded UDP Packets...}
    
    CounterSetName     : VFP Port Average Outbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Average Outbound Network Traffic counter set tracks the 
                         average outbound network traffic of a port.
    Paths              : {\VFP Port Average Outbound Network Traffic(*)\Average GFT Outbound Bytes, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Packets, \VFP Port Average Outbound Network 
                         Traffic(*)\Average Outbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Exception UF Offloaded UDP Packets...}
    PathsWithInstances : {\VFP Port Average Outbound Network Traffic(*)\Average GFT Outbound Bytes, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Packets, \VFP Port Average Outbound Network 
                         Traffic(*)\Average Outbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Exception UF Offloaded UDP Packets...}
    Counter            : {\VFP Port Average Outbound Network Traffic(*)\Average GFT Outbound Bytes, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Packets, \VFP Port Average Outbound Network 
                         Traffic(*)\Average Outbound GFT Exception UF Offload Retry Awaiting Packets, \VFP Port Average 
                         Outbound Network Traffic(*)\Average Outbound GFT Exception UF Offloaded UDP Packets...}
    
    CounterSetName     : VFP QoS Queue Total Outbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) QoS Queue Total Outbound Network Traffic counter set tracks 
                         the total network traffic through an outbound QoS Queue.
    Paths              : {\VFP QoS Queue Total Outbound Network Traffic(*)\Total Outbound Packets Dropped, \VFP QoS Queue 
                         Total Outbound Network Traffic(*)\Total Outbound Bytes Dropped}
    PathsWithInstances : {\VFP QoS Queue Total Outbound Network Traffic(*)\Total Outbound Packets Dropped, \VFP QoS Queue 
                         Total Outbound Network Traffic(*)\Total Outbound Bytes Dropped}
    Counter            : {\VFP QoS Queue Total Outbound Network Traffic(*)\Total Outbound Packets Dropped, \VFP QoS Queue 
                         Total Outbound Network Traffic(*)\Total Outbound Bytes Dropped}
    
    CounterSetName     : VFP Port Total Inbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Total Inbound Network Traffic counter set tracks the 
                         total inbound network traffic of a port.
    Paths              : {\VFP Port Total Inbound Network Traffic(*)\Total Inbound GFT Bytes, \VFP Port Total Inbound 
                         Network Traffic(*)\Total Inbound GFT Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Retry Awaiting Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Offloaded UDP Packets...}
    PathsWithInstances : {\VFP Port Total Inbound Network Traffic(*)\Total Inbound GFT Bytes, \VFP Port Total Inbound 
                         Network Traffic(*)\Total Inbound GFT Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Retry Awaiting Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Offloaded UDP Packets...}
    Counter            : {\VFP Port Total Inbound Network Traffic(*)\Total Inbound GFT Bytes, \VFP Port Total Inbound 
                         Network Traffic(*)\Total Inbound GFT Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Retry Awaiting Packets, \VFP Port Total Inbound Network Traffic(*)\Total 
                         Inbound GFT Exception UF Offloaded UDP Packets...}
    
    CounterSetName     : VFP QoS Queue Average Inbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) QoS Queue Average Inbound Network Traffic counter set tracks 
                         the average network traffic through an inbound QoS Queue.
    Paths              : {\VFP QoS Queue Average Inbound Network Traffic(*)\Average Inbound Packets Resumed, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Resumed, \VFP QoS Queue Average 
                         Inbound Network Traffic(*)\Average Inbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Queued due to Insufficient 
                         Tokens...}
    PathsWithInstances : {\VFP QoS Queue Average Inbound Network Traffic(*)\Average Inbound Packets Resumed, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Resumed, \VFP QoS Queue Average 
                         Inbound Network Traffic(*)\Average Inbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Queued due to Insufficient 
                         Tokens...}
    Counter            : {\VFP QoS Queue Average Inbound Network Traffic(*)\Average Inbound Packets Resumed, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Resumed, \VFP QoS Queue Average 
                         Inbound Network Traffic(*)\Average Inbound Packets Queued due to Insufficient Tokens, \VFP QoS 
                         Queue Average Inbound Network Traffic(*)\Average Inbound Bytes Queued due to Insufficient 
                         Tokens...}
    
    CounterSetName     : VFP QoS Queue Total Inbound Network Traffic
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) QoS Queue Total Inbound Network Traffic counter set tracks 
                         the total network traffic through an inbound QoS Queue.
    Paths              : {\VFP QoS Queue Total Inbound Network Traffic(*)\Total Inbound Packets Dropped, \VFP QoS Queue 
                         Total Inbound Network Traffic(*)\Total Inbound Bytes Dropped}
    PathsWithInstances : {\VFP QoS Queue Total Inbound Network Traffic(*)\Total Inbound Packets Dropped, \VFP QoS Queue 
                         Total Inbound Network Traffic(*)\Total Inbound Bytes Dropped}
    Counter            : {\VFP QoS Queue Total Inbound Network Traffic(*)\Total Inbound Packets Dropped, \VFP QoS Queue 
                         Total Inbound Network Traffic(*)\Total Inbound Bytes Dropped}
    
    CounterSetName     : VFP Port Total Inbound Dropped Network Packets
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Virtual Filtering Platform (VFP) Port Total Inbound Dropped Network Packets counter set 
                         tracks the total inbound dropped network packets of a port.
    Paths              : {\VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Copy 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Exception 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped MAC Spoofing 
                         Packets...}
    PathsWithInstances : {\VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Copy 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Exception 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped MAC Spoofing 
                         Packets...}
    Counter            : {\VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped Monitoring Ping 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Copy 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped GFT Exception 
                         Packets, \VFP Port Total Inbound Dropped Network Packets(*)\Total Inbound Dropped MAC Spoofing 
                         Packets...}
    
    CounterSetName     : Hyper-V Virtual IDE Controller (Emulated)
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a virtual machine's IDE Controller.
    Paths              : {\Hyper-V Virtual IDE Controller (Emulated)(*)\Write Bytes/sec, \Hyper-V Virtual IDE Controller 
                         (Emulated)(*)\Read Bytes/sec, \Hyper-V Virtual IDE Controller (Emulated)(*)\Written Sectors/sec, 
                         \Hyper-V Virtual IDE Controller (Emulated)(*)\Read Sectors/sec}
    PathsWithInstances : {\Hyper-V Virtual IDE Controller (Emulated)(*)\Write Bytes/sec, \Hyper-V Virtual IDE Controller 
                         (Emulated)(*)\Read Bytes/sec, \Hyper-V Virtual IDE Controller (Emulated)(*)\Written Sectors/sec, 
                         \Hyper-V Virtual IDE Controller (Emulated)(*)\Read Sectors/sec}
    Counter            : {\Hyper-V Virtual IDE Controller (Emulated)(*)\Write Bytes/sec, \Hyper-V Virtual IDE Controller 
                         (Emulated)(*)\Read Bytes/sec, \Hyper-V Virtual IDE Controller (Emulated)(*)\Written Sectors/sec, 
                         \Hyper-V Virtual IDE Controller (Emulated)(*)\Read Sectors/sec}
    
    CounterSetName     : Hyper-V Virtual Machine Bus Pipes
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Per-Pipe statistics, for performance debugging.
    Paths              : {\Hyper-V Virtual Machine Bus Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Pipes(*)\Writes/sec, \Hyper-V Virtual 
                         Machine Bus Pipes(*)\Reads/sec}
    PathsWithInstances : {\Hyper-V Virtual Machine Bus Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Pipes(*)\Writes/sec, \Hyper-V Virtual 
                         Machine Bus Pipes(*)\Reads/sec}
    Counter            : {\Hyper-V Virtual Machine Bus Pipes(*)\Bytes Written/sec, \Hyper-V Virtual Machine Bus 
                         Pipes(*)\Bytes Read/sec, \Hyper-V Virtual Machine Bus Pipes(*)\Writes/sec, \Hyper-V Virtual 
                         Machine Bus Pipes(*)\Reads/sec}
    
    CounterSetName     : Hyper-V VM Worker Process Memory Manager
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a worker process memory manager.
    Paths              : {\Hyper-V VM Worker Process Memory Manager(*)\Memory Block Count}
    PathsWithInstances : {\Hyper-V VM Worker Process Memory Manager(*)\Memory Block Count}
    Counter            : {\Hyper-V VM Worker Process Memory Manager(*)\Memory Block Count}
    
    CounterSetName     : Hyper-V VM Remoting
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Performance counters for a virtual machine's remoting system.
    Paths              : {\Hyper-V VM Remoting(*)\Updated Pixels/sec, \Hyper-V VM Remoting(*)\Connected Clients}
    PathsWithInstances : {\Hyper-V VM Remoting(*)\Updated Pixels/sec, \Hyper-V VM Remoting(*)\Connected Clients}
    Counter            : {\Hyper-V VM Remoting(*)\Updated Pixels/sec, \Hyper-V VM Remoting(*)\Connected Clients}
    
    CounterSetName     : Storage Management WSP Spaces Runtime
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Storage Management WSP Spaces Runtime performance object consists of counters that show 
                         information about Storage Management WSP Spaces provider runtimes.
    Paths              : {\Storage Management WSP Spaces Runtime(*)\Runtime Count Infinite, \Storage Management WSP Spaces 
                         Runtime(*)\Runtime Count 1min, \Storage Management WSP Spaces Runtime(*)\Runtime Count 16s, 
                         \Storage Management WSP Spaces Runtime(*)\Runtime Count 4s...}
    PathsWithInstances : {\Storage Management WSP Spaces Runtime(*)\Runtime Count Infinite, \Storage Management WSP Spaces 
                         Runtime(*)\Runtime Count 1min, \Storage Management WSP Spaces Runtime(*)\Runtime Count 16s, 
                         \Storage Management WSP Spaces Runtime(*)\Runtime Count 4s...}
    Counter            : {\Storage Management WSP Spaces Runtime(*)\Runtime Count Infinite, \Storage Management WSP Spaces 
                         Runtime(*)\Runtime Count 1min, \Storage Management WSP Spaces Runtime(*)\Runtime Count 16s, 
                         \Storage Management WSP Spaces Runtime(*)\Runtime Count 4s...}
    
    CounterSetName     : ReFS
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Information on the ReFS file system performance counters.
    Paths              : {\ReFS(*)\Delete Queue entries, \ReFS(*)\Dirty table list entries, \ReFS(*)\Dirty metadata pages, 
                         \ReFS(*)\Container Move Failure Count...}
    PathsWithInstances : {\ReFS(*)\Delete Queue entries, \ReFS(*)\Dirty table list entries, \ReFS(*)\Dirty metadata pages, 
                         \ReFS(*)\Container Move Failure Count...}
    Counter            : {\ReFS(*)\Delete Queue entries, \ReFS(*)\Dirty table list entries, \ReFS(*)\Dirty metadata pages, 
                         \ReFS(*)\Container Move Failure Count...}
    
    CounterSetName     : Storage Spaces Drt
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Storage Spaces Drt performance object consists of counters that show information about 
                         Storage Spaces dirty region tracking.
    Paths              : {\Storage Spaces Drt(*)\Limit, \Storage Spaces Drt(*)\Synchronizing Bytes, \Storage Spaces 
                         Drt(*)\Synchronizing Count, \Storage Spaces Drt(*)\Flushed Bytes...}
    PathsWithInstances : {\Storage Spaces Drt(*)\Limit, \Storage Spaces Drt(*)\Synchronizing Bytes, \Storage Spaces 
                         Drt(*)\Synchronizing Count, \Storage Spaces Drt(*)\Flushed Bytes...}
    Counter            : {\Storage Spaces Drt(*)\Limit, \Storage Spaces Drt(*)\Synchronizing Bytes, \Storage Spaces 
                         Drt(*)\Synchronizing Count, \Storage Spaces Drt(*)\Flushed Bytes...}
    
    CounterSetName     : Storage Spaces Tier
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Storage Spaces Tier performance object consists of counters that show information about 
                         Storage Spaces tiers.
    Paths              : {\Storage Spaces Tier(*)\Tier Transfer Bytes (Average), \Storage Spaces Tier(*)\Tier Transfer 
                         Bytes/sec, \Storage Spaces Tier(*)\Tier Transfers (Average), \Storage Spaces Tier(*)\Tier 
                         Transfer Latency...}
    PathsWithInstances : {\Storage Spaces Tier(*)\Tier Transfer Bytes (Average), \Storage Spaces Tier(*)\Tier Transfer 
                         Bytes/sec, \Storage Spaces Tier(*)\Tier Transfers (Average), \Storage Spaces Tier(*)\Tier 
                         Transfer Latency...}
    Counter            : {\Storage Spaces Tier(*)\Tier Transfer Bytes (Average), \Storage Spaces Tier(*)\Tier Transfer 
                         Bytes/sec, \Storage Spaces Tier(*)\Tier Transfers (Average), \Storage Spaces Tier(*)\Tier 
                         Transfer Latency...}
    
    CounterSetName     : Storage Spaces Write Cache
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Storage Spaces Write Cache performance object consists of counters that show information 
                         about Storage Spaces write caches.
    Paths              : {\Storage Spaces Write Cache(*)\Write Cache (Overlap) %, \Storage Spaces Write Cache(*)\Write 
                         Cache (Overlap) Bytes/sec, \Storage Spaces Write Cache(*)\Write Cache (Untrimmed) %, \Storage 
                         Spaces Write Cache(*)\Write Cache (Untrimmed) Bytes/sec...}
    PathsWithInstances : {\Storage Spaces Write Cache(*)\Write Cache (Overlap) %, \Storage Spaces Write Cache(*)\Write 
                         Cache (Overlap) Bytes/sec, \Storage Spaces Write Cache(*)\Write Cache (Untrimmed) %, \Storage 
                         Spaces Write Cache(*)\Write Cache (Untrimmed) Bytes/sec...}
    Counter            : {\Storage Spaces Write Cache(*)\Write Cache (Overlap) %, \Storage Spaces Write Cache(*)\Write 
                         Cache (Overlap) Bytes/sec, \Storage Spaces Write Cache(*)\Write Cache (Untrimmed) %, \Storage 
                         Spaces Write Cache(*)\Write Cache (Untrimmed) Bytes/sec...}
    
    CounterSetName     : Storage Spaces Virtual Disk
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Storage Spaces Virtual Disk performance object consists of counters that show information 
                         about Storage Spaces virtual disks.
    Paths              : {\Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration Total Bytes, \Storage Spaces Virtual 
                         Disk(*)\Virtual Disk Regeneration Skipped Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk 
                         Regeneration Outstanding Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration 
                         Processed Bytes...}
    PathsWithInstances : {\Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration Total Bytes, \Storage Spaces Virtual 
                         Disk(*)\Virtual Disk Regeneration Skipped Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk 
                         Regeneration Outstanding Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration 
                         Processed Bytes...}
    Counter            : {\Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration Total Bytes, \Storage Spaces Virtual 
                         Disk(*)\Virtual Disk Regeneration Skipped Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk 
                         Regeneration Outstanding Bytes, \Storage Spaces Virtual Disk(*)\Virtual Disk Regeneration 
                         Processed Bytes...}
    
    CounterSetName     : BitLocker
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : BitLocker Drive Encryption performance counters
    Paths              : {\BitLocker(*)\Write Subrequests/sec, \BitLocker(*)\Write Requests/sec, \BitLocker(*)\Read 
                         Subrequests/sec, \BitLocker(*)\Read Requests/sec...}
    PathsWithInstances : {\BitLocker(C:)\Write Subrequests/sec, \BitLocker(HarddiskVolume1)\Write Subrequests/sec, 
                         \BitLocker(HarddiskVolume2)\Write Subrequests/sec, \BitLocker(HarddiskVolume5)\Write 
                         Subrequests/sec...}
    Counter            : {\BitLocker(*)\Write Subrequests/sec, \BitLocker(*)\Write Requests/sec, \BitLocker(*)\Read 
                         Subrequests/sec, \BitLocker(*)\Read Requests/sec...}
    
    CounterSetName     : Microsoft Winsock BSP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Global performance counters for Microsoft Winsock Base Service Provider
    Paths              : {\Microsoft Winsock BSP\Rejected Connections, \Microsoft Winsock BSP\Rejected Connections/sec, 
                         \Microsoft Winsock BSP\Dropped Datagrams, \Microsoft Winsock BSP\Dropped Datagrams/sec}
    PathsWithInstances : {}
    Counter            : {\Microsoft Winsock BSP\Rejected Connections, \Microsoft Winsock BSP\Rejected Connections/sec, 
                         \Microsoft Winsock BSP\Dropped Datagrams, \Microsoft Winsock BSP\Dropped Datagrams/sec}
    
    CounterSetName     : Hyper-V Hypervisor Virtual Processor
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Information on virtual processors
    Paths              : {\Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulation Cost, 
                         \Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulated/sec, \Hyper-V 
                         Hypervisor Virtual Processor(*)\% Remote Run Time, \Hyper-V Hypervisor Virtual Processor(*)\Total 
                         Intercepts Cost...}
    PathsWithInstances : {\Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulation Cost, 
                         \Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulated/sec, \Hyper-V 
                         Hypervisor Virtual Processor(*)\% Remote Run Time, \Hyper-V Hypervisor Virtual Processor(*)\Total 
                         Intercepts Cost...}
    Counter            : {\Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulation Cost, 
                         \Hyper-V Hypervisor Virtual Processor(*)\Total Virtualization Instructions Emulated/sec, \Hyper-V 
                         Hypervisor Virtual Processor(*)\% Remote Run Time, \Hyper-V Hypervisor Virtual Processor(*)\Total 
                         Intercepts Cost...}
    
    CounterSetName     : Hyper-V Hypervisor Partition
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Information on virtual machines
    Paths              : {\Hyper-V Hypervisor Partition(*)\Pages Recombined/sec, \Hyper-V Hypervisor Partition(*)\Pages 
                         Shattered/sec, \Hyper-V Hypervisor Partition(*)\Nested TLB Trimmed Pages/sec, \Hyper-V Hypervisor 
                         Partition(*)\Nested TLB Free List Size...}
    PathsWithInstances : {\Hyper-V Hypervisor Partition(*)\Pages Recombined/sec, \Hyper-V Hypervisor Partition(*)\Pages 
                         Shattered/sec, \Hyper-V Hypervisor Partition(*)\Nested TLB Trimmed Pages/sec, \Hyper-V Hypervisor 
                         Partition(*)\Nested TLB Free List Size...}
    Counter            : {\Hyper-V Hypervisor Partition(*)\Pages Recombined/sec, \Hyper-V Hypervisor Partition(*)\Pages 
                         Shattered/sec, \Hyper-V Hypervisor Partition(*)\Nested TLB Trimmed Pages/sec, \Hyper-V Hypervisor 
                         Partition(*)\Nested TLB Free List Size...}
    
    CounterSetName     : Fax Service
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Fax Service Counter Set
    Paths              : {\Fax Service\Bytes received, \Fax Service\Received faxes, \Fax Service\Received pages, \Fax 
                         Service\Minutes receiving...}
    PathsWithInstances : {}
    Counter            : {\Fax Service\Bytes received, \Fax Service\Received faxes, \Fax Service\Received pages, \Fax 
                         Service\Minutes receiving...}
    
    CounterSetName     : Authorization Manager Applications
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The set of Counters for Authorization Manager application object
    Paths              : {\Authorization Manager Applications(*)\Number of Scopes loaded in memory, \Authorization Manager 
                         Applications(*)\Total number of scopes}
    PathsWithInstances : {\Authorization Manager Applications(*)\Number of Scopes loaded in memory, \Authorization Manager 
                         Applications(*)\Total number of scopes}
    Counter            : {\Authorization Manager Applications(*)\Number of Scopes loaded in memory, \Authorization Manager 
                         Applications(*)\Total number of scopes}
    
    CounterSetName     : Peer Name Resolution Protocol
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Peer Name Resolution Protocol (PNRP) performance object consists of counters that monitor 
                         each of available PNRP clouds.  These counters monitor the local PNRP cache and measure the rates 
                         at which PNRP protocol messages are sent and received.
    Paths              : {\Peer Name Resolution Protocol(*)\Unknown message type received, \Peer Name Resolution 
                         Protocol(*)\Lookup received per second, \Peer Name Resolution Protocol(*)\Lookup sent per second, 
                         \Peer Name Resolution Protocol(*)\Ack received per second...}
    PathsWithInstances : {\Peer Name Resolution Protocol(*)\Unknown message type received, \Peer Name Resolution 
                         Protocol(*)\Lookup received per second, \Peer Name Resolution Protocol(*)\Lookup sent per second, 
                         \Peer Name Resolution Protocol(*)\Ack received per second...}
    Counter            : {\Peer Name Resolution Protocol(*)\Unknown message type received, \Peer Name Resolution 
                         Protocol(*)\Lookup received per second, \Peer Name Resolution Protocol(*)\Lookup sent per second, 
                         \Peer Name Resolution Protocol(*)\Ack received per second...}
    
    CounterSetName     : WFPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WFPv6 is the set of Windows Filtering Platform counters that apply to traffic and connections 
                         over Internet Protocol version 6.
    Paths              : {\WFPv6\Allowed Classifies/sec, \WFPv6\Active Outbound Connections, \WFPv6\Active Inbound 
                         Connections, \WFPv6\Outbound Connections...}
    PathsWithInstances : {}
    Counter            : {\WFPv6\Allowed Classifies/sec, \WFPv6\Active Outbound Connections, \WFPv6\Active Inbound 
                         Connections, \WFPv6\Outbound Connections...}
    
    CounterSetName     : WFP Reauthorization
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WFP Reauthorization is the set of Windows Filtering Platform (WFP) counters that pertain to 
                         connection reauthorizations.
    Paths              : {\WFP Reauthorization\Reason: ProxyHandleChanged, \WFP Reauthorization\Reason: 
                         PreclassifyRemotePortDimensionPolicyChanged, \WFP Reauthorization\Reason: 
                         PreclassifyLocalPortDimensionPolicyChanged, \WFP Reauthorization\Reason: 
                         PreclassifyRemoteAddressDimensionPolicyChanged...}
    PathsWithInstances : {}
    Counter            : {\WFP Reauthorization\Reason: ProxyHandleChanged, \WFP Reauthorization\Reason: 
                         PreclassifyRemotePortDimensionPolicyChanged, \WFP Reauthorization\Reason: 
                         PreclassifyLocalPortDimensionPolicyChanged, \WFP Reauthorization\Reason: 
                         PreclassifyRemoteAddressDimensionPolicyChanged...}
    
    CounterSetName     : WFP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WFP is the set of Windows Filtering Platform counters that do not apply to any specific Internet 
                         Protocol version.
    Paths              : {\WFP\Provider Count}
    PathsWithInstances : {}
    Counter            : {\WFP\Provider Count}
    
    CounterSetName     : IPsec Driver
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec Driver is the set of Internet Protocol security (IPsec) driver counters that apply to 
                         traffic over Internet Protocol version 4 and Internet Protocol version 6.
    Paths              : {\IPsec Driver\Inbound Packets Dropped/sec, \IPsec Driver\Total Inbound Packets Dropped, \IPsec 
                         Driver\Inbound Packets Received/sec, \IPsec Driver\Total Inbound Packets Received...}
    PathsWithInstances : {}
    Counter            : {\IPsec Driver\Inbound Packets Dropped/sec, \IPsec Driver\Total Inbound Packets Dropped, \IPsec 
                         Driver\Inbound Packets Received/sec, \IPsec Driver\Total Inbound Packets Received...}
    
    CounterSetName     : WFP Classify
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WFP Classify is the set of Windows Filtering Platform (WFP) counters that pertain to classifation 
                         calls.
    Paths              : {\WFP Classify\FWPM_LAYER_KM_AUTHORIZATION, \WFP Classify\FWPM_LAYER_RPC_PROXY_IF, \WFP 
                         Classify\FWPM_LAYER_RPC_PROXY_CONN, \WFP Classify\FWPM_LAYER_RPC_EP_ADD...}
    PathsWithInstances : {}
    Counter            : {\WFP Classify\FWPM_LAYER_KM_AUTHORIZATION, \WFP Classify\FWPM_LAYER_RPC_PROXY_IF, \WFP 
                         Classify\FWPM_LAYER_RPC_PROXY_CONN, \WFP Classify\FWPM_LAYER_RPC_EP_ADD...}
    
    CounterSetName     : IPsec IKEv1 IPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec IKEv1 IPv6 is the set of Internet Protocol security (IPsec) Internet Key Exchange version 1 
                         (IKEv1) counters that apply to traffic and connections over Internet Protocol version 6.
    Paths              : {\IPsec IKEv1 IPv6\Failed Quick Mode Negotiations/sec, \IPsec IKEv1 IPv6\Failed Quick Mode 
                         Negotiations, \IPsec IKEv1 IPv6\Successful Quick Mode Negotiations/sec, \IPsec IKEv1 
                         IPv6\Successful Quick Mode Negotiations...}
    PathsWithInstances : {}
    Counter            : {\IPsec IKEv1 IPv6\Failed Quick Mode Negotiations/sec, \IPsec IKEv1 IPv6\Failed Quick Mode 
                         Negotiations, \IPsec IKEv1 IPv6\Successful Quick Mode Negotiations/sec, \IPsec IKEv1 
                         IPv6\Successful Quick Mode Negotiations...}
    
    CounterSetName     : IPsec IKEv1 IPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec IKEv1 IPv4 is the set of Internet Protocol security (IPsec) Internet Key Exchange version 1 
                         (IKEv1) counters that apply to traffic and connections over Internet Protocol version 4.
    Paths              : {\IPsec IKEv1 IPv4\Failed Quick Mode Negotiations/sec, \IPsec IKEv1 IPv4\Failed Quick Mode 
                         Negotiations, \IPsec IKEv1 IPv4\Successful Quick Mode Negotiations/sec, \IPsec IKEv1 
                         IPv4\Successful Quick Mode Negotiations...}
    PathsWithInstances : {}
    Counter            : {\IPsec IKEv1 IPv4\Failed Quick Mode Negotiations/sec, \IPsec IKEv1 IPv4\Failed Quick Mode 
                         Negotiations, \IPsec IKEv1 IPv4\Successful Quick Mode Negotiations/sec, \IPsec IKEv1 
                         IPv4\Successful Quick Mode Negotiations...}
    
    CounterSetName     : WFPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WFPv4 is the set of Windows Filtering Platform counters that apply to traffic and connections 
                         over Internet Protocol version 4.
    Paths              : {\WFPv4\Allowed Classifies/sec, \WFPv4\Active Outbound Connections, \WFPv4\Active Inbound 
                         Connections, \WFPv4\Outbound Connections...}
    PathsWithInstances : {}
    Counter            : {\WFPv4\Allowed Classifies/sec, \WFPv4\Active Outbound Connections, \WFPv4\Active Inbound 
                         Connections, \WFPv4\Outbound Connections...}
    
    CounterSetName     : IPsec IKEv2 IPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec IKEv2 IPv6 is the set of Internet Protocol security (IPsec) Internet Key Exchange version 2 
                         (IKEv2) counters that apply to traffic and connections over Internet Protocol version 6.
    Paths              : {\IPsec IKEv2 IPv6\Failed Quick Mode Negotiations/sec, \IPsec IKEv2 IPv6\Failed Quick Mode 
                         Negotiations, \IPsec IKEv2 IPv6\Successful Quick Mode Negotiations/sec, \IPsec IKEv2 
                         IPv6\Successful Quick Mode Negotiations...}
    PathsWithInstances : {}
    Counter            : {\IPsec IKEv2 IPv6\Failed Quick Mode Negotiations/sec, \IPsec IKEv2 IPv6\Failed Quick Mode 
                         Negotiations, \IPsec IKEv2 IPv6\Successful Quick Mode Negotiations/sec, \IPsec IKEv2 
                         IPv6\Successful Quick Mode Negotiations...}
    
    CounterSetName     : IPsec AuthIP IPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec AuthIP IPv6 is the set of Internet Protocol security (IPsec) Authenticated IP (AuthIP) 
                         counters that apply to traffic and connections over Internet Protocol version 6.
    Paths              : {\IPsec AuthIP IPv6\Extended Mode SAs That Used Impersonation, \IPsec AuthIP IPv6\Failed Extended 
                         Mode Negotiations/sec, \IPsec AuthIP IPv6\Failed Extended Mode Negotiations, \IPsec AuthIP 
                         IPv6\Successful Extended Mode Negotiations/sec...}
    PathsWithInstances : {}
    Counter            : {\IPsec AuthIP IPv6\Extended Mode SAs That Used Impersonation, \IPsec AuthIP IPv6\Failed Extended 
                         Mode Negotiations/sec, \IPsec AuthIP IPv6\Failed Extended Mode Negotiations, \IPsec AuthIP 
                         IPv6\Successful Extended Mode Negotiations/sec...}
    
    CounterSetName     : IPsec Connections
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec Connections is the set of Internet Protocol security (IPsec) counters that apply to IPsec 
                         encapsulated connections.
    Paths              : {\IPsec Connections\Number of failed authentications, \IPsec Connections\Total Bytes Out since 
                         start, \IPsec Connections\Total Bytes In since start, \IPsec Connections\Max number of 
                         connections since boot...}
    PathsWithInstances : {}
    Counter            : {\IPsec Connections\Number of failed authentications, \IPsec Connections\Total Bytes Out since 
                         start, \IPsec Connections\Total Bytes In since start, \IPsec Connections\Max number of 
                         connections since boot...}
    
    CounterSetName     : IPsec AuthIP IPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec AuthIP IPv4 is the set of Internet Protocol security (IPsec) Authenticated IP (AuthIP) 
                         counters that apply to traffic and connections over Internet Protocol version 4.
    Paths              : {\IPsec AuthIP IPv4\Extended Mode SAs That Used Impersonation, \IPsec AuthIP IPv4\Failed Extended 
                         Mode Negotiations/sec, \IPsec AuthIP IPv4\Failed Extended Mode Negotiations, \IPsec AuthIP 
                         IPv4\Successful Extended Mode Negotiations/sec...}
    PathsWithInstances : {}
    Counter            : {\IPsec AuthIP IPv4\Extended Mode SAs That Used Impersonation, \IPsec AuthIP IPv4\Failed Extended 
                         Mode Negotiations/sec, \IPsec AuthIP IPv4\Failed Extended Mode Negotiations, \IPsec AuthIP 
                         IPv4\Successful Extended Mode Negotiations/sec...}
    
    CounterSetName     : IPsec IKEv2 IPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : IPsec IKEv2 IPv4 is the set of Internet Protocol security (IPsec) Internet Key Exchange version 2 
                         (IKEv2) counters that apply to traffic and connections over Internet Protocol version 4.
    Paths              : {\IPsec IKEv2 IPv4\Failed Quick Mode Negotiations/sec, \IPsec IKEv2 IPv4\Failed Quick Mode 
                         Negotiations, \IPsec IKEv2 IPv4\Successful Quick Mode Negotiations/sec, \IPsec IKEv2 
                         IPv4\Successful Quick Mode Negotiations...}
    PathsWithInstances : {}
    Counter            : {\IPsec IKEv2 IPv4\Failed Quick Mode Negotiations/sec, \IPsec IKEv2 IPv4\Failed Quick Mode 
                         Negotiations, \IPsec IKEv2 IPv4\Successful Quick Mode Negotiations/sec, \IPsec IKEv2 
                         IPv4\Successful Quick Mode Negotiations...}
    
    CounterSetName     : Generic IKEv1, AuthIP, and IKEv2
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Generic IKEv1, AuthIP, and IKEv2 is the set of Internet Protocol security (IPsec) Internet Key 
                         Exchange Version 1 (IKEv1), Authenticated IP (AuthIP), and Internet Key Exchange Version 2 
                         (IKEv2) counters that are generic and do not apply to a specific Internet Protocol version.
    Paths              : {\Generic IKEv1, AuthIP, and IKEv2\IKEv2 Quick Mode Negotiation Time, \Generic IKEv1, AuthIP, and 
                         IKEv2\IKEv2 Main Mode Negotiation Time, \Generic IKEv1, AuthIP, and IKEv2\Failed 
                         Negotiations/sec, \Generic IKEv1, AuthIP, and IKEv2\Failed Negotiations...}
    PathsWithInstances : {}
    Counter            : {\Generic IKEv1, AuthIP, and IKEv2\IKEv2 Quick Mode Negotiation Time, \Generic IKEv1, AuthIP, and 
                         IKEv2\IKEv2 Main Mode Negotiation Time, \Generic IKEv1, AuthIP, and IKEv2\Failed 
                         Negotiations/sec, \Generic IKEv1, AuthIP, and IKEv2\Failed Negotiations...}
    
    CounterSetName     : Pacer Pipe
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Pacer Pipe performance counter set consists of pipe statistics from the packet scheduler.
    Paths              : {\Pacer Pipe(*)\Nonconforming packets transmitted/sec, \Pacer Pipe(*)\Nonconforming packets 
                         transmitted, \Pacer Pipe(*)\Average packets in netcard, \Pacer Pipe(*)\Max packets in netcard...}
    PathsWithInstances : {\Pacer Pipe(Microsoft Network Adapter Multiplexor Driver)\Nonconforming packets transmitted/sec, 
                         \Pacer Pipe(Microsoft Wi-Fi Direct Virtual Adapter)\Nonconforming packets transmitted/sec, \Pacer 
                         Pipe(Microsoft Wi-Fi Direct Virtual Adapter -2)\Nonconforming packets transmitted/sec, \Pacer 
                         Pipe(Realtek PCIe GbE Family Controller)\Nonconforming packets transmitted/sec...}
    Counter            : {\Pacer Pipe(*)\Nonconforming packets transmitted/sec, \Pacer Pipe(*)\Nonconforming packets 
                         transmitted, \Pacer Pipe(*)\Average packets in netcard, \Pacer Pipe(*)\Max packets in netcard...}
    
    CounterSetName     : Pacer Flow
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Pacer Flow performance counter set consists of flow statistics from the packet scheduler.
    Paths              : {\Pacer Flow(*)\Nonconforming packets transmitted/sec, \Pacer Flow(*)\Nonconforming packets 
                         transmitted, \Pacer Flow(*)\Average packets in netcard, \Pacer Flow(*)\Maximum packets in 
                         netcard...}
    PathsWithInstances : {\Pacer Flow(*)\Nonconforming packets transmitted/sec, \Pacer Flow(*)\Nonconforming packets 
                         transmitted, \Pacer Flow(*)\Average packets in netcard, \Pacer Flow(*)\Maximum packets in 
                         netcard...}
    Counter            : {\Pacer Flow(*)\Nonconforming packets transmitted/sec, \Pacer Flow(*)\Nonconforming packets 
                         transmitted, \Pacer Flow(*)\Average packets in netcard, \Pacer Flow(*)\Maximum packets in 
                         netcard...}
    
    CounterSetName     : Hyper-V Hypervisor Root Virtual Processor
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Information on virtual processors
    Paths              : {\Hyper-V Hypervisor Root Virtual Processor(*)\Total Virtualization Instructions Emulation Cost, 
                         \Hyper-V Hypervisor Root Virtual Processor(*)\Total Virtualization Instructions Emulated/sec, 
                         \Hyper-V Hypervisor Root Virtual Processor(*)\% Remote Run Time, \Hyper-V Hypervisor Root Virtual 
                         Processor(*)\Total Intercepts Cost...}
    PathsWithInstances : {\Hyper-V Hypervisor Root Virtual Processor(Root VP 0)\Total Virtualization Instructions 
                         Emulation Cost, \Hyper-V Hypervisor Root Virtual Processor(Root VP 1)\Total Virtualization 
                         Instructions Emulation Cost, \Hyper-V Hypervisor Root Virtual Processor(Root VP 10)\Total 
                         Virtualization Instructions Emulation Cost, \Hyper-V Hypervisor Root Virtual Processor(Root VP 
                         11)\Total Virtualization Instructions Emulation Cost...}
    Counter            : {\Hyper-V Hypervisor Root Virtual Processor(*)\Total Virtualization Instructions Emulation Cost, 
                         \Hyper-V Hypervisor Root Virtual Processor(*)\Total Virtualization Instructions Emulated/sec, 
                         \Hyper-V Hypervisor Root Virtual Processor(*)\% Remote Run Time, \Hyper-V Hypervisor Root Virtual 
                         Processor(*)\Total Intercepts Cost...}
    
    CounterSetName     : Hyper-V Hypervisor Root Partition
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Information on virtual machines
    Paths              : {\Hyper-V Hypervisor Root Partition(*)\Pages Recombined/sec, \Hyper-V Hypervisor Root 
                         Partition(*)\Pages Shattered/sec, \Hyper-V Hypervisor Root Partition(*)\Nested TLB Trimmed 
                         Pages/sec, \Hyper-V Hypervisor Root Partition(*)\Nested TLB Free List Size...}
    PathsWithInstances : {\Hyper-V Hypervisor Root Partition(Root)\Pages Recombined/sec, \Hyper-V Hypervisor Root 
                         Partition(_Total)\Pages Recombined/sec, \Hyper-V Hypervisor Root Partition(Root)\Pages 
                         Shattered/sec, \Hyper-V Hypervisor Root Partition(_Total)\Pages Shattered/sec...}
    Counter            : {\Hyper-V Hypervisor Root Partition(*)\Pages Recombined/sec, \Hyper-V Hypervisor Root 
                         Partition(*)\Pages Shattered/sec, \Hyper-V Hypervisor Root Partition(*)\Nested TLB Trimmed 
                         Pages/sec, \Hyper-V Hypervisor Root Partition(*)\Nested TLB Free List Size...}
    
    CounterSetName     : Hyper-V Hypervisor
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Information on the hypervisor.
    Paths              : {\Hyper-V Hypervisor\HypervisorStartupCost, \Hyper-V Hypervisor\Platform Idle Transitions, 
                         \Hyper-V Hypervisor\Modern Standby Entries, \Hyper-V Hypervisor\Monitored Notifications...}
    PathsWithInstances : {}
    Counter            : {\Hyper-V Hypervisor\HypervisorStartupCost, \Hyper-V Hypervisor\Platform Idle Transitions, 
                         \Hyper-V Hypervisor\Modern Standby Entries, \Hyper-V Hypervisor\Monitored Notifications...}
    
    CounterSetName     : Hyper-V Hypervisor Logical Processor
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Information on logical processors.
    Paths              : {\Hyper-V Hypervisor Logical Processor(*)\Total Interrupts/sec, \Hyper-V Hypervisor Logical 
                         Processor(*)\% Idle Time, \Hyper-V Hypervisor Logical Processor(*)\% Guest Run Time, \Hyper-V 
                         Hypervisor Logical Processor(*)\% Hypervisor Run Time...}
    PathsWithInstances : {\Hyper-V Hypervisor Logical Processor(Hv LP 0)\Total Interrupts/sec, \Hyper-V Hypervisor Logical 
                         Processor(Hv LP 1)\Total Interrupts/sec, \Hyper-V Hypervisor Logical Processor(Hv LP 10)\Total 
                         Interrupts/sec, \Hyper-V Hypervisor Logical Processor(Hv LP 11)\Total Interrupts/sec...}
    Counter            : {\Hyper-V Hypervisor Logical Processor(*)\Total Interrupts/sec, \Hyper-V Hypervisor Logical 
                         Processor(*)\% Idle Time, \Hyper-V Hypervisor Logical Processor(*)\% Guest Run Time, \Hyper-V 
                         Hypervisor Logical Processor(*)\% Hypervisor Run Time...}
    
    CounterSetName     : Terminal Services
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Terminal Services Summary Information
    Paths              : {\Terminal Services\Total Sessions, \Terminal Services\Inactive Sessions, \Terminal 
                         Services\Active Sessions}
    PathsWithInstances : {}
    Counter            : {\Terminal Services\Total Sessions, \Terminal Services\Inactive Sessions, \Terminal 
                         Services\Active Sessions}
    
    CounterSetName     : WorkflowServiceHost 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : WorkflowServiceHost performance counters for workflow service
    Paths              : {\WorkflowServiceHost 4.0.0.0(*)\Average Workflow Persist Time, \WorkflowServiceHost 
                         4.0.0.0(*)\Average Workflow Load Time, \WorkflowServiceHost 4.0.0.0(*)\Workflows Idle Per Second, 
                         \WorkflowServiceHost 4.0.0.0(*)\Workflows Suspended Per Second...}
    PathsWithInstances : {\WorkflowServiceHost 4.0.0.0(*)\Average Workflow Persist Time, \WorkflowServiceHost 
                         4.0.0.0(*)\Average Workflow Load Time, \WorkflowServiceHost 4.0.0.0(*)\Workflows Idle Per Second, 
                         \WorkflowServiceHost 4.0.0.0(*)\Workflows Suspended Per Second...}
    Counter            : {\WorkflowServiceHost 4.0.0.0(*)\Average Workflow Persist Time, \WorkflowServiceHost 
                         4.0.0.0(*)\Average Workflow Load Time, \WorkflowServiceHost 4.0.0.0(*)\Workflows Idle Per Second, 
                         \WorkflowServiceHost 4.0.0.0(*)\Workflows Suspended Per Second...}
    
    CounterSetName     : {7d937e49-cfd5-438f-af4f-b3047d90a5c3}
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : 
    Paths              : {}
    PathsWithInstances : {}
    Counter            : {}
    
    CounterSetName     : {f3e82f6e-9df4-425d-a5d5-3a9832005b16}
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : 
    Paths              : {}
    PathsWithInstances : {}
    Counter            : {}
    
    CounterSetName     : .NET Memory Cache 4.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : System.Runtime.Caching.MemoryCache Performance Counters
    Paths              : {\.NET Memory Cache 4.0(*)\Cache Hits, \.NET Memory Cache 4.0(*)\Cache Misses, \.NET Memory Cache 
                         4.0(*)\Cache Hit Ratio, \.NET Memory Cache 4.0(*)\Cache Trims...}
    PathsWithInstances : {\.NET Memory Cache 4.0(*)\Cache Hits, \.NET Memory Cache 4.0(*)\Cache Misses, \.NET Memory Cache 
                         4.0(*)\Cache Hit Ratio, \.NET Memory Cache 4.0(*)\Cache Trims...}
    Counter            : {\.NET Memory Cache 4.0(*)\Cache Hits, \.NET Memory Cache 4.0(*)\Cache Misses, \.NET Memory Cache 
                         4.0(*)\Cache Hit Ratio, \.NET Memory Cache 4.0(*)\Cache Trims...}
    
    CounterSetName     : MSDTC Bridge 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : MSDTC Bridge 4.0.0.0 performance counters
    Paths              : {\MSDTC Bridge 4.0.0.0\Message send failures/sec, \MSDTC Bridge 4.0.0.0\Prepare retry count/sec, 
                         \MSDTC Bridge 4.0.0.0\Commit retry count/sec, \MSDTC Bridge 4.0.0.0\Prepared retry count/sec...}
    PathsWithInstances : {}
    Counter            : {\MSDTC Bridge 4.0.0.0\Message send failures/sec, \MSDTC Bridge 4.0.0.0\Prepare retry count/sec, 
                         \MSDTC Bridge 4.0.0.0\Commit retry count/sec, \MSDTC Bridge 4.0.0.0\Prepared retry count/sec...}
    
    CounterSetName     : SMSvcHost 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : SMSvcHost 4.0.0.0 performance counters
    Paths              : {\SMSvcHost 4.0.0.0\Protocol Failures over net.tcp, \SMSvcHost 4.0.0.0\Protocol Failures over 
                         net.pipe, \SMSvcHost 4.0.0.0\Dispatch Failures over net.tcp, \SMSvcHost 4.0.0.0\Dispatch Failures 
                         over net.pipe...}
    PathsWithInstances : {}
    Counter            : {\SMSvcHost 4.0.0.0\Protocol Failures over net.tcp, \SMSvcHost 4.0.0.0\Protocol Failures over 
                         net.pipe, \SMSvcHost 4.0.0.0\Dispatch Failures over net.tcp, \SMSvcHost 4.0.0.0\Dispatch Failures 
                         over net.pipe...}
    
    CounterSetName     : WF (System.Workflow) 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Windows Workflow Foundation Performance Counters
    Paths              : {\WF (System.Workflow) 4.0.0.0(*)\Workflows Created, \WF (System.Workflow) 4.0.0.0(*)\Workflows 
                         Created/sec, \WF (System.Workflow) 4.0.0.0(*)\Workflows Unloaded, \WF (System.Workflow) 
                         4.0.0.0(*)\Workflows Unloaded/sec...}
    PathsWithInstances : {\WF (System.Workflow) 4.0.0.0(*)\Workflows Created, \WF (System.Workflow) 4.0.0.0(*)\Workflows 
                         Created/sec, \WF (System.Workflow) 4.0.0.0(*)\Workflows Unloaded, \WF (System.Workflow) 
                         4.0.0.0(*)\Workflows Unloaded/sec...}
    Counter            : {\WF (System.Workflow) 4.0.0.0(*)\Workflows Created, \WF (System.Workflow) 4.0.0.0(*)\Workflows 
                         Created/sec, \WF (System.Workflow) 4.0.0.0(*)\Workflows Unloaded, \WF (System.Workflow) 
                         4.0.0.0(*)\Workflows Unloaded/sec...}
    
    CounterSetName     : .NET CLR Data
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : .Net CLR Data
    Paths              : {\.NET CLR Data\SqlClient: Current # pooled and nonpooled connections, \.NET CLR Data\SqlClient: 
                         Current # pooled connections, \.NET CLR Data\SqlClient: Current # connection pools, \.NET CLR 
                         Data\SqlClient: Peak # pooled connections...}
    PathsWithInstances : {}
    Counter            : {\.NET CLR Data\SqlClient: Current # pooled and nonpooled connections, \.NET CLR Data\SqlClient: 
                         Current # pooled connections, \.NET CLR Data\SqlClient: Current # connection pools, \.NET CLR 
                         Data\SqlClient: Peak # pooled connections...}
    
    CounterSetName     : .NET CLR Networking
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Help not available.
    Paths              : {\.NET CLR Networking\Connections Established, \.NET CLR Networking\Bytes Received, \.NET CLR 
                         Networking\Bytes Sent, \.NET CLR Networking\Datagrams Received...}
    PathsWithInstances : {}
    Counter            : {\.NET CLR Networking\Connections Established, \.NET CLR Networking\Bytes Received, \.NET CLR 
                         Networking\Bytes Sent, \.NET CLR Networking\Datagrams Received...}
    
    CounterSetName     : .NET CLR Memory
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Counters for CLR Garbage Collected heap.
    Paths              : {\.NET CLR Memory(*)\# Gen 0 Collections, \.NET CLR Memory(*)\# Gen 1 Collections, \.NET CLR 
                         Memory(*)\# Gen 2 Collections, \.NET CLR Memory(*)\Promoted Memory from Gen 0...}
    PathsWithInstances : {\.NET CLR Memory(_Global_)\# Gen 0 Collections, \.NET CLR Memory(powershell)\# Gen 0 
                         Collections, \.NET CLR Memory(powershell)\# Gen 0 Collections, \.NET CLR Memory(_Global_)\# Gen 1 
                         Collections...}
    Counter            : {\.NET CLR Memory(*)\# Gen 0 Collections, \.NET CLR Memory(*)\# Gen 1 Collections, \.NET CLR 
                         Memory(*)\# Gen 2 Collections, \.NET CLR Memory(*)\Promoted Memory from Gen 0...}
    
    CounterSetName     : .NET CLR Interop
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Stats for CLR interop.
    Paths              : {\.NET CLR Interop(*)\# of CCWs, \.NET CLR Interop(*)\# of Stubs, \.NET CLR Interop(*)\# of 
                         marshalling, \.NET CLR Interop(*)\# of TLB imports / sec...}
    PathsWithInstances : {\.NET CLR Interop(_Global_)\# of CCWs, \.NET CLR Interop(powershell)\# of CCWs, \.NET CLR 
                         Interop(powershell)\# of CCWs, \.NET CLR Interop(_Global_)\# of Stubs...}
    Counter            : {\.NET CLR Interop(*)\# of CCWs, \.NET CLR Interop(*)\# of Stubs, \.NET CLR Interop(*)\# of 
                         marshalling, \.NET CLR Interop(*)\# of TLB imports / sec...}
    
    CounterSetName     : .NET CLR Exceptions
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Runtime statistics on CLR exception handling.
    Paths              : {\.NET CLR Exceptions(*)\# of Exceps Thrown, \.NET CLR Exceptions(*)\# of Exceps Thrown / sec, 
                         \.NET CLR Exceptions(*)\# of Filters / sec, \.NET CLR Exceptions(*)\# of Finallys / sec...}
    PathsWithInstances : {\.NET CLR Exceptions(_Global_)\# of Exceps Thrown, \.NET CLR Exceptions(powershell)\# of Exceps 
                         Thrown, \.NET CLR Exceptions(powershell)\# of Exceps Thrown, \.NET CLR Exceptions(_Global_)\# of 
                         Exceps Thrown / sec...}
    Counter            : {\.NET CLR Exceptions(*)\# of Exceps Thrown, \.NET CLR Exceptions(*)\# of Exceps Thrown / sec, 
                         \.NET CLR Exceptions(*)\# of Filters / sec, \.NET CLR Exceptions(*)\# of Finallys / sec...}
    
    CounterSetName     : .NET CLR Loading
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Statistics for CLR Class Loader.
    Paths              : {\.NET CLR Loading(*)\Current Classes Loaded, \.NET CLR Loading(*)\Total Classes Loaded, \.NET 
                         CLR Loading(*)\Rate of Classes Loaded, \.NET CLR Loading(*)\Current appdomains...}
    PathsWithInstances : {\.NET CLR Loading(_Global_)\Current Classes Loaded, \.NET CLR Loading(powershell)\Current 
                         Classes Loaded, \.NET CLR Loading(powershell)\Current Classes Loaded, \.NET CLR 
                         Loading(_Global_)\Total Classes Loaded...}
    Counter            : {\.NET CLR Loading(*)\Current Classes Loaded, \.NET CLR Loading(*)\Total Classes Loaded, \.NET 
                         CLR Loading(*)\Rate of Classes Loaded, \.NET CLR Loading(*)\Current appdomains...}
    
    CounterSetName     : .NET CLR LocksAndThreads
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Stats for CLR Locks and Threads.
    Paths              : {\.NET CLR LocksAndThreads(*)\Total # of Contentions, \.NET CLR LocksAndThreads(*)\Contention 
                         Rate / sec, \.NET CLR LocksAndThreads(*)\Current Queue Length, \.NET CLR LocksAndThreads(*)\Queue 
                         Length Peak...}
    PathsWithInstances : {\.NET CLR LocksAndThreads(_Global_)\Total # of Contentions, \.NET CLR 
                         LocksAndThreads(powershell)\Total # of Contentions, \.NET CLR LocksAndThreads(powershell)\Total # 
                         of Contentions, \.NET CLR LocksAndThreads(_Global_)\Contention Rate / sec...}
    Counter            : {\.NET CLR LocksAndThreads(*)\Total # of Contentions, \.NET CLR LocksAndThreads(*)\Contention 
                         Rate / sec, \.NET CLR LocksAndThreads(*)\Current Queue Length, \.NET CLR LocksAndThreads(*)\Queue 
                         Length Peak...}
    
    CounterSetName     : .NET CLR Jit
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Stats for CLR Jit.
    Paths              : {\.NET CLR Jit(*)\# of Methods Jitted, \.NET CLR Jit(*)\# of IL Bytes Jitted, \.NET CLR 
                         Jit(*)\Total # of IL Bytes Jitted, \.NET CLR Jit(*)\IL Bytes Jitted / sec...}
    PathsWithInstances : {\.NET CLR Jit(_Global_)\# of Methods Jitted, \.NET CLR Jit(powershell)\# of Methods Jitted, 
                         \.NET CLR Jit(powershell)\# of Methods Jitted, \.NET CLR Jit(_Global_)\# of IL Bytes Jitted...}
    Counter            : {\.NET CLR Jit(*)\# of Methods Jitted, \.NET CLR Jit(*)\# of IL Bytes Jitted, \.NET CLR 
                         Jit(*)\Total # of IL Bytes Jitted, \.NET CLR Jit(*)\IL Bytes Jitted / sec...}
    
    CounterSetName     : .NET CLR Remoting
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Stats for CLR Remoting.
    Paths              : {\.NET CLR Remoting(*)\Remote Calls/sec, \.NET CLR Remoting(*)\Total Remote Calls, \.NET CLR 
                         Remoting(*)\Channels, \.NET CLR Remoting(*)\Context Proxies...}
    PathsWithInstances : {\.NET CLR Remoting(_Global_)\Remote Calls/sec, \.NET CLR Remoting(powershell)\Remote Calls/sec, 
                         \.NET CLR Remoting(powershell)\Remote Calls/sec, \.NET CLR Remoting(_Global_)\Total Remote 
                         Calls...}
    Counter            : {\.NET CLR Remoting(*)\Remote Calls/sec, \.NET CLR Remoting(*)\Total Remote Calls, \.NET CLR 
                         Remoting(*)\Channels, \.NET CLR Remoting(*)\Context Proxies...}
    
    CounterSetName     : .NET CLR Security
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Stats for CLR Security.
    Paths              : {\.NET CLR Security(*)\Total Runtime Checks, \.NET CLR Security(*)\% Time Sig. Authenticating, 
                         \.NET CLR Security(*)\# Link Time Checks, \.NET CLR Security(*)\% Time in RT checks...}
    PathsWithInstances : {\.NET CLR Security(_Global_)\Total Runtime Checks, \.NET CLR Security(powershell)\Total Runtime 
                         Checks, \.NET CLR Security(powershell)\Total Runtime Checks, \.NET CLR Security(_Global_)\% Time 
                         Sig. Authenticating...}
    Counter            : {\.NET CLR Security(*)\Total Runtime Checks, \.NET CLR Security(*)\% Time Sig. Authenticating, 
                         \.NET CLR Security(*)\# Link Time Checks, \.NET CLR Security(*)\% Time in RT checks...}
    
    CounterSetName     : BITS Net Utilization
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : BITS Per Job Network Utilization
    Paths              : {\BITS Net Utilization\Remote Server Speed (Bits/Sec), \BITS Net Utilization\Netcard Speed 
                         (Bits/Sec), \BITS Net Utilization\Percent Netcard Free, \BITS Net Utilization\IGD Speed 
                         (Bits/Sec)...}
    PathsWithInstances : {}
    Counter            : {\BITS Net Utilization\Remote Server Speed (Bits/Sec), \BITS Net Utilization\Netcard Speed 
                         (Bits/Sec), \BITS Net Utilization\Percent Netcard Free, \BITS Net Utilization\IGD Speed 
                         (Bits/Sec)...}
    
    CounterSetName     : Database
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Database provides performance statistics for each process using the ESE high performance embedded 
                         database management system.
    Paths              : {\Database(*)\Defragmentation Tasks, \Database(*)\Defragmentation Tasks Pending, 
                         \Database(*)\Sessions In Use, \Database(*)\Sessions % Used...}
    PathsWithInstances : {\Database(svchost)\Defragmentation Tasks, \Database(svchost)\Defragmentation Tasks Pending, 
                         \Database(svchost)\Sessions In Use, \Database(svchost)\Sessions % Used...}
    Counter            : {\Database(*)\Defragmentation Tasks, \Database(*)\Defragmentation Tasks Pending, 
                         \Database(*)\Sessions In Use, \Database(*)\Sessions % Used...}
    
    CounterSetName     : Database ==> TableClasses
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Statistics for the ESE high performance embedded database management system by Table Class.
    Paths              : {\Database ==> TableClasses(*)\Database Cache Size (MB), \Database ==> TableClasses(*)\Database 
                         Cache Size, \Database ==> TableClasses(*)\Database Cache Misses/sec, \Database ==> 
                         TableClasses(*)\Database Cache % Hit...}
    PathsWithInstances : {\Database ==> TableClasses(svchost/_Unknown)\Database Cache Size (MB), \Database ==> 
                         TableClasses(svchost/_Catalog (Space))\Database Cache Size (MB), \Database ==> 
                         TableClasses(svchost/_Catalog (Indices))\Database Cache Size (MB), \Database ==> 
                         TableClasses(svchost/_Catalog (LV))\Database Cache Size (MB)...}
    Counter            : {\Database ==> TableClasses(*)\Database Cache Size (MB), \Database ==> TableClasses(*)\Database 
                         Cache Size, \Database ==> TableClasses(*)\Database Cache Misses/sec, \Database ==> 
                         TableClasses(*)\Database Cache % Hit...}
    
    CounterSetName     : Database ==> Instances
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Instances in this process
    Paths              : {\Database ==> Instances(*)\Defragmentation Tasks, \Database ==> Instances(*)\Defragmentation 
                         Tasks Pending, \Database ==> Instances(*)\Sessions In Use, \Database ==> Instances(*)\Sessions % 
                         Used...}
    PathsWithInstances : {\Database ==> Instances(svchost/_Total)\Defragmentation Tasks, \Database ==> 
                         Instances(svchost/QmgrDatabaseInstance)\Defragmentation Tasks, \Database ==> 
                         Instances(svchost/_Total)\Defragmentation Tasks Pending, \Database ==> 
                         Instances(svchost/QmgrDatabaseInstance)\Defragmentation Tasks Pending...}
    Counter            : {\Database ==> Instances(*)\Defragmentation Tasks, \Database ==> Instances(*)\Defragmentation 
                         Tasks Pending, \Database ==> Instances(*)\Sessions In Use, \Database ==> Instances(*)\Sessions % 
                         Used...}
    
    CounterSetName     : Database ==> Databases
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Databases attached to this process
    Paths              : {\Database ==> Databases(*)\Database Cache Size (MB), \Database ==> Databases(*)\I/O Database 
                         Reads/sec, \Database ==> Databases(*)\I/O Database Reads Average Latency, \Database ==> 
                         Databases(*)\I/O Database Writes/sec...}
    PathsWithInstances : {\Database ==> Databases(svchost/_Unused0)\Database Cache Size (MB), \Database ==> 
                         Databases(svchost/qmgr.db)\Database Cache Size (MB), \Database ==> 
                         Databases(svchost/_Unused0)\I/O Database Reads/sec, \Database ==> Databases(svchost/qmgr.db)\I/O 
                         Database Reads/sec...}
    Counter            : {\Database ==> Databases(*)\Database Cache Size (MB), \Database ==> Databases(*)\I/O Database 
                         Reads/sec, \Database ==> Databases(*)\I/O Database Reads Average Latency, \Database ==> 
                         Databases(*)\I/O Database Writes/sec...}
    
    CounterSetName     : Security System-Wide Statistics
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : These counters track authentication performance on a per second basis.
    Paths              : {\Security System-Wide Statistics\NTLM Authentications, \Security System-Wide Statistics\Kerberos 
                         Authentications, \Security System-Wide Statistics\KDC AS Requests, \Security System-Wide 
                         Statistics\KDC TGS Requests...}
    PathsWithInstances : {}
    Counter            : {\Security System-Wide Statistics\NTLM Authentications, \Security System-Wide Statistics\Kerberos 
                         Authentications, \Security System-Wide Statistics\KDC AS Requests, \Security System-Wide 
                         Statistics\KDC TGS Requests...}
    
    CounterSetName     : Security Per-Process Statistics
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : These counters track the number of security resources and handles used per process.
    Paths              : {\Security Per-Process Statistics(*)\Credential Handles, \Security Per-Process 
                         Statistics(*)\Context Handles}
    PathsWithInstances : {\Security Per-Process Statistics(992)\Credential Handles, \Security Per-Process 
                         Statistics(1356)\Credential Handles, \Security Per-Process Statistics(2232)\Credential Handles, 
                         \Security Per-Process Statistics(1844)\Credential Handles...}
    Counter            : {\Security Per-Process Statistics(*)\Credential Handles, \Security Per-Process 
                         Statistics(*)\Context Handles}
    
    CounterSetName     : User Input Delay per Process
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Process Level Statistics for User Input Delay
    Paths              : {\User Input Delay per Process(*)\Max Input Delay}
    PathsWithInstances : {\User Input Delay per Process(1:7008 <ttpmenu.exe>)\Max Input Delay, \User Input Delay per 
                         Process(1:7020 <RuntimeBroker.exe>)\Max Input Delay, \User Input Delay per Process(0:1048 
                         <LsaIso.exe>)\Max Input Delay, \User Input Delay per Process(0:1056 <lsass.exe>)\Max Input 
                         Delay...}
    Counter            : {\User Input Delay per Process(*)\Max Input Delay}
    
    CounterSetName     : User Input Delay per Session
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Session Level Statistics for User Input Delay
    Paths              : {\User Input Delay per Session(*)\Max Input Delay}
    PathsWithInstances : {\User Input Delay per Session(0)\Max Input Delay, \User Input Delay per Session(1)\Max Input 
                         Delay, \User Input Delay per Session(Max)\Max Input Delay, \User Input Delay per 
                         Session(Average)\Max Input Delay}
    Counter            : {\User Input Delay per Session(*)\Max Input Delay}
    
    CounterSetName     : Distributed Transaction Coordinator
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Microsoft Distributed Transaction Coordinator performance counters
    Paths              : {\Distributed Transaction Coordinator\Active Transactions, \Distributed Transaction 
                         Coordinator\Committed Transactions, \Distributed Transaction Coordinator\Aborted Transactions, 
                         \Distributed Transaction Coordinator\In Doubt Transactions...}
    PathsWithInstances : {}
    Counter            : {\Distributed Transaction Coordinator\Active Transactions, \Distributed Transaction 
                         Coordinator\Committed Transactions, \Distributed Transaction Coordinator\Aborted Transactions, 
                         \Distributed Transaction Coordinator\In Doubt Transactions...}
    
    CounterSetName     : .NET CLR Networking 4.0.0.0
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters for classes in the System.Net namespace.
    Paths              : {\.NET CLR Networking 4.0.0.0(*)\Connections Established, \.NET CLR Networking 4.0.0.0(*)\Bytes 
                         Received, \.NET CLR Networking 4.0.0.0(*)\Bytes Sent, \.NET CLR Networking 4.0.0.0(*)\Datagrams 
                         Received...}
    PathsWithInstances : {\.NET CLR Networking 4.0.0.0(*)\Connections Established, \.NET CLR Networking 4.0.0.0(*)\Bytes 
                         Received, \.NET CLR Networking 4.0.0.0(*)\Bytes Sent, \.NET CLR Networking 4.0.0.0(*)\Datagrams 
                         Received...}
    Counter            : {\.NET CLR Networking 4.0.0.0(*)\Connections Established, \.NET CLR Networking 4.0.0.0(*)\Bytes 
                         Received, \.NET CLR Networking 4.0.0.0(*)\Bytes Sent, \.NET CLR Networking 4.0.0.0(*)\Datagrams 
                         Received...}
    
    CounterSetName     : LogicalDisk
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Logical Disk performance object consists of counters that monitor logical partitions of a 
                         hard or fixed disk drives.  Performance Monitor identifies logical disks by their a drive letter, 
                         such as C.
    Paths              : {\LogicalDisk(*)\% Free Space, \LogicalDisk(*)\Free Megabytes, \LogicalDisk(*)\Current Disk Queue 
                         Length, \LogicalDisk(*)\% Disk Time...}
    PathsWithInstances : {\LogicalDisk(HarddiskVolume1)\% Free Space, \LogicalDisk(C:)\% Free Space, 
                         \LogicalDisk(HarddiskVolume5)\% Free Space, \LogicalDisk(_Total)\% Free Space...}
    Counter            : {\LogicalDisk(*)\% Free Space, \LogicalDisk(*)\Free Megabytes, \LogicalDisk(*)\Current Disk Queue 
                         Length, \LogicalDisk(*)\% Disk Time...}
    
    CounterSetName     : PhysicalDisk
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Physical Disk performance object consists of counters that monitor hard or fixed disk drive 
                         on a computer.  Disks are used to store file, program, and paging data and are read to retrieve 
                         these items, and written to record changes to them.  The values of physical disk counters are 
                         sums of the values of the logical disks (or partitions) into which they are divided.
    Paths              : {\PhysicalDisk(*)\Current Disk Queue Length, \PhysicalDisk(*)\% Disk Time, \PhysicalDisk(*)\Avg. 
                         Disk Queue Length, \PhysicalDisk(*)\% Disk Read Time...}
    PathsWithInstances : {\PhysicalDisk(1)\Current Disk Queue Length, \PhysicalDisk(0 C:)\Current Disk Queue Length, 
                         \PhysicalDisk(_Total)\Current Disk Queue Length, \PhysicalDisk(1)\% Disk Time...}
    Counter            : {\PhysicalDisk(*)\Current Disk Queue Length, \PhysicalDisk(*)\% Disk Time, \PhysicalDisk(*)\Avg. 
                         Disk Queue Length, \PhysicalDisk(*)\% Disk Read Time...}
    
    CounterSetName     : Server
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Server performance object consists of counters that measure communication between the  local 
                         computer and the network.
    Paths              : {\Server\Bytes Total/sec, \Server\Bytes Received/sec, \Server\Bytes Transmitted/sec, 
                         \Server\Sessions Timed Out...}
    PathsWithInstances : {}
    Counter            : {\Server\Bytes Total/sec, \Server\Bytes Received/sec, \Server\Bytes Transmitted/sec, 
                         \Server\Sessions Timed Out...}
    
    CounterSetName     : Server Work Queues
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Server Work Queues performance object consists of counters that monitor the length of the 
                         queues and objects in the queues.
    Paths              : {\Server Work Queues(*)\Queue Length, \Server Work Queues(*)\Active Threads, \Server Work 
                         Queues(*)\Available Threads, \Server Work Queues(*)\Available Work Items...}
    PathsWithInstances : {\Server Work Queues(0)\Queue Length, \Server Work Queues(1)\Queue Length, \Server Work 
                         Queues(2)\Queue Length, \Server Work Queues(3)\Queue Length...}
    Counter            : {\Server Work Queues(*)\Queue Length, \Server Work Queues(*)\Active Threads, \Server Work 
                         Queues(*)\Available Threads, \Server Work Queues(*)\Available Work Items...}
    
    CounterSetName     : Redirector
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Redirector performance object consists of counter that monitor network connections 
                         originating at the local computer.
    Paths              : {\Redirector\Bytes Total/sec, \Redirector\File Data Operations/sec, \Redirector\Packets/sec, 
                         \Redirector\Bytes Received/sec...}
    PathsWithInstances : {}
    Counter            : {\Redirector\Bytes Total/sec, \Redirector\File Data Operations/sec, \Redirector\Packets/sec, 
                         \Redirector\Bytes Received/sec...}
    
    CounterSetName     : Browser
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Browser performance object consists of counters that measure the rates of announcements, 
                         enumerations, and other Browser transmissions.
    Paths              : {\Browser\Announcements Server/sec, \Browser\Announcements Domain/sec, \Browser\Announcements 
                         Total/sec, \Browser\Election Packets/sec...}
    PathsWithInstances : {}
    Counter            : {\Browser\Announcements Server/sec, \Browser\Announcements Domain/sec, \Browser\Announcements 
                         Total/sec, \Browser\Election Packets/sec...}
    
    CounterSetName     : Cache
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Cache performance object  consists of counters that monitor the file system cache, an area of 
                         physical memory that stores recently used data as long as possible to permit access to the data 
                         without having to read from the disk.  Because applications typically use the cache, the cache is 
                         monitored as an indicator of application I/O operations.  When memory is plentiful, the cache can 
                         grow, but when memory is scarce, the cache can become too small to be effective.
    Paths              : {\Cache\Data Maps/sec, \Cache\Sync Data Maps/sec, \Cache\Async Data Maps/sec, \Cache\Data Map 
                         Hits %...}
    PathsWithInstances : {}
    Counter            : {\Cache\Data Maps/sec, \Cache\Sync Data Maps/sec, \Cache\Async Data Maps/sec, \Cache\Data Map 
                         Hits %...}
    
    CounterSetName     : Processor
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Processor performance object consists of counters that measure aspects of processor activity. 
                         The processor is the part of the computer that performs arithmetic and logical computations, 
                         initiates operations on peripherals, and runs the threads of processes.  A computer can have 
                         multiple processors.  The processor object represents each processor as an instance of the object.
    Paths              : {\Processor(*)\% Processor Time, \Processor(*)\% User Time, \Processor(*)\% Privileged Time, 
                         \Processor(*)\Interrupts/sec...}
    PathsWithInstances : {\Processor(0)\% Processor Time, \Processor(1)\% Processor Time, \Processor(2)\% Processor Time, 
                         \Processor(3)\% Processor Time...}
    Counter            : {\Processor(*)\% Processor Time, \Processor(*)\% User Time, \Processor(*)\% Privileged Time, 
                         \Processor(*)\Interrupts/sec...}
    
    CounterSetName     : Memory
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Memory performance object  consists of counters that describe the behavior of physical and 
                         virtual memory on the computer.  Physical memory is the amount of random access memory on the 
                         computer.  Virtual memory consists of the space in physical memory and on disk.  Many of the 
                         memory counters monitor paging, which is the movement of pages of code and data between disk and 
                         physical memory.  Excessive paging, a symptom of a memory shortage, can cause delays which 
                         interfere with all system processes.
    Paths              : {\Memory\Page Faults/sec, \Memory\Available Bytes, \Memory\Committed Bytes, \Memory\Commit 
                         Limit...}
    PathsWithInstances : {}
    Counter            : {\Memory\Page Faults/sec, \Memory\Available Bytes, \Memory\Committed Bytes, \Memory\Commit 
                         Limit...}
    
    CounterSetName     : Objects
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Object performance object consists of counters that monitor  logical objects in the system, 
                         such as processes, threads, mutexes, and semaphores.  This information can be used to detect the 
                         unnecessary consumption of computer resources.  Each object requires memory to store basic 
                         information about the object.
    Paths              : {\Objects\Processes, \Objects\Threads, \Objects\Events, \Objects\Semaphores...}
    PathsWithInstances : {}
    Counter            : {\Objects\Processes, \Objects\Threads, \Objects\Events, \Objects\Semaphores...}
    
    CounterSetName     : Paging File
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Paging File performance object consists of counters that monitor the paging file(s) on the 
                         computer.  The paging file is a reserved space on disk that backs up committed physical memory on 
                         the computer.
    Paths              : {\Paging File(*)\% Usage, \Paging File(*)\% Usage Peak}
    PathsWithInstances : {\Paging File(\??\C:\pagefile.sys)\% Usage, \Paging File(_Total)\% Usage, \Paging 
                         File(\??\C:\pagefile.sys)\% Usage Peak, \Paging File(_Total)\% Usage Peak}
    Counter            : {\Paging File(*)\% Usage, \Paging File(*)\% Usage Peak}
    
    CounterSetName     : System
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The System performance object consists of counters that apply to more than one instance of a 
                         component processors on the computer.
    Paths              : {\System\File Read Operations/sec, \System\File Write Operations/sec, \System\File Control 
                         Operations/sec, \System\File Read Bytes/sec...}
    PathsWithInstances : {}
    Counter            : {\System\File Read Operations/sec, \System\File Write Operations/sec, \System\File Control 
                         Operations/sec, \System\File Read Bytes/sec...}
    
    CounterSetName     : NUMA Node Memory
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Counters that report approximate memory utilization statistics per node on NUMA systems.
    Paths              : {\NUMA Node Memory(*)\Total MBytes, \NUMA Node Memory(*)\Free & Zero Page List MBytes, \NUMA Node 
                         Memory(*)\Standby List MBytes, \NUMA Node Memory(*)\Available MBytes}
    PathsWithInstances : {\NUMA Node Memory(0)\Total MBytes, \NUMA Node Memory(_Total)\Total MBytes, \NUMA Node 
                         Memory(0)\Free & Zero Page List MBytes, \NUMA Node Memory(_Total)\Free & Zero Page List MBytes...}
    Counter            : {\NUMA Node Memory(*)\Total MBytes, \NUMA Node Memory(*)\Free & Zero Page List MBytes, \NUMA Node 
                         Memory(*)\Standby List MBytes, \NUMA Node Memory(*)\Available MBytes}
    
    CounterSetName     : Process
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Process performance object consists of counters that monitor running application program and 
                         system processes.  All the threads in a process share the same address space and have access to 
                         the same data.
    Paths              : {\Process(*)\% Processor Time, \Process(*)\% User Time, \Process(*)\% Privileged Time, 
                         \Process(*)\Virtual Bytes Peak...}
    PathsWithInstances : {\Process(Idle)\% Processor Time, \Process(System)\% Processor Time, \Process(Secure System)\% 
                         Processor Time, \Process(Registry)\% Processor Time...}
    Counter            : {\Process(*)\% Processor Time, \Process(*)\% User Time, \Process(*)\% Privileged Time, 
                         \Process(*)\Virtual Bytes Peak...}
    
    CounterSetName     : Thread
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Thread performance object consists of counters that measure aspects of thread behavior.  A 
                         thread is the basic object that executes instructions on a processor.  All running processes have 
                         at least one thread.
    Paths              : {\Thread(*)\Context Switches/sec, \Thread(*)\% Processor Time, \Thread(*)\% User Time, 
                         \Thread(*)\% Privileged Time...}
    PathsWithInstances : {\Thread(Idle/0)\Context Switches/sec, \Thread(Idle/1)\Context Switches/sec, 
                         \Thread(Idle/2)\Context Switches/sec, \Thread(Idle/3)\Context Switches/sec...}
    Counter            : {\Thread(*)\Context Switches/sec, \Thread(*)\% Processor Time, \Thread(*)\% User Time, 
                         \Thread(*)\% Privileged Time...}
    
    CounterSetName     : Job Object
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Reports the accounting and processor usage data collected by each active named Job object.
    Paths              : {\Job Object(*)\Current % Processor Time, \Job Object(*)\Current % User Mode Time, \Job 
                         Object(*)\Current % Kernel Mode Time, \Job Object(*)\This Period mSec - Processor...}
    PathsWithInstances : {\Job Object(*)\Current % Processor Time, \Job Object(*)\Current % User Mode Time, \Job 
                         Object(*)\Current % Kernel Mode Time, \Job Object(*)\This Period mSec - Processor...}
    Counter            : {\Job Object(*)\Current % Processor Time, \Job Object(*)\Current % User Mode Time, \Job 
                         Object(*)\Current % Kernel Mode Time, \Job Object(*)\This Period mSec - Processor...}
    
    CounterSetName     : Job Object Details
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : % Job object Details shows detailed performance information about the active processes that make 
                         up a Job object.
    Paths              : {\Job Object Details(*)\% Processor Time, \Job Object Details(*)\% User Time, \Job Object 
                         Details(*)\% Privileged Time, \Job Object Details(*)\Virtual Bytes Peak...}
    PathsWithInstances : {\Job Object Details(*)\% Processor Time, \Job Object Details(*)\% User Time, \Job Object 
                         Details(*)\% Privileged Time, \Job Object Details(*)\Virtual Bytes Peak...}
    Counter            : {\Job Object Details(*)\% Processor Time, \Job Object Details(*)\% User Time, \Job Object 
                         Details(*)\% Privileged Time, \Job Object Details(*)\Virtual Bytes Peak...}
    
    CounterSetName     : ReadyBoost Cache
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Displays performance statistics about ReadyBoost Caches.
    Paths              : {\ReadyBoost Cache\Bytes cached, \ReadyBoost Cache\Cache space used, \ReadyBoost 
                         Cache\Compression Ratio, \ReadyBoost Cache\Total cache size bytes...}
    PathsWithInstances : {}
    Counter            : {\ReadyBoost Cache\Bytes cached, \ReadyBoost Cache\Cache space used, \ReadyBoost 
                         Cache\Compression Ratio, \ReadyBoost Cache\Total cache size bytes...}
    
    CounterSetName     : RAS Port
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The RAS Object Type handles individual ports of the RAS device on your system.
    Paths              : {\RAS Port(*)\Bytes Transmitted, \RAS Port(*)\Bytes Received, \RAS Port(*)\Frames Transmitted, 
                         \RAS Port(*)\Frames Received...}
    PathsWithInstances : {\RAS Port(PPPoE5-0)\Bytes Transmitted, \RAS Port(VPN4-1)\Bytes Transmitted, \RAS 
                         Port(VPN4-0)\Bytes Transmitted, \RAS Port(VPN3-1)\Bytes Transmitted...}
    Counter            : {\RAS Port(*)\Bytes Transmitted, \RAS Port(*)\Bytes Received, \RAS Port(*)\Frames Transmitted, 
                         \RAS Port(*)\Frames Received...}
    
    CounterSetName     : RAS Total
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The RAS Object Type handles all combined ports of the RAS device on your system.
    Paths              : {\RAS Total\Bytes Transmitted, \RAS Total\Bytes Received, \RAS Total\Frames Transmitted, \RAS 
                         Total\Frames Received...}
    PathsWithInstances : {}
    Counter            : {\RAS Total\Bytes Transmitted, \RAS Total\Bytes Received, \RAS Total\Frames Transmitted, \RAS 
                         Total\Frames Received...}
    
    CounterSetName     : .NET Data Provider for Oracle
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters for System.Data.OracleClient
    Paths              : {\.NET Data Provider for Oracle(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         Oracle(*)\HardDisconnectsPerSecond, \.NET Data Provider for Oracle(*)\SoftConnectsPerSecond, 
                         \.NET Data Provider for Oracle(*)\SoftDisconnectsPerSecond...}
    PathsWithInstances : {\.NET Data Provider for Oracle(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         Oracle(*)\HardDisconnectsPerSecond, \.NET Data Provider for Oracle(*)\SoftConnectsPerSecond, 
                         \.NET Data Provider for Oracle(*)\SoftDisconnectsPerSecond...}
    Counter            : {\.NET Data Provider for Oracle(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         Oracle(*)\HardDisconnectsPerSecond, \.NET Data Provider for Oracle(*)\SoftConnectsPerSecond, 
                         \.NET Data Provider for Oracle(*)\SoftDisconnectsPerSecond...}
    
    CounterSetName     : Print Queue
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Displays performance statistics about a Print Queue.
    Paths              : {\Print Queue(*)\Total Jobs Printed, \Print Queue(*)\Bytes Printed/sec, \Print Queue(*)\Total 
                         Pages Printed, \Print Queue(*)\Jobs...}
    PathsWithInstances : {\Print Queue(OneNote for Windows 10)\Total Jobs Printed, \Print Queue(Microsoft XPS Document 
                         Writer)\Total Jobs Printed, \Print Queue(Microsoft Print to PDF)\Total Jobs Printed, \Print 
                         Queue(Fax)\Total Jobs Printed...}
    Counter            : {\Print Queue(*)\Total Jobs Printed, \Print Queue(*)\Bytes Printed/sec, \Print Queue(*)\Total 
                         Pages Printed, \Print Queue(*)\Jobs...}
    
    CounterSetName     : Telephony
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The Telephony System
    Paths              : {\Telephony\Lines, \Telephony\Telephone Devices, \Telephony\Active Lines, \Telephony\Active 
                         Telephones...}
    PathsWithInstances : {}
    Counter            : {\Telephony\Lines, \Telephony\Telephone Devices, \Telephony\Active Lines, \Telephony\Active 
                         Telephones...}
    
    CounterSetName     : NBT Connection
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The NBT Connection performance object consists of counters that measure the rates at which bytes 
                         are sent and received over the NBT connection between the local computer and a remote computer.  
                         The connection is identified by the name of the remote computer.
    Paths              : {\NBT Connection(*)\Bytes Received/sec, \NBT Connection(*)\Bytes Sent/sec, \NBT 
                         Connection(*)\Bytes Total/sec}
    PathsWithInstances : {\NBT Connection(Total)\Bytes Received/sec, \NBT Connection(Total)\Bytes Sent/sec, \NBT 
                         Connection(Total)\Bytes Total/sec}
    Counter            : {\NBT Connection(*)\Bytes Received/sec, \NBT Connection(*)\Bytes Sent/sec, \NBT 
                         Connection(*)\Bytes Total/sec}
    
    CounterSetName     : Network Interface
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Network Interface performance object consists of counters that measure the rates at which 
                         bytes and packets are sent and received over a network connection.  It includes counters that 
                         monitor connection errors.
    Paths              : {\Network Interface(*)\Bytes Total/sec, \Network Interface(*)\Packets/sec, \Network 
                         Interface(*)\Packets Received/sec, \Network Interface(*)\Packets Sent/sec...}
    PathsWithInstances : {\Network Interface(Realtek PCIe GbE Family Controller)\Bytes Total/sec, \Network 
                         Interface(Realtek 8821CE Wireless LAN 802.11ac PCI-E NIC)\Bytes Total/sec, \Network 
                         Interface(Realtek PCIe GbE Family Controller)\Packets/sec, \Network Interface(Realtek 8821CE 
                         Wireless LAN 802.11ac PCI-E NIC)\Packets/sec...}
    Counter            : {\Network Interface(*)\Bytes Total/sec, \Network Interface(*)\Packets/sec, \Network 
                         Interface(*)\Packets Received/sec, \Network Interface(*)\Packets Sent/sec...}
    
    CounterSetName     : Network Adapter
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : The Network Adapter performance object consists of counters that measure the rates at which bytes 
                         and packets are sent and received over a physical or virtual network connection.  It includes 
                         counters that monitor connection errors.
    Paths              : {\Network Adapter(*)\Bytes Total/sec, \Network Adapter(*)\Packets/sec, \Network 
                         Adapter(*)\Packets Received/sec, \Network Adapter(*)\Packets Sent/sec...}
    PathsWithInstances : {\Network Adapter(Microsoft Kernel Debug Network Adapter)\Bytes Total/sec, \Network 
                         Adapter(Realtek PCIe GbE Family Controller)\Bytes Total/sec, \Network Adapter(WAN Miniport 
                         [IP])\Bytes Total/sec, \Network Adapter(WAN Miniport [IPv6])\Bytes Total/sec...}
    Counter            : {\Network Adapter(*)\Bytes Total/sec, \Network Adapter(*)\Packets/sec, \Network 
                         Adapter(*)\Packets Received/sec, \Network Adapter(*)\Packets Sent/sec...}
    
    CounterSetName     : IPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The IP performance object consists of counters that measure the rates at which IP datagrams are 
                         sent and received by using IP protocols.  It also includes counters that monitor IP protocol 
                         errors.
    Paths              : {\IPv4\Datagrams/sec, \IPv4\Datagrams Received/sec, \IPv4\Datagrams Received Header Errors, 
                         \IPv4\Datagrams Received Address Errors...}
    PathsWithInstances : {}
    Counter            : {\IPv4\Datagrams/sec, \IPv4\Datagrams Received/sec, \IPv4\Datagrams Received Header Errors, 
                         \IPv4\Datagrams Received Address Errors...}
    
    CounterSetName     : ICMP
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The ICMP performance object consists of counters that measure the rates at which messages are 
                         sent and received by using ICMP protocols.  It also includes counters that monitor ICMP protocol 
                         errors.
    Paths              : {\ICMP\Messages/sec, \ICMP\Messages Received/sec, \ICMP\Messages Received Errors, \ICMP\Received 
                         Dest. Unreachable...}
    PathsWithInstances : {}
    Counter            : {\ICMP\Messages/sec, \ICMP\Messages Received/sec, \ICMP\Messages Received Errors, \ICMP\Received 
                         Dest. Unreachable...}
    
    CounterSetName     : TCPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The TCP performance object consists of counters that measure the rates at which TCP Segments are 
                         sent and received by using the TCP protocol.  It includes counters that monitor the number of TCP 
                         connections in each TCP connection state.
    Paths              : {\TCPv4\Segments/sec, \TCPv4\Connections Established, \TCPv4\Connections Active, 
                         \TCPv4\Connections Passive...}
    PathsWithInstances : {}
    Counter            : {\TCPv4\Segments/sec, \TCPv4\Connections Established, \TCPv4\Connections Active, 
                         \TCPv4\Connections Passive...}
    
    CounterSetName     : UDPv4
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The UDP performance object consists of counters that measure the rates at which UDP datagrams are 
                         sent and received by using the UDP protocol.  It includes counters that monitor UDP protocol 
                         errors.
    Paths              : {\UDPv4\Datagrams/sec, \UDPv4\Datagrams Received/sec, \UDPv4\Datagrams No Port/sec, 
                         \UDPv4\Datagrams Received Errors...}
    PathsWithInstances : {}
    Counter            : {\UDPv4\Datagrams/sec, \UDPv4\Datagrams Received/sec, \UDPv4\Datagrams No Port/sec, 
                         \UDPv4\Datagrams Received Errors...}
    
    CounterSetName     : IPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The IP performance object consists of counters that measure the rates at which IP datagrams are 
                         sent and received by using IP protocols.  It also includes counters that monitor IP protocol 
                         errors.
    Paths              : {\IPv6\Datagrams/sec, \IPv6\Datagrams Received/sec, \IPv6\Datagrams Received Header Errors, 
                         \IPv6\Datagrams Received Address Errors...}
    PathsWithInstances : {}
    Counter            : {\IPv6\Datagrams/sec, \IPv6\Datagrams Received/sec, \IPv6\Datagrams Received Header Errors, 
                         \IPv6\Datagrams Received Address Errors...}
    
    CounterSetName     : ICMPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The ICMP performance object consists of counters that measure the rates at which messages are 
                         sent and received by using ICMP protocols.  It also includes counters that monitor ICMP protocol 
                         errors.
    Paths              : {\ICMPv6\Messages/sec, \ICMPv6\Messages Received/sec, \ICMPv6\Messages Received Errors, 
                         \ICMPv6\Received Dest. Unreachable...}
    PathsWithInstances : {}
    Counter            : {\ICMPv6\Messages/sec, \ICMPv6\Messages Received/sec, \ICMPv6\Messages Received Errors, 
                         \ICMPv6\Received Dest. Unreachable...}
    
    CounterSetName     : TCPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The TCP performance object consists of counters that measure the rates at which TCP Segments are 
                         sent and received by using the TCP protocol.  It includes counters that monitor the number of TCP 
                         connections in each TCP connection state.
    Paths              : {\TCPv6\Segments/sec, \TCPv6\Connections Established, \TCPv6\Connections Active, 
                         \TCPv6\Connections Passive...}
    PathsWithInstances : {}
    Counter            : {\TCPv6\Segments/sec, \TCPv6\Connections Established, \TCPv6\Connections Active, 
                         \TCPv6\Connections Passive...}
    
    CounterSetName     : UDPv6
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : The UDP performance object consists of counters that measure the rates at which UDP datagrams are 
                         sent and received by using the UDP protocol.  It includes counters that monitor UDP protocol 
                         errors.
    Paths              : {\UDPv6\Datagrams/sec, \UDPv6\Datagrams Received/sec, \UDPv6\Datagrams No Port/sec, 
                         \UDPv6\Datagrams Received Errors...}
    PathsWithInstances : {}
    Counter            : {\UDPv6\Datagrams/sec, \UDPv6\Datagrams Received/sec, \UDPv6\Datagrams No Port/sec, 
                         \UDPv6\Datagrams Received Errors...}
    
    CounterSetName     : Terminal Services Session
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Terminal Services per-session resource monitoring.
    Paths              : {\Terminal Services Session(*)\% Processor Time, \Terminal Services Session(*)\% User Time, 
                         \Terminal Services Session(*)\% Privileged Time, \Terminal Services Session(*)\Virtual Bytes 
                         Peak...}
    PathsWithInstances : {\Terminal Services Session(Services)\% Processor Time, \Terminal Services Session(Console)\% 
                         Processor Time, \Terminal Services Session(Services)\% User Time, \Terminal Services 
                         Session(Console)\% User Time...}
    Counter            : {\Terminal Services Session(*)\% Processor Time, \Terminal Services Session(*)\% User Time, 
                         \Terminal Services Session(*)\% Privileged Time, \Terminal Services Session(*)\Virtual Bytes 
                         Peak...}
    
    CounterSetName     : USB
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : USB I/O Counters
    Paths              : {\USB(*)\Bulk Bytes/Sec, \USB(*)\Isochronous Bytes/Sec, \USB(*)\Interrupt Bytes/Sec, 
                         \USB(*)\Control Data Bytes/Sec...}
    PathsWithInstances : {\USB(*)\Bulk Bytes/Sec, \USB(*)\Isochronous Bytes/Sec, \USB(*)\Interrupt Bytes/Sec, 
                         \USB(*)\Control Data Bytes/Sec...}
    Counter            : {\USB(*)\Bulk Bytes/Sec, \USB(*)\Isochronous Bytes/Sec, \USB(*)\Interrupt Bytes/Sec, 
                         \USB(*)\Control Data Bytes/Sec...}
    
    CounterSetName     : .NET Data Provider for SqlServer
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Counters for System.Data.SqlClient
    Paths              : {\.NET Data Provider for SqlServer(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\HardDisconnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftDisconnectsPerSecond...}
    PathsWithInstances : {\.NET Data Provider for SqlServer(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\HardDisconnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftDisconnectsPerSecond...}
    Counter            : {\.NET Data Provider for SqlServer(*)\HardConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\HardDisconnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftConnectsPerSecond, \.NET Data Provider for 
                         SqlServer(*)\SoftDisconnectsPerSecond...}
    
    CounterSetName     : WMI Objects
    MachineName        : .
    CounterSetType     : SingleInstance
    Description        : Number of WMI High Performance provider returned by WMI Adapter
    Paths              : {\WMI Objects\HiPerf Classes, \WMI Objects\HiPerf Validity}
    PathsWithInstances : {}
    Counter            : {\WMI Objects\HiPerf Classes, \WMI Objects\HiPerf Validity}
    
    CounterSetName     : Processor Performance
    MachineName        : .
    CounterSetType     : MultiInstance
    Description        : Processor Performance Information
    Paths              : {\Processor Performance(*)\Processor Frequency, \Processor Performance(*)\% of Maximum Frequency, 
                         \Processor Performance(*)\Processor State Flags}
    PathsWithInstances : {\Processor Performance(PPM_Processor_0)\Processor Frequency, \Processor 
                         Performance(PPM_Processor_1)\Processor Frequency, \Processor 
                         Performance(PPM_Processor_2)\Processor Frequency, \Processor 
                         Performance(PPM_Processor_3)\Processor Frequency...}
    Counter            : {\Processor Performance(*)\Processor Frequency, \Processor Performance(*)\% of Maximum Frequency, 
                         \Processor Performance(*)\Processor State Flags}
    
    
    
    

    Wish this helpful!