古い「現在のプロセスの Windows パフォーマンス カウンターを取得する方法」の問題を回避しようとしています。基本的に、プロセス オブジェクト インスタンスを列挙してプロセス オブジェクトのリストを取得し、それらのプロセス ID をクエリして自分のプロセス ID と比較します。
これに基づいて、正しいインスタンス インデックスを使用してパフォーマンス カウンター パスを作成し (に似たものを作成する\Process(my_program#3)\<counter>
)、それを使用して、関心のあるカウンターを照会できます。PdhAddCounter呼び出しの前に my_program が終了しますか? 私の理解が正しければ、カウンター パスが別のプロセスを参照しているか、無効になっていることを意味します。プロセスIDのクエリ中に消えることさえあります...
カウンター パスを使用してカウンター ハンドルを取得する前に、カウンター パスが無効になるのを防ぐにはどうすればよいですか?