问题标签 [windows-kernel]
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.
windbg - Windows 内核驱动程序 - 内存访问异常
我正在尝试更好地了解驱动程序,并从头开始构建了一个非常基本的驱动程序。
我将它安装在 Windows 7 x64 机器上,并关闭了驱动程序签名强制。驱动程序安装得很好,但是当我尝试启动它时,我得到:
在对 Windbg 进行进一步调查后,我得到:
做 !analyze -v 让我:
似乎 Windows 甚至无法访问我的 DriverEntry 函数。关于如何解决此问题或进一步调试的任何想法?谢谢!
windows - 如何判断哪个进程在 Windows 中设置了高计时器分辨率
我的系统遇到了高计时器分辨率(NtQueryTimerResolution
返回 0.5 毫秒)。
某些进程必须以NtSetTimerResolution
5000 (0.5ms) 的值调用,但我如何确定是哪一个?我看到英特尔有一个名为Battery Life Analyzer的工具,可以显示每个进程的当前计时器分辨率,但该工具仅供英特尔合作伙伴使用。是否有其他工具或方法可以通过 WinDbg 查看它?注意:这似乎发生在启动时,因为设置断点不起作用(调试器启动时分辨率已经很高)。
c - Windbg条件断点与嵌套结构中的字符串比较
只有当嵌套结构中的字符串作为参数匹配我选择的特定模式时,我才尝试在函数内打断点,如下所示:
这个断点设置在函数的开头,在参数符号已经被解析之后。它的行为很奇怪,有时即使 $spat 中的模式不匹配它也会一直被命中,有时即使模式匹配它也不会命中。
我也试过这个,但没有运气,因为在嵌套结构的情况下我找不到使用 poi() 命令的方法。片段如下:
windows - 如何检索内核内线程的 CPU 时间?
从我的旧版驱动程序中,我调用 PsCreateSystemThread API 来创建几个线程。由于这个调用是在内核内部发生的,这些新创建的线程将在系统进程的上下文中运行。
我的问题是这些线程的句柄,是否有任何 API 可以用来获取它们的 CPU 时间?我对线程实际执行某些操作的纯 CPU 时间感兴趣(类似于我们通过调用 GetProcessTimes 获得的内核时间)。我知道有一个名为 GetThreadTimes 的 API,但它来自用户模式,我想要内核模式内的 CPU 时间。
谢谢
windbg - GFlags 在挂起的 GUI 上停止
今天我想知道为什么 GFlags 选项Stop on hang GUI出现在GFlags 用户界面的Kernel Flags选项卡中。内核是否有可能挂起的 GUI?
所以我试图从微软那里得到一些信息,但MSDN 只是说:
在 GFlags 中出现停止挂起 GUI 标志,但它对 Windows 没有影响。
所以我想知道更多:具有GUI的内核的内核标志,但它不是Windows内核?
尽管它似乎没有实际用途,但任何人都可以解释一下吗?
我还尝试从 WinDbg 获取更多信息.hh !gflag
,但它甚至没有声明这在 Windows 上不起作用。
winsock2 - winsock 内核 WSK 中类似 htonl 的函数的包含头文件是什么?
我对 WinSock 相当有经验,但这是我第一次进入 Winsock 内核。当我只包含 < wsk.h > 时,转换函数 ntohl、htonl ntohs 和 htons 未定义。我应该为这些转换函数使用什么#include。我已经完成了对“wsk htonl”的搜索,但没有成功。
c++ - 如所述,RtlStringCbPrintf 不在 ntstrsafe.h 中
我正在尝试将RtlStringCbPrintf与 Winsock 内核一起使用。我已经包含了 Ntstrsafe.h 但编译器给了我错误
如果我使用RtlStringCbPrintfA或RtlStringCbPrintfW那么它会编译。为什么我不能使用通用版本?在 Ntstrsafe.h 中,我看到RtlStringCbPrintfA和RtlStringCbPrintfW的原型声明,但没有RtlStringCbPrintf的声明,尽管评论引用了它。为什么我不能使用通用表单以便我的字符集属性选择要使用的版本?我的字符集属性设置为使用多字节字符集
dll - 是否有用于调用 Windows Native API 的开源库
我有一个需要调用本机 API 的应用程序(ntdll.dll 中的 Nt*/Zw* 函数调用)。是否有一个开源库可以为我提供数据类型定义、函数原型,甚至可能是用于动态加载和卸载 dll 的 C++ 包装器?
kernel - Windows 内核:修补操作系统模块中的代码
环境:
- 视窗 8.1 (x64)
- 视觉工作室
- 数据库
在驱动程序启动时,我需要更改 bthport.sys 的单个字节以更改它的运行时行为,我能够找到要更新的确切位置,不幸的是,在更新指令时,我得到 GeneralProtection faliure,设置CR0 寄存器的 WP 标志没有帮助。
如何以编程方式控制内核模式驱动程序中的页面保护?