あなたは選ぶことができます。
多くのカウンターは小数として計算されるか、スケーリングされるか、またはその両方であるため、小数部分があります。これはPDH_FMT_DOUBLE
良い選択になります。
一部のカウンタータイプには、小数部がありません。すべてのドキュメントを読んでどれを計算し、「分数になる可能性のあるカウンター」と「分数にならないカウンター」を処理する2つのコードパスを追加することもできますが、これはほとんど利益がないか、無し。
を使用するだけPDH_FMT_DOUBLE
です。
アップデート
ほとんどのカウンターでは、精度はPDHライブラリ内で発生する最終値の計算中にのみ問題になります。ただし、おっしゃるように、バルク合計の精度(ディスクの空き領域など)が問題になる可能性があります。幸い、そうではありません。
ダブルには52ビットの仮数があります。バイト単位で報告されるカウンターの場合、精度を損なうことなく4ペタバイトのスペースがあります。
ただし、ディスクの空き領域はバイトではなくメガバイトで報告されるため、doubleは、精度を損なうことなく、最大272バイトまたは4ゼタバイトを報告できます。そして、 264バイトを超える単一のボリュームを持つことはできないと確信しています。
(プロセスなどの)メモリ使用量はバイト単位で報告されますが、値は常にページサイズの倍数(4096バイト)であるため、報告された値の下位12ビットはゼロです。したがって、doubleは、精度を損なうことなく、最大2 64バイトのメモリサイズ(つまり、64ビットメモリスペース全体)を表すことができます。
精度は問題ではありません。を使用するだけPDH_FMT_DOUBLE
です。