问题标签 [wdk]

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 投票
3 回答
2049 浏览

windbg - 为什么最新版的wdk没有windbg?

我刚刚安装wdk 7600.16385.1(从这里),

即使我选择安装所有组件,也会发现windbg丢失。

现在正式从wdk中删除了吗?

如果是这样,为什么?

0 投票
2 回答
3740 浏览

windows - 将过滤器驱动程序安装到现有设备

我正在学习如何编写过滤器驱动程序,并试图在现有的 HID 驱动程序(鼠标或键盘)上安装一个以进行练习。据我了解,我至少应该在硬件注册表项中添加一个UpperFilters键。还有什么我应该做的吗?

当我使用 regedit 手动将UpperFilters键添加到我的目标 USB 鼠标设备时,regedit 说它无法创建该键。我怀疑 regedit 不允许修改 Windows 提供的设备驱动程序堆栈注册表。是否有任何其他方法可以将我的过滤器驱动程序安装到现有设备堆栈?

0 投票
1 回答
460 浏览

wdk - 有没有关于如何使用 Windows 开发工具包编写 ndis 过滤器的好资源?

虽然 wdk 附带了一个示例,但它没有任何关于它如何工作的详细文档。

是否有任何资源可以完全解释其工作原理?

0 投票
1 回答
608 浏览

windows - 如何确定“安全删除硬件”对话框中显示的驱动器(卷)?

我有一个监视文件系统事件的应用程序。这需要目标卷的永久打开句柄。这对于系统引导驱动器和其他固定设备之类的东西很好,但如果我们正在处理托管在可移动设备(如 eSATA、USB、Firewire、iSCSI 等)上的卷,则非常不可取,因为用户可能希望随时拔掉这些时间,但打开的句柄将阻止“安全删除硬件”成功。

理想情况下,我想防止我的应用程序锁定到其父级可能默认出现在“安全删除硬件”中的任何卷上。问题是,似乎没有记录在案的方法来确定哪些设备出现在那里,哪些设备没有。我错过了什么吗?有人有线索吗?

请注意,可以查询设备的总线类型,这几乎可以为我完成工作:

然而,IOCTL 为 SATA 和 eSATA 返回 BusTypeSata - 但操作系统将后者识别为必须在“安全删除”对话框中显示的内容。

0 投票
2 回答
1601 浏览

visual-c++ - 在内核模式下读取文件

我正在构建一个驱动程序,我想读取一些文件。有什么方法可以使用“ZwReadFile()”或类似的函数逐行读取文件的内容,以便我可以循环处理它们。

MSDN 中的文档指出:- ZwReadFile 开始从给定的 ByteOffset 或当前文件位置读取到给定的 Buffer 中。它在以下条件之一终止读取操作:

  1. 缓冲区已满,因为已读取 Length 参数指定的字节数。因此,在没有溢出的情况下,不能再将数据放入缓冲区。
  2. 在读取操作期间到达文件末尾,因此文件中没有更多数据要传输到缓冲区中。

谢谢。

0 投票
2 回答
1250 浏览

filter - 将筛选器驱动程序附加到 Xbox 360 控制器的哪个设备?

作为学习练习,我正在尝试为 Windows 7 64 位上的有线 Xbox 360 控制器编写过滤器驱动程序。该控制器显示为 HID 操纵杆,因此看起来应该很简单。

我为我的鼠标制作了一个示例过滤器驱动程序,它可以交换鼠标左键和右键。这是基于 WDK 附带的 moufiltr 和 firefly 样本。但是,我无法将此示例转换为适用于 Xbox 360 控制器。

当我插入控制器时,设备管理器中会出现 3 个不同的设备:

  • 人机接口设备/符合 HID 标准的游戏控制器
  • 人机接口设备/USB人机接口设备
  • 适用于 Windows 的通用控制器类/适用于 Windows 的 Xbox 360 控制器

我应该将驱动程序附加到其中哪一个?

使用鼠标过滤器驱动程序,我可以按照萤火虫示例中的安装说明进行操作:在设备管理器中右键单击鼠标,选择“更新驱动程序”。使用 Xbox 360 控制器,我不确定应该为哪个设备安装驱动程序。还是他们都独立地与硬件交谈,我需要为每个人安装一个过滤器?

我应该注意,我已经尝试将过滤器驱动程序附加到 3 个设备中的每一个,以便打印出过滤器驱动程序可用的 IOCTL。对于“USB 人机接口设备”,我的过滤器没有收到 IOCTL。

对于符合 HID 标准的游戏控制器,它收到:

  • IOCTL_HID_GET_COLLECTION_INFORMATION(多次)
  • IOCTL_HID_GET_COLLECTION_DESCRIPTOR(多次)
  • IOCTL_GET_SYS_BUTTON_CAPS

对于适用于 Windows 的 Xbox 360 控制器,它会收到一堆 IOCTL,我无法找到它们的符号名称:

  • 0x80006000(多次)
  • 0x8000e00c(多次)
  • 0x8000e008
  • 0x8000a010
  • 0x8000e018
  • 0x8000e014

不幸的是,我仍然不知道我应该尝试过滤哪个设备。(我希望其中一个会收到与 IOCTL_INTERNAL_MOUSE_CONNECT 等效的操纵杆,但情况似乎并非如此。)

0 投票
1 回答
1237 浏览

windows - 在内核空间中使用 VC 内在函数

我的问题是如何在内核空间中使用内在函数(在 Windows 上),当头文件包含在 SDK 中(从 VC 10 安装)并且我用来编译驱动程序的 WDK 不知道这个文件时。当我#include <intrin.h>一切正常但当我开始编译时我得到

错误 C1083:无法打开包含文件:'intrin.h':没有这样的文件或目录

我尝试将适当的文件复制到 WDK 目录,但没有成功。我知道我可以开始编写内联汇编,但老实说,我想避免这样做,因为有内在的支持,我只是不知道如何访问它。

0 投票
3 回答
1257 浏览

c++ - 非常神秘/随机的 C++ WDK STL 7 错误:iosfwd(202):错误 C2144:语法错误

我有以下名为的简单文件Temp.cpp

我正在尝试使用 WDK 7.1 在 Windows XP Free Build Environment 中使用以下命令行对其进行编译:

而且我遇到了非常随机的错误,例如:

stl60如果我使用而不是,错误就会消失stl70,但这并不能解决问题。

问题的原因是什么?


更新:我尝试再次卸载并安装 WDK,但没有任何改变。:(


更新2:好的,显然错误在头文件本身尖叫:_SCL_INSECURE_DEPRECATE是原因。有人知道如何正确关闭它吗?(如果我只是注释掉这些行,我会收到关于一堆其他宏的更多错误。)

0 投票
2 回答
1003 浏览

c++ - C++ WDK STL 是否支持 wchar_t?我得到未解析的外部符号:(

我正在编译一个简单的 C++ 文件Temp.cpp

使用命令行:

在 WDK 7.1 Windows XP 免费构建环境中。

我收到类似(LNK2019)的链接错误:

如果我使用string而不是wstring,它可以工作。

问题的原因是什么?如何wchar_t在我的源文件中使用 -based 类型?

0 投票
4 回答
37760 浏览

winapi - 什么是 Windows 内核驱动程序?

什么是使用 WDK 编写的 Windows 内核驱动程序?

与普通应用程序或服务有什么不同?