Monitorear el uso de la red de un proceso?

¿Hay alguna forma en C # o C / C ++ & Win32 para monitorear el uso de la red de cierto proceso (sin que esa aplicación sea construida por usted, obviamente)? Me gustaría monitorear solo 1 proceso durante aproximadamente una hora, luego devolver los bytes utilizados solo por ese proceso, como limewire, por ejemplo.

¿Es posible? Sé que netstat -e en Windows te dirá el total de bytes enviados / recibidos, pero eso es para todos los procesos.

editar: si no puedo devolver solo un uso de procesos, ¿cómo puedo obtener los bytes enviados / recibidos por todo el sistema? como se muestra netstat, excepto que solo quiero los enteros.

p.ej:

 netstat -e

                            Recibido enviado

 Bytes 2111568926 1133174989
 Paquetes de unidifusión 3016480 2711006
 Paquetes no unidifusión 3122 1100
 Descartes 0 0
 Errores 0 0
 Protocolos desconocidos 0

Solo quiero obtener 2 variables, como rec = 2111568926 y enviado = 1133174989

Puede usar WinPcap para esto o escribir su propio controlador de dispositivo. No creo que haya ningún contador perfmon por proceso que pueda aprovechar.

Es posible, pero si no me equivoco, tendrá que crear un controlador de red para filtrar todo el tráfico de red y averiguar qué proceso creó el tráfico.

Microsoft tiene una aplicación gratuita llamada Microsoft Network Monitor 3.2 ( descargar ). De acuerdo con las notas de la versión, también tiene una API para usar.

Network Monitor API: crea tus propias aplicaciones que capturan, analizan y analizan el tráfico de red.

Aquí hay una publicación de blog sobre estas API .

En mi opinión, debería usar esta API (u otra API como WinPcap) para filtrar el tráfico en lugar de escribir su propio controlador de dispositivo.

Hice la misma pregunta en el foro de MSDN y recibí una respuesta. Francamente hablando lo he intentado. Lo intenté pero no tanto). Se sugirió usar ETW. No me di cuenta de cómo consumir los eventos de ETW correctamente. http://social.msdn.microsoft.com/Forums/en-US/perfmon/thread/b82da95a-1c18-49ce-9bfa-e3d79ec40907

Limitador NetLimiter 2

Network Traffic Monitor Puede obtener la última versión de freeware desde aquí