我知道在Windows机器上,通过C#、Java等托管语言不能侦听、检测和执行与上下文切换相关的操作。但是,我想知道是否有办法使用汇编语言(或其他语言,例如C语言)来实现这一点?如果可以,请提供一个小代码片段,以便我了解如何实现它(因为我对内核编程还比较新手)。
这段代码的设计目的实质上是在标准的Windows UI后台运行,并监听特定进程何时从CPU中进行上下文切换。一旦听到任何一个动作,它将发送一个信号。澄清一下,我只想检测涉及特定进程的上下文切换,而不是任何上下文切换。我最终想要实现的是在特定进程开始使用CPU时通过互联网信号通知另一台机器,以及在它停止使用时也通知。
我首次尝试做到这一点的方法仅涉及计算特定进程的CPU使用百分比,但最终证明这太粗糙了,无法捕捉最微小的计算。例如,我编写了一个测试程序,它只是执行2 + 2的操作并将答案放入一个int中。 CPU使用方法没有检测到这一点。因此,我正在寻找更低级别的方法,这就是我提出这个问题的原因。如果有潜在的替代方案,我会很愿意考虑它们。