问题标签 [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.

0 投票
1 回答
284 浏览

windows - 谁处理 IRP 并决定发送哪个 IRP 以及按什么顺序发送?

在 WDM 中调试烤面包机驱动程序时,我的 Bus_PnP 具有 IRP 堆栈,其中分配了要处理的 MINOR 函数,但谁将其分配给 IRP 堆栈的次要函数。

0 投票
1 回答
2324 浏览

windows - 强制 USB 高速 EHCI 2.0 集线器枚举为全速 UHCI/OHCI 设备

在 Windows XP SP3 中是否有注册表项或某些设置,甚至可能在注册表中的设备级别,EHCI USB 2.0 高速集线器可以在主机级别枚举为 UHCI 或 OHCI 全速设备?

我看到一个问题,USB 1.1 全速设备由于与高速集线器上的事务转换器缓冲区的无限 NAKd 拆分事务而死锁。这只发生在某些情况下,全速设备仅在 XP SP3 中连接在 2.0 高速集线器后面。我已经向 Microsoft 提出了一个问题,他们已经确认这是一个已知问题,并且没有针对该问题的修补程序(也不会开发)。它已在 Vista+ 中得到纠正。

如果设备直接连接到主机控制器,或者在高速集线器上游有一个全速集线器,问题就会消失(因为没有拆分事务)。因此,如果有办法强制高速集线器枚举为全速设备,那么它可能会对我们有所帮助。

此外,硬件设计一成不变。系统已经开发完成,无法在设计的任何地方插入全速集线器芯片,或将设备直接连接到根集线器。最后,升级系统上的操作系统不是一种选择。

0 投票
1 回答
596 浏览

windows - 有谁知道在哪里可以获得旧 WDM 版本的烤面包机驱动程序示例?

当前的 8.x Windows 驱动程序套件示例包括烤面包机示例,但仅在 KMDF 和 UMDF 中实现。我有一个特殊的应用程序需要专门处理我认为不适用于 KMDF 的 PNP 消息。有谁知道我在哪里可以买到样品中曾经出现的 WDM 版本的烤面包机?

0 投票
3 回答
6408 浏览

windows - 从 DevicePath 中提取 USB PID VID

当使用 SetupDiGetDeviceInterfaceDetail 检索与连接的 USB 设备相关的 SP_DEVICE_INTERFACE_DETAIL_DATA 时,将返回一个名为 DevicePath 的字符串。

返回的字符串的格式类似于以下示例:

\?\usb#vid_abcd&pid_1234#000000000#{xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

问题:此字符串的格式/语法是否记录在任何地方和/或已知在所有版本的 Windows XP/Vista/7/8 中都是可靠的?

我正在尝试使用代码从该字符串中提取 VID 和 PID 值,以识别所引用的设备,并想知道这是否是检索 VID 和 PID 值的可靠方法。

0 投票
1 回答
179 浏览

ruby - 使用 WDM Gem 时,Guard 静默退出

每当我尝试在 Windows 上将 wdm 与 guard 结合使用时,guard 都会静默退出。但是,如果我强制轮询,则警卫工作正常。说明这一点的最好方法可能是举个例子。这就是我使用 wdm 运行守卫时发生的情况:

但是,如果我强制警卫轮询更改,那么它会在警卫控制台结束时正常运行:

我希望有人可能对这个问题有所了解。我已经尝试了很多搜索,但无法找到这个问题的任何答案。

我的 Gemfile 的相关摘录:

我的保护文件:

0 投票
1 回答
427 浏览

visual-studio-2012 - 捕获硬件中断

我正在编写设备驱动程序(内核级别)。我是内核空间的新手,希望在理解硬件中断方面得到一些帮助。

我正在为 Windows 7 的新硬件编写驱动程序

我已经为所有软件中断编写了中断服务程序。

我的问题是如何继续编写会捕获硬件中断的中断处理程序。

连续轮询是一个坏主意,所以任何人都可以建议我一些其他的想法来继续

提前致谢

0 投票
1 回答
810 浏览

windows - 驱动程序测试在解决方案中部署驱动程序时发生错误:系统找不到指定的文件

我正在尝试在 Visual Studio 2013 中创建一个非常简单的 WDM 驱动程序。我已经成功地在使用串行端口的 wmware 机器上配置了运行 win7 sp1 x86 的虚拟 PC。现在我想调试驱动程序,我得到了错误:

驱动程序测试在解决方案中部署驱动程序时发生错误:系统找不到指定的文件。

这是什么原因,我该如何解决这个问题?

这是显示错误的快照以及驱动程序代码本身

0 投票
1 回答
450 浏览

windows - 适用于 Windows 驱动程序的 EXPORT_SYMBOL()

是否有任何 WDM 机制,类似于 Linux 下的 EXPORT_SYMBOL,以便可以在另一个驱动程序 (B.sys) 中使用来自驱动程序 (A.sys) 的符号?

0 投票
1 回答
1065 浏览

c++ - 在哪里可以找到包含源代码的简约 WDM 驱动程序模板?

我遇到了经验很少的内核模式驱动程序。这是我想做的事情:

  • 有一个加载驱动程序的用户模式应用程序。
  • 让用户模式应用程序写入它,以便向它发送指令。
  • 让驱动程序将 RDMSR 指令发送到 Intel 芯片。
  • 将结果返回给用户模式应用程序。

我读过这篇文章,其中描述了您可以完成此行为的不同方式(缓冲 I/O、直接 I/O 或两者都不是)。

我的问题是……这篇文章的代码代表了您构建 WDM 驱动程序的方式,我希望能够使用 Windows 驱动程序工具包创建并修改包含源代码的默认 WDM 项目模板,但是当我下载 Windows Driver Kit (WDK) 时,唯一的 WDM 驱动程序模板是完全空白的,并且没有任何源代码。

在哪里可以找到包含源代码的简约 WDM 驱动程序模板的示例,该模板使用IoCreateDevice创建设备对象?

0 投票
0 回答
163 浏览

windows - OriginalDesiredAccess manipulation in ring0

Simple question. I wrote driver (WDM) which hook itself with callback's and intercept virtual memory functions, terminate, suspend end etc (i want to build little self defense). And.. if i try to terminate my app via standard application (without admin rights) - i can't do that, but if i try same thing via application with debug privileges - program successfully terminating. Where my mistake?

Method do detect WriteMemoryProcess:

Callback registration:

Thanks for advice!