C++ 是否有一种方法来检查“什么”;ntoskrnl“;在Windows 10中调用/执行?

C++ 是否有一种方法来检查“什么”;ntoskrnl“;在Windows 10中调用/执行?,c++,windows,system,cpu-usage,windows-10-desktop,C++,Windows,System,Cpu Usage,Windows 10 Desktop,[编辑]:此问题已通过最近的Windows更新解决 大家好 我有个问题,希望你能帮我解决。下面是: 5分钟后,我的计算机进入离开模式,任务管理器中显示为“System”的“ntoskrnl.exe”开始疯狂地消耗CPU:从正常消耗的0.2-0.3%增加到CPU使用的17-20%。如果只需移动鼠标,“系统”的使用就会恢复正常 “ntoskrnl.exe”位于Windows/System32文件夹中 我到了一个点,我制作了一个C++程序,让计算机保持清醒,这样它就不会进入模式。我把这个程序包括在启动

[编辑]:此问题已通过最近的Windows更新解决

大家好

我有个问题,希望你能帮我解决。下面是:

5分钟后,我的计算机进入离开模式,任务管理器中显示为“System”的“ntoskrnl.exe”开始疯狂地消耗CPU:从正常消耗的0.2-0.3%增加到CPU使用的17-20%。如果只需移动鼠标,“系统”的使用就会恢复正常

“ntoskrnl.exe”位于Windows/System32文件夹中

我到了一个点,我制作了一个C++程序,让计算机保持清醒,这样它就不会进入模式。我把这个程序包括在启动列表中。这是一个补丁,但到目前为止,它的工作

我将包括该代码。简单地解释一下,它设置了一些标志来请求屏幕保持清醒-就像视频应用程序一样,与VLC或YouTube通过浏览器一样,然后通过调用永远等待,只等待更多的等待。 如果有任何方法可以让它在电脑上更轻,请告诉我

using namespace std;

#include <chrono>
#include <thread>
#include <Windows.h>

int main()
{
    chrono::duration<int, milli>sleep_duration(900000);
    SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);
    while (true)
    {
        this_thread::sleep_for(sleep_duration);
    }
}
使用名称空间std;
#包括
#包括
#包括
int main()
{
时间:持续睡眠时间(900000);
SetThreadExecutionState(ES|U连续| ES|U显示| ES|U系统| ES|U AWAYMODE |需要);
while(true)
{
此线程::sleep_for(sleep_duration);
}
}
有没有办法更详细地检查“系统”做什么/调用什么?棘手的是,它必须在没有用户输入的情况下完成,因为这会阻止程序运行

或者,我也会问是否有解决方法,尽管我搜索了很多论坛,只发现当电脑进入“离开模式”时问题才会出现。很明显,它只在窗户上起作用。我在笔记本电脑上发现了一篇类似于2016年的文章

一些帖子还建议关闭“Windows搜索”服务。我这样做,它减少了问题(从40%的CPU使用率降低到18%左右)。我打开了它,因为它没有完全修复它。 是否可能是其他Windows服务导致了这种情况

我注意到这个问题是在今年冬天开始的,但可能是更早开始的

我曾考虑过挖掘恶意软件,但Windows Defender和Malwarebytes都没有发现任何东西,而且在没有互联网接入的情况下问题依然存在,因此我认为情况并非如此

我使用windows笔记本电脑

谢谢你所做的一切


Ntoskrnl.exe不是普通的PE可执行文件,而是内核模式区域。您无法从用户模式对其执行任何操作,您需要内核模式调试器和内核级检查。如果它确实是恶意软件,那么AV不太可能捕获它,因为在内核级别,恶意软件对防病毒软件具有完全和完全的控制。打开任务计划程序,查看计划在电脑空闲时运行的所有Windows内置任务(有几十个,有些甚至管理员也无法禁用)。您应该(1)让它们运行一次,或者(2)使用另一个OS.Ntoskrnl.exe不是普通的PE可执行文件,而是内核模式区域。您无法从用户模式对其执行任何操作,您需要内核模式调试器和内核级检查。如果它确实是恶意软件,那么AV不太可能捕获它,因为在内核级别,恶意软件对防病毒软件具有完全和完全的控制。打开任务计划程序,查看计划在电脑空闲时运行的所有Windows内置任务(有几十个,有些甚至管理员也无法禁用)。你要么(1)让它们运行一次,要么(2)使用另一个操作系统。