问题标签 [kernel-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
188 浏览

memory-management - 操作系统如何防止来自汇编级代码的恶意内存访问?

我知道操作系统提供的用于保护程序不访问其他程序内存的系统调用。但这只有在我使用了 OS 提供的系统调用库时才有帮助。如果我自己编写一个汇编代码,为内核模式设置 CPU 位并执行特权指令(假设修改操作系统在内存中的程序段)怎么办。操作系统可以防止这种情况吗?PS出于好奇的问题。如果可以提供任何好的博客或书籍参考,那将很有帮助,因为我想尽可能详细地研究操作系统。

0 投票
0 回答
377 浏览

c - 无法在内核模式程序中写入 AHCI 控制器上的 SATA 磁盘

我正在编写一个实验性的内核模式程序来测试一些东西。我想对连接到 AHCI 控制器的 SATA 磁盘进行 IO。我有一个 C 驱动程序,该驱动程序以前在另一个类似项目上工作过,该项目在我不再拥有的另一台 PC 上运行。我现在拥有的 PC 是配备 ICH9 芯片组的 HP 笔记本电脑。所有读取和写入都是 2 个扇区大小,一次发生一个,因此它发出正常的 LBA48 DMA 读/写命令(无 NCQ)并获得一个中断信号完成。阅读按预期完美地工作,但写作失败 100% 的时间。PxSERR 保持为零,但 PxIS 中的 TFES 位亮起。设备在错误寄存器中显示 0x84(接口 CRC 错误,命令中止),在状态寄存器中显示 0x51(错误,查找完成,设备就绪)。这似乎指向布线问题或类似的硬件问题,但是 Linux 在同一设备上读取或写入同一分区没有问题,并且 BIOS 内置磁盘测试报告磁盘工作​​正常。向设备发送指定较低 DMA 模式的 SET FEATURES 命令没有任何区别,Linux 报告无论如何都将设备置于 UDMA/133 模式。(这甚至与 SATA 有关吗?)无论如何,有人能想到我缺少的东西吗?

0 投票
0 回答
95 浏览

windows - 两个内核模式驱动程序之间的通信

我在 win 8.1 上的 VMWare 虚拟机上安装了键盘过滤器驱动程序。我可以通过调试打印在控制台上打印按键。现在我需要使用键盘箭头移动光标。问题来了,如何告诉鼠标驱动我们要移动光标?通常,当我们想要移动光标时,只需移动鼠标即可。它产生中断并调用鼠标驱动程序。是否可以从我的键盘过滤器驱动程序调用 samo 中断?

0 投票
0 回答
1100 浏览

c++ - 在 Windows 内核模式下获取 UTC 时间

如何在 Windows 内核模式下获取 UTC 时间?

我知道 KeQuerySystemTime (但这是基于 1601 的)。

我找到了这个解决方案。

但这似乎是错误的,我对其进行了测试,大约错了 10 秒

0 投票
1 回答
1777 浏览

driver - 如何对内核 apc 进行排队

只是想更好地了解 APC。要对用户模式 ​​APC 进行排队,我们可以使用QueueUserAPC函数。那么如何排队一个特殊/正常的内核模式APC?谢谢。

0 投票
0 回答
577 浏览

c++ - 如何在 Windows 10 上获取 SSDT Shadow 的地址?

基于本文,我使用以下代码获取影子表的地址,并且从 WinXP x86 到 Win8.1 x86(经过测试的操作系统)完美运行,仅在无法找到地址的 Win10 x86 上工作。

ntapi.h

有人可以帮忙吗?

0 投票
0 回答
616 浏览

testing - 我在哪里可以获得 HLK 和 HCK 测试集供我的司机提交?

我有一个应用程序内核模式驱动程序(软件驱动程序,无设备),我想对其进行 hlk 和 hck 测试,以便将合并包(由 EV 证书签名)提交给 Microsoft。

问题是当我将驱动程序安装到测试系统并在 HLK Studio 中选择它时,我没有任何播放列表来运行兼容性测试。我在哪里可以得到它?

我知道我可以从 Microsoft 网站下载 HLK 播放列表,但它不是 xml 格式,而 HLK Stdio 仅支持 xml 播放列表。我试图将此文件称为 HLK.xml 并添加,但 Studio 写道它找不到具有此 ID 的测试。

而且我找不到任何 HCK 测试的播放列表。

请帮帮我。提前致谢。

0 投票
2 回答
2349 浏览

c++ - 内核模式到用户模式的通信

我知道从用户模式到内核模式的通信,并且我也知道事件/反转调用但是我需要从内核模式设备驱动程序将字符串值发送到用户模式进程,然后在 KM 中等待用于响应(例如 TRUE 或 FALSE BOOLEAN)。

取字符串“c:\file.txt”。现在我需要 KM 设备驱动程序将此字符串发送到用户模式,然后让该 UM 程序重新发送回 TRUE 或 FALSE 响应以供驱动程序处理。

我浏览了很多网站主题/帖子、文档示例,但找不到我要找的东西。

我在想也许我可以在用户模式程序中设置一个线程,它只是不断等待数据下降,然后在 KM 中我以某种方式暂停,直到返回响应......不确定

任何帮助表示赞赏。

0 投票
1 回答
2863 浏览

c - 在 Windows 10 驱动程序中将内核空间虚拟地址映射到用户空间虚拟地址

我正在 Windows 10(64 位)中编写内核模式驱动程序,其主要目的是从 DMA 读取,我想知道是否不是将内存块从内核空间复制到用户空间中分配的缓冲区,我可以以某种方式将地址暴露给用户空间(当然不是物理地址),并节省内存复制操作。

也许是这样的:

  1. 分配一块连续的物理内存(并将物理地址映射到内核空间中的虚拟地址)。

  2. 将内核空间中的虚拟地址映射到用户空间中的虚拟地址。

顺便说一句,由于只有一个内核空间,并且用户空间与系统中运行的进程一样多(对吗?),我必须使用某种句柄来调用进程,以便获得相应进程中的虚拟地址...

谢谢你的时间!

0 投票
1 回答
239 浏览

c - 内核驱动程序:如何获取结构中每个变量的正确内容?

我有以下代码涉及struct包含指针变量,我无法检索每个变量的正确内容。

有人可以帮助我吗?