问题标签 [usermode]

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 投票
1 回答
493 浏览

windows - 内核模式和用户模式驱动程序

我是驱动程序开发的初学者。我想知道内核模式驱动程序和用户模式驱动程序在主内存(主内存的一部分)中的确切位置。以及如何在Visual Studio中创建驱动程序项目时将驱动程序指定为内核模式驱动程序或用户模式驱动程序

0 投票
1 回答
2709 浏览

memory - 内核模式 - 它可以访问用户模式吗?

据我所知,内核模式代码可以访问任何可用的地址(高权限),但是如果我将用户模式指针传递给内核模式函数,它会在使用之前被更改吗?我的意思是:它会像在用户模式下那样通过分页/分段系统(或仅针对长模式分页)来解决吗?

0 投票
1 回答
218 浏览

c++ - 在内核模式下运行 dll

我只是好奇:我有一个 Windows dll,它使用 openGL 进行一些渲染/绘图工作,然后将结果返回给应用程序。

如果代码不是在用户模式下运行而是在内核模式下运行会更快吗?(没有中断和更高的优先级)

0 投票
2 回答
2900 浏览

linux - Linux用户空间PCI驱动

我正在尝试编写在用户空间中运行的 PCI 设备驱动程序。不是我的想法,客户想要什么。Target 是一个嵌入式 Linux 开发板,用户永远不会超过一个。我是一名经验丰富的 C 程序员,了解 Linux,只是不熟悉 Linux 驱动程序开发。

这真的是一个设备驱动程序还是只是一个库?我是否需要使用典型的调用 pci_register_driver 等,或者我可以使用 fopen 访问设备,并使用 mmap 和 ioperm 来访问它?

中断将使用 MSI 模型完成。还需要处理 DMA 传输。该设备将向用户传输大量数据。

关于这个主题的信息不多,LDD3 只用了几页的篇幅,在 SO 上我找不到其他任何东西。

提前致谢!

0 投票
2 回答
679 浏览

driver - 将值从内核模式发送到用户模式

我正在为反病毒程序开发内核模式驱动程序,但在驱动程序部分有问题

我想将一个字符串值(例如“String”)从内核模式驱动程序发送到用户模式应用程序。谁能帮我做到这一点?

0 投票
1 回答
341 浏览

virtual-address-space - 为什么内核模式下的驱动程序必须非常小心地直接读取或写入用户空间中的地址?

来自 msdn:

在内核模式下运行的驱动程序必须非常小心地直接读取或写入用户空间中的地址。这个场景说明了原因。

  1. 用户模式程序发起从设备读取某些数据的请求。程序提供缓冲区的起始地址来接收数据。
  2. 在内核模式下运行的设备驱动程序启动读取操作并将控制权返回给它的调用者。
  3. 稍后,设备会中断当前正在运行的任何线程,以表示读取操作已完成。中断由运行在该任意线程上的内核模式驱动程序处理,该线程属于任意进程。
  4. 此时,驱动程序不得将数据写入用户模式程序在步骤 1 中提供的起始地址。该地址位于发起请求的进程的虚拟地址空间中,这很可能与当前进程。

任何人都可以用其他方式解释这一点吗?第 2、3、4 点不是很清楚。谢谢。

0 投票
1 回答
56 浏览

operating-system - 指令如何知道它是在特权模式还是用户模式下运行?

教授在课堂上说“[汇编]指令知道它是在特权模式还是用户模式下运行,因为如果产生了陷阱,那么它就是用户模式”。

首先,我假设它不能是任何陷阱,而是一个特定的陷阱,表示该命令不能在用户模式下运行。

其次,这似乎非常低效:运行整个命令并检查是否存在陷阱。为什么没有设置标志或其他东西?这不是说如果它不起作用,那么我们就知道有问题吗?所以真的没有办法检查吗?

0 投票
2 回答
1988 浏览

debugging - 如何闯入 KD(Windbg) 导致资源管理器崩溃

由于我们的安全软件 dll 加载到 Explorer.exe 中,我在 Explorer.exe 中看到了崩溃。

崩溃发生在系统关闭期间。VM 连接到内核调试器。发生异常时,我没有看到内核调试器中断。我尝试了所有调试事件过滤器。但我无法成功。

有人可以建议我,为什么在出现异常时我看不到中断。 我想在异常发生时闯入调试器。我可以在内核模式中使用 SXE ud "dllName" 在卸载 perticula dll 时通知我吗?

例外是资源管理器崩溃,“0x6ad88b5 处的指令引用了 0x0000000 处的内存。无法读取内存”

0 投票
1 回答
199 浏览

operating-system - 用户模式和内核模式对用户提供保护?

就我个人而言,我认为用户模式允许受限访问,因此不能更改不应该更改的内容,因此是内核模式。

虽然假设还不够好。有谁知道他们为什么或如何为用户提供保护。

0 投票
5 回答
8981 浏览

windbg - 在内核转储中切换到用户堆栈

有没有办法在进行事后调试时切换到内核转储中特定进程的用户模式?

我记得在使用 .process 命令进行实时调试时这样做。