问题标签 [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 回答
137 浏览

driver - Windbg 找不到模块“Wdf01000.sys”

我正在运行 Windbg,并想检查 WDF 的源代码级调试。

如果我运行命令“!lmi wdf01000.sys”,我会得到以下结果:

如果我查看符号缓存,wdf01000.pdb 就在那里。我使用最新的 Windows 10 版本和实际的 WDK。

我跟着文章新支持 Windows 10 中 WDF 的源代码级调试

0 投票
0 回答
156 浏览

keyboard - 如何构建:键盘输入 WDF 过滤器驱动程序 (Kbfiltr)

我尝试构建示例,但自述文件中的说明似乎已过时。我尝试了不同版本的 Visual Studio,但没有成功。目标是Win10,主机是Win7。某处是否有最新的说明?我应该使用什么版本?

0 投票
1 回答
90 浏览

powershell - 来自powershell的参数错误,但不是来自cmd

从命令外壳 (cmd.exe) Win10 中,以下调用是正确的:

但是如果我从 powershell 做同样的事情,我会得到结果

与此相同:

如果我查看带有以下内容的字符串,一切似乎都是正确的。

0 投票
1 回答
152 浏览

driver - 如何从windows上层过滤器中获取过滤后的目标设备信息

我正在为 WPD 设备编写一个上层过滤器。我为 Read/Write/Ioctl 指定了回调函数,从回调声明中我可以得到 WDFQueue、WDFRequest。

但是从参数队列或请求中,我只能得到由我的驱动程序创建的设备信息。有什么方法可以检索我的驱动程序当前正在过滤的附加设备的信息?(例如,从内核日志中我可以看到对我的 android 设备的 ioctl 请求,但我不知道如何获取 android 设备对象获取设备名称)

0 投票
0 回答
113 浏览

kmdf - UDE 无效的设备描述符

我一直在研究微软关于USB 设备仿真的指南,并且已经达到了虚拟设备显示在我的设备管理器中的程度,但报告了一个无效的设备描述符。

您能看出指南的示例描述符可能无效的任何原因吗?

0 投票
0 回答
271 浏览

c++ - KMDF 驱动程序无法构建 VS 2017

我正在尝试构建和编译 MSDN 网站https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/writing-a-very-small-kmdf--driver中给出的设备驱动程序示例,但是构建操作失败,没有任何错误。在增加构建操作的详细程度后,我得到以下信息:

使用程序集“E:\Program Files (x86)\Windows Kits\10\build\bin\Microsoft.DriverKit.Build.Tasks.PackageVerifier.15.0.dll”中的“DPVerifierTask”任务。
任务“DPVerifierTask”
完成执行任务“DPVerifierTask”——失败。
完成构建项目“Driver.vcxproj”——失败。
已用时间 00:00:00.09
========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========
====== ==== 部署:0 成功,0 失败,0 跳过 ==========

提前致谢

0 投票
1 回答
350 浏览

windows - 谁拥有 WDFREQUEST 中的 WDFMEMORY?

我正在编写一个 Windows 内核驱动程序。我需要创建一个新的 I/O 请求并为输入缓冲区分配我自己的内存。

我的问题是,如果WdfIoTargetFormatRequestForIoctl成功完成,我是否也应该WdfObjectDelete(inputMemory)在清理中执行,还是会WdfObjectDelete(request)破坏内存和请求?此外,对于函数内的错误清理和完成例程中的错误清理,答案是否相同?

0 投票
0 回答
572 浏览

windows - Linker error when compiling windows kernel mode driver x64

I'm trying to compile the sysvad audio driver example found here: https://github.com/Microsoft/Windows-driver-samples/tree/master/audio/sysvad

Getting a linker error when compiling windows kernel mode driver x64

error LNK2019: unresolved external symbol __stdio_common_vswprintf referenced in function _vsnwprintf_l

Apparently my VC paths are jacked up, but i have tried many things, and cannot find where this lives. I have tried adding libucrt.lib but that gives me a different error:

warning LNK4257: object file was not compiled for kernel mode; the image might not run

Everything compiles fine for Win32 version.

0 投票
1 回答
652 浏览

c++ - 从 C++ 调用 WDF 驱动程序

我一直在尝试调用示例驱动程序。我已经编写了 DriverEntry 方法,在该方法中我初始化了驱动程序名称和指向驱动程序的符号 ling。

当我加载驱动程序时(使用 OSR Driver Loader,也可以使用 cmd,通过将驱动程序注册为新服务​​来完成),我在 DebugView 中得到预期的输出(允许查看内核调试日志的 sysinternals 工具)

在此处输入图像描述

现在我需要确保设备和符号链接都存在于 Windows 对象目录中。为此,我使用 WinObj(sysinternals 的另一个工具),这是输出

让我感到困惑的是,符号链接在设备文件夹中,而不是全球?. 设备中的符号链接 在此处输入图像描述

全球设备??

在此处输入图像描述

现在,最后,调用驱动程序本身。我为此目的使用 c++,这是我的代码,

问题是我无法为驱动程序获取有效句柄。无论我使用什么路径,hDriver 的值始终是 0x00000000000000a0 或 0xffffffff。我使用 createFileA 是因为我想访问系统内存。

我犯了什么明显的错误吗?

0 投票
0 回答
74 浏览

windows - Winsock 内核 - 重用套接字返回错误 0xc0000184

我正在开发使用 Winsock 内核模块连接网络的 WDF 驱动程序。当我尝试重用套接字时遇到问题。我成功地创建、绑定和连接套接字。之后,我将使用 WskDisconnect 函数断开套接字并显示成功状态。但是,当我尝试使用相同的套接字重新连接时,出现错误 0xc0000184。任何想法为什么我不能重用我的套接字?绑定也失败。