问题标签 [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.
c++ - 从 64 位窗口的 user32.dll 的 translatemessage() api 引发的第一次机会异常
user32.dll 的 TranslateMessage() API 抛出异常。当我尝试在 windbg 命令中使用 !analyze -v 分析异常时,我得到了以下信息。谁能帮我解码错误
我知道翻译消息试图访问一些错误的地址,但我该如何解决?
performance - 用户与内核系统调用之间的区别
系统调用是程序如何从操作系统内核请求服务。
它们可以发生在用户模式和内核模式中。
有什么区别?
例如:
- 高架
- 系统时间
usermode - 用户模式与用户空间
Userland只是说用户空间和用户模式的另一种方式吗?
例如,我是否可以说:
Userland中有各种子系统。
代替:
用户模式中有各种子系统。
..这是一种有效的说法吗?
windows - WFP 内核模式到用户模式的通信响应
我正在使用 Windows 过滤器平台来实现一个简单的防火墙应用程序。实际上我的驱动程序是一个标注驱动程序,它可以拦截两种事件:FWPM_LAYER_ALE_AUTH_CONNECT_V4和FWPM_LAYER_ALE_AUTH_LISTEN_V4。
驱动程序可以使用反向调用模型与用户模式应用程序通信:用户模式应用程序执行一些 IOCTL,驱动程序将它们保存在队列中并在触发事件时返回缓冲区。
我只有一个问题。我需要从用户模式应用程序接收到驱动程序的响应,以便驱动程序可以阻止或允许连接。
过去我研究过一个微过滤器驱动程序,我使用 FltCreateCommunicationPort 向用户模式发送一个事件并等待它的响应(使用来自微过滤器的FltSendMessage)。
所以问题是:WPF 有类似的东西吗?
kernel - 如何在 Windows 中从内核模式启动用户模式程序
我有一个驱动程序(内核模式)(KMDF),我有一个用户偏好表格。我需要从驱动程序代码开始活动并获取首选项。那么如何从 Windows 操作系统的内核启动该用户模式程序?
debugging - 解码激活上下文错误 0xC015000f
我需要找出根本原因
EXCEPTION_CODE:(NTSTATUS)0xc015000f - 被停用的激活上下文不是最近激活的。
使用用户模式事后崩溃转储。
调用栈:
我很确定这0x1fb2adc6
是ulCookie
传递给DeleteActCtx
调用的值(即DeactivateActCtx( 0, 0x1fb2adc6 )
),但我不知道下一步该去哪里确定它为什么在上下文之外被停用。
我不能用特殊的异常设置重新运行程序;我们从客户安装收到的这个用户模式故障转储就是我必须使用的全部内容。
的输出!PEB
显示了有关环境的以下内容:
debugging - dt nt!_TEB 和 dt ntdll!_TEB 有区别吗?
我可以使用从任意模块转储类型
在某些情况下,我看到例如
(并且它有效)虽然该模块被称为ntdll
:
正如您在上面看到的,ntdll
不能总是替换为nt
.
与它有区别dt nt!type
还是dt ntdll!type
可以始终以其快捷方式使用?我正在寻找一个可靠的来源答案,而不仅仅是“是”。
我试过了:
- 阅读 WinDbg 帮助
.hh dt
如果你有一些你想分享的背景知识,额外的问题:
- 是否有其他命令
nt
可以用来代替ntdll
或者是这个dt
特定的? - 是否还有其他具有快捷方式的模块?
- 这是从哪里来的(例如,这种行为是否有一些历史背景)?
c++ - c++中高速读取RS232的CTS线
我是一个相对的 rs232 新手。我有一个经过时间的阅读器芯片:
http://www2.l-3com.com/edi/dyna-digital.htm
已配置为每隔 250 毫秒在 RS232 com 端口的 CTS 线上喷出数据,每个数据集持续 62.5 毫秒。
数据格式为BCD;二进制编码的十进制。
我知道有 ::GetCommModemStatus 会告诉我 CTS 线路是打开还是关闭,但我需要快速监控。
有没有办法在 C++ 中以所需的粒度级别在一段时间内读取 CTS 行,也许是 api?
用户模式应用程序是否足以以所需的速度读取,还是我必须编写内核模式驱动程序?
非常感谢
io - 驱动程序和用户应用程序之间的主要区别是什么?
我知道用户应用程序只能在用户模式下运行,这是为了系统安全。相反,大多数驱动程序在内核模式下运行,以访问 I/O 设备。尽管如此,一些驱动程序在用户模式下运行,但被允许访问 I/O 设备。所以我有以下问题。驱动程序和用户应用程序之间的主要区别是什么?不能像某些驱动程序那样允许用户应用程序访问 I/O 设备吗?
谢谢。
debugging - 用户模式调试比内核模式调试有优势吗?
据我了解,从高层次上讲,用户模式调试为您提供了对进程私有虚拟地址的访问。调试会话仅限于该进程,它不能覆盖或篡改其他进程的虚拟地址空间/数据。
据我所知,内核模式调试提供了对其他驱动程序和内核进程的访问,这些驱动程序和内核进程除了原始进程地址空间外,还需要对多种资源进行完全访问。
由此,我开始认为内核模式调试似乎比用户模式调试更健壮。这给我提出了一个问题:当调试模式的两个选项都可用时,是否有必要选择用户模式而不是更健壮的内核模式?
我对这个概念还很陌生,所以我可能错误地考虑了这两种模式。我也很感激那里的任何见解,以更好地理解我可能遗漏的任何东西。我只是似乎注意到很多人似乎试图避免内核调试。我不完全确定为什么,因为它看起来更健壮。