问题标签 [wdm]
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.
64-bit - DDK/WDM 开发问题...驱动程序不会在 x64 windows 平台上加载
我是 DDK/WDM 驱动程序开发领域的初学者。我有一项任务涉及将虚拟设备驱动程序从 x86 移植到 x64(英特尔)。我得到了源代码,我对其进行了一些修改,并使用 DDK(构建环境)成功地编译了它。但是当我试图在 ia64 Windows7 机器上加载它时,它不想加载。然后我尝试了一些简单的设备驱动程序示例
-- http://www.codeproject.com/KB/system/driverdev.aspx(我放了'--'以便能够发布超链接)和其他链接,但仍然是同样的问题。
我在一个论坛上听说你用来链接的一些库与新机器不兼容,并建议链接到另一个类似的库……但仍然没有用。
当我构建时,我按照建议使用“-cefw”命令行参数。
我没有关联的 *.inf 文件,但我将它复制到 system32/drivers 中,并且我正在使用 WinObj 查看下次重新启动它是否已加载到内存中。
我还尝试了这个程序(http://www.codeproject.com/KB/system/tdriver.aspx)将驱动程序加载到内存中,但仍然没有为我工作。
请帮助我......我坚持这个,我的截止日期已经过去了。我觉得我在这里发疯了,试图发现我做错了什么。
c - 如何在 Windows WDM 驱动程序中设置系统时间?
我们正在开发一种 GPS 时间同步硬件设备。我们想为该设备编写一个 Windows WDM 驱动程序。为了避免用户级延迟,我们希望在内核驱动程序级别设置 windows(XP/Vista/7) 系统时间。有谁知道如何做到这一点?
谢谢徐军
windows - 避免在 Windows 上重复代码签名的驱动程序代理
Windows 上的驱动程序应签名并提交给 Microsoft 进行代码签名,这是 64 位系统的要求。问题是,当您必须更新驱动程序时,您必须再次提交,每次发布一次。
是否可以构建某种代理或垫片驱动程序,以便我只需签名并提交一次,然后将我的代码放在单独的模块中?
当然,我不能只在 DLL 中移动工作代码,因为动态加载的模块也必须签名才能在 64 位内核模式下执行。如果我将代码放在原始文件中,将其加载到内存中(在启用执行标志的情况下分配)然后执行它会怎样?其他想法?
windows - 具有 Windows 驱动程序模型的虚拟驱动程序 - 从哪里开始?
我以前从未编写过驱动程序,但我正在启动一个开源项目,该项目涉及创建将通过网络发送 MIDI 数据的虚拟 MIDI 端口。
为此,我假设我将使用 WDM 创建某种虚拟驱动程序(除非可以使用内核挂钩?) - 但作为驱动程序开发的初学者,我不知道从哪里开始。
有谁知道任何有用的资源可以帮助我完成这个项目?或者我可以从类似项目中提取一些开源代码作为起点?
operating-system - Windows 内核模式驱动程序如何访问分页内存?
1) 用户模式进程有自己的“地址上下文”,它将用户模式虚拟地址映射到唯一的物理页框集合。也就是说,任何特定虚拟地址的含义随着 Windows XP 调度程序切换线程而从一个时刻到另一个时刻发生变化。
“切换线程”的一部分工作是更改页表,以便它们引用传入线程的进程上下文。
_
2) Windows 内核模式驱动程序在“任意线程上下文”中执行。
驱动程序可以创建一个系统线程并在其上下文中工作……但我说的是不创建系统线程的情况。
驱动程序可以使用“ExAllocatePoolWithTag”来分配分页(易失性存储中的内存)。
_
3)那么驱动程序如何在没有任何上下文的情况下访问分页内存?
如第 1 点所示,分页内存是通过“特定于上下文”的页表访问的。
当驱动程序在其他一些线程上下文中运行时......即页表条目指向与线程相关的 phy。mem,那么驱动程序如何访问他的分页内存?
PS:我是内核编程的菜鸟。不要生气。
kernel - 同一处理器上有两个自旋锁?
两个 CPU 可以同时持有两个“不同”的自旋锁吗?
那么......这是否意味着:一个单一(单处理器)CPU 不能同时持有两个“不同”的自旋锁?
那么……这是否意味着:单个 CPU 上的自旋锁数量不能大于 1。
PS:“不同”暗示与不同内存资源相关的自旋锁。
有人知道自旋锁在内部是如何工作的吗?...我的意思是,他们会在测试集操作期间冻结总线吗?我用谷歌搜索过,但没有绝对的答案。
windows - 从 NT/设备名称获取文件路径
我想将设备路径转换为文件路径。
我想通过进程ID获取进程名称,所以我正在使用这段代码
但它给出了路径\Device\hardDiskVolume1\windows\system32\taskmgr.exe
但我希望这是一个普通的文件名C:\windows\system32\taskmgr.exe
windows - DDK/WDM 将 wink32.lib 导入驱动
最近我试图在我的驱动程序中使用 W32pServiceTable。我确实在 SOURCES 中导入了 wink32.lib:
我在源文件中声明:
但是我的符号未解决。我读到,只有 GDI 驱动程序可以使用 wink32.lib。但我很确定其他驱动程序也可以链接到该库(但我不知道如何)。如果您能提供帮助,我将不胜感激。
windows - 如何获取 WDM 编译器的包含路径?
我正在阅读一些 Windows XP 设备驱动程序的源代码,我想知道 WDM 编译器的确切包含路径。我知道这些应该包括在内:
但是,我知道 WDM 构建必须使用其他一些路径。例如,我不知道在哪里'__int32'
定义。
顺便说一句,同样,我也想知道如何获取 WDM 链接器所需的库路径。
wdk - 如何在 WDK 中构建 WDM 驱动程序?
我想在最新的 WDK 中构建 WDM 驱动程序。WDM 和 WDF 的源文件有什么区别?如何将构建标记指定为 WDM 而不是 WDF?