Programaticamente recebendo disco por processo io estatísticas sobre o Windows?
-
08-07-2019 - |
Pergunta
Eu gostaria de exibir uma lista de processos (Windows, C ++) e quanto eles estão lendo e escrevendo a partir do disco em KB / s.
O Monitor de recursos do Windows 7 tem a capacidade para que eu deveria ser capaz de fazer o mesmo.
No entanto tenho incapaz de encontrar uma API de convite relevante ou encontrar nada nos contadores perfmon. Poderia alguém me aponte na direção?
Solução
Você pode chamar GetProcessIoCounters para obter geral dados O por processo de disco I / -. você vai precisar para manter o controle de deltas e convertendo a taxa baseada em tempo-se
Esta API irá dizer-lhe número total de operações de I / O, bem como bytes totais.
Outras dicas
WMI pode fazê-lo, como contanto que você instantâneo-lo periodicamente para obter estatísticas diferenciais por alguma fatia "recente" de tempo. este post apresenta uma solução peculiarmente mista, com VBScript lendo as informações de WMI e Perl continuamente apresentando as informações em um console do Windows. Apesar do mix língua estranha, eu acho que se destaca como um bom exemplo de como chegar ao tipo de informação que você precisa (que deveria ser perfeitamente possível recodificar tudo isso em C ++, é claro).