Programmatische bekommen pro Prozess Disk io Statistiken unter Windows?
-
08-07-2019 - |
Frage
Ich möchte eine Liste der Prozesse angezeigt werden (Windows, C ++) und wie viel sie lesen und von der Platte in KB / s schreiben.
Der Ressourcenmonitor von Windows 7 hat die Fähigkeit, so soll ich in der Lage sein, das gleiche zu tun.
Allerdings habe ich nicht in der Lage einen entsprechenden API-Aufruf zu finden oder irgendetwas in den perfmon Zählern zu finden. Könnte jemand mich in die Richtung?
Lösung
können Sie rufen GetProcessIoCounters insgesamt zu erhalten Festplatten-E / A-Daten pro Prozess -. Sie Spur von Deltas halten müssen und die Umstellung auf zeitbasierten Rate selbst
Diese API wird Ihnen nun sagen Anzahl von I / O-Operationen sowie insgesamt Bytes.
Andere Tipps
WMI kann es tun, wie solange Sie Schnappschuss es regelmäßig Differentialstatistik für einige „letzten“ Stück Zeit zu bekommen. Dieser Beitrag eine eigentümlich gemischte Lösung präsentiert, mit VBScript die Informationen von WMI zu lesen und Perl ständig die Informationen in einer Windows-Konsole zu präsentieren. Trotz der fremden Sprache Mix, ich glaube, es steht als ein gutes Beispiel dafür, wie bei der Art von Informationen zu erhalten, die Sie benötigen (sollte es durchaus möglich sein, alle davon in C ++ neu zu kodieren, natürlich).