为什么 Win32_ProcessStopTrace-Events 到了,而 Win32_ProcessStartTrace 没有?

Why Win32_ProcessStopTrace-Events arrive, but Win32_ProcessStartTrace doesn't?

考虑以下代码:

using (ManagementEventWatcher watcher = new ManagementEventWatcher("select * from Win32_ProcessStopTrace")) {
    watcher.EventArrived += (object sender, EventArrivedEventArgs e) => {
        Console.WriteLine("{0} stopped", (string)e.NewEvent["ProcessName"]);
    };

    watcher.Start();

    while (!Console.KeyAvailable)
        System.Threading.Thread.Sleep(50);

    watcher.Stop();
}

当我 运行 此代码(作为管理员)时,它会在我关闭任何其他应用程序时立即通知我。

首先:当使用 Win32_ProcessStartTrace 而不是 Win32_ProcessStopTrace 时,我没有收到任何启动进程的通知。这是为什么?

第二:如果有可能监视(每个)启动进程,我可以暂停它们,做其他事情然后继续执行吗?


版本信息:

正如@HansPassant 指出的那样,此查询不适用于 Windows 8.1。这与修复此问题的 security update (KB3045999). Under Known issues there's a link to a hotfix (KB3094199) 有关。安装此修补程序并重新启动我的计算机后,查询终于成功了。