问题标签 [wdf]

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 回答
1752 浏览

c - 为什么 Windows Driver Kit 中没有 WDM 内核模式驱动程序模板?

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

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

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

我的问题是……这篇文章的代码代表了您构建WDM驱动程序的方式,我希望能够使用 Windows 驱动程序工具包创建 WDM KMDF 项目模板,但是当我下载了 Windows 驱动程序工具包时(WDK),唯一的 KMDF 驱动程序模板是用于WDF驱动程序的。MSDN 有一篇文章描述了两者之间的差异。这对我来说有点奇怪。我期望得到一个开箱即用的模板,我可以修改它以像我链接的文章中那样工作,但我没有看到它。为什么没有 WDM KMDF 驱动程序的模板?

只是一个补充说明,您可以很容易地根据它创建设备的方式来判断驱动程序的类型(IoCreateDevice 表示 WDM,而 WdfDeviceCreate 表示 WDF)。

0 投票
0 回答
394 浏览

.net - 如何以编程方式在 Windows 7 上安装内核模式驱动程序

我有一个签名的驱动程序包,其中包含键盘的 sys、inf、cat、coinstaller 文件。我需要像 Windows 设备管理器一样安装软件包。我尝试了 PnpUtil,它确实安装了驱动程序并将其放在驱动程序商店中,但没有反映在设备管理器中。我尝试了 InstallHInfSection 并没有发生任何事情。哪个 API 像设备管理器一样安装驱动程序?

0 投票
1 回答
840 浏览

windows - SetupCopyOemINF 预安装不工作 Windows 7

我有 Windows WDF 设备驱动程序代码,试图使其能够预安装(在设备存在之前)。它首先检查是否存在有效的设备 ID,对于找到的任何设备 ID,它都会执行以下操作:

但是如果没有设备存在/插入,它会这样做:

在第一种情况下(存在设备),一切都很好。但是在第二种情况下,根据微软的“预安装驱动程序包”,它应该将 INF 复制到 c:\Windows\inf\oem.inf (它这样做)然后一旦设备存在,它应该安装基于驱动程序的驱动程序在 INF 中的信息上,它没有,我必须去设备管理器,删除未知设备,然后扫描硬件更改以使其安装。

在第一种情况下(设备存在),我们的驱动程序 .sys 文件被复制到 c:\windows\system32\drivers 目录,而在第二种情况下它永远不会这样做。如果我只是将 .sys 文件单独复制到 c:\windows\system32\drivers,一切正常。我可以这样做,但这似乎很笨拙(而且有风险),因为这一切都应该自动处理,基于我对 Microsoft 的“预安装驱动程序包”文档的阅读。

0 投票
1 回答
4148 浏览

windbg - WDKRemote用户密码?

我正在尝试通过将 Visual Studio 2013 连接到我的测试机器来调试 WDF 驱动程序。它创建一个名为 WDKRemoteUser 的用户,并在进行测试时尝试自动登录。有人知道这个用户的密码吗?

0 投票
1 回答
383 浏览

windows - Visual C# 中的 Windows 驱动程序测试

我正在尝试在 C# 中为智能卡设备的 WDF 驱动程序创建测试用例。但我在安装的 Visual C# 下找不到 Windows 驱动程序 > Windows 驱动程序测试模板。我正在使用适用于 Windows 桌面的 Visual Studio 2013。我什至在在线模板中找不到 Windows 驱动程序测试。我需要安装任何其他软件包吗?

0 投票
1 回答
297 浏览

visual-studio - 无法在 VirtualBox 机器上的 VS2013 中使用“用户模式调试器”

尝试配置 Visual Studio 2013 (pro, FWIW) 来调试 VirtualBox 主机。我按照本指南正确设置了主机:它适用于内核模式,但不适用于用户模式。这是调试器设置:

VirtualBox 主机的 Visual Studio 计算机配置

当我使用内核模式时它可以工作(并且我正在成功调试内核):

传输和限定符:内核模式

但我不能在用户模式下做到这一点。我跑了:

并看到它dbgsrv.exe实际运行,但我仍然得到这个:

传输和限定符:用户模式

实际上这是有道理的,因为我从未指定机器名称/IP(我应该在哪里输入?)。

防火墙已关闭,机器可通过网络访问(文件共享)。

那么如何完成用户模式调试(Windows User Mode Debugger, not Remote)?

0 投票
1 回答
2423 浏览

c - PsLookupProcessByProcessId 与 DWORD pid?参数 1 需要 HANDLE?

如何使用函数 PsLookupProcessByProcessId() 和从用户空间获得的进程 id (DWORD pid)?

我编写了一个用户空间 c++ 应用程序,它获取另一个应用程序的进程 ID(例如 calc.exe),并使用 DeviceIoControl 我可以通过我创建的结构成功地将 pid 发送给驱动程序。

打印出进程的正确 pid。但是在做的时候:

我收到警告:

C4022:“PsLookupProcessByProcessId”:实际参数 1 的指针不匹配

警告被视为错误,vs 不会让我编译。我查看了“PsLookupProcessByProcessId”的文档,它说第一个参数需要一个“句柄”。那么,在这种情况下,我将如何使用从用户空间应用程序发送的 DWORD pid 获取句柄?

0 投票
0 回答
46 浏览

kmdf - 如何唯一识别已打开我的 kmdf 驱动程序句柄的用户进程?

在我的 KMDF 驱动程序中,我想唯一标识哪个进程使用 CreateFile 打开了驱动程序的句柄。有没有办法使用任何 WdfXXX() 调用来做到这一点?

0 投票
1 回答
1365 浏览

windows - 如何修改鼠标输入 WDF 过滤器驱动程序 (Moufiltr) 以适用于 USB 鼠标?

此过滤器驱动程序示例适用于 PS2 设备,但我不知道如何使其适用于 x64 上的 USB 鼠标。有任何想法吗?

这是一个 INF 文件问题吗?还是也需要更改代码?

0 投票
3 回答
5820 浏览

registry - 在 Windows 设备驱动程序(WDF)中获取完整的设备实例 ID

我正在使用 WDK 8.1 来自定义 Windows 驱动程序。

我想在 WDF/KMDF 驱动程序中获取设备实例 ID,这对于每个设备都是唯一的。

  • 操作系统:Windows 7(x64 位)
  • 设备实例 ID:{device-ID} \ {instance-specific-ID}
  • 下有Device的注册表项:HKLM/SYSTEM/CurrentControlSet/Enum/PCI/
  • 在 HKLM/SYSTEM/CurrentControlSet/Enum//PCI 下,对于每个设备 ID,实例 ID 作为子键存在。
  • 使用WdfDeviceAllocAndQueryPropertyWdfMemoryGetBuffer能够获取特定的设备 id,但现在能够获取instance-specific-id

是否可以获得附加的 PCI 设备的完整设备实例 ID?

任何人都可以提出可能的方法,以便我可以使用 KMDF 获取设备实例 ID。