gpt4 book ai didi

winapi - 从内核模式关闭 Windows?

转载 作者:行者123 更新时间:2023-12-04 19:17:53 24 4
gpt4 key购买 nike

我正在尝试创建一个驱动程序,该驱动程序将拦截某个键序列并在 Windows 中从内核模式执行重新启动,类似于 REISUB Linux中的键序列。
我创建了一个键盘 Hook ,就像 Ctrl2Cap确实如此,我试过调用 NtShutdownSystem 重新启动系统。
处理程序确实检测到按键,但问题是当它实际调用 NtShutdownSystem ,我得到一个带有 ATTEMPTED_SWITCH_FROM_DPC 的 BSOD错误代码。
我假设这是因为我无法从正在执行的 DPC 关闭系统,所以我可能需要从其他地方执行我的代码。
但我不知道在哪里。
所以问题是:
如何在内核模式下检测到按键序列后关闭系统?

最佳答案

啊,我找到答案了……

好像是 ExQueueWorkItem 诀窍:

VOID NTAPI MyShutdownSystem(PVOID) { NtShutdownSystem(1); }

// ... [code] ...

PWORK_QUEUE_ITEM pWorkItem =
(PWORK_QUEUE_ITEM)ExAllocatePool(NonPagedPool, sizeof(WORK_QUEUE_ITEM));

if (pWorkItem != NULL) {
ExInitializeWorkItem(pWorkItem, &MyShutdownSystem, NULL);
ExQueueWorkItem(pWorkItem, DelayedWorkQueue);
}

关于winapi - 从内核模式关闭 Windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com