问题标签 [device-driver]
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.
windows - 以编程方式安装 Windows NDIS 中间 (IM) 驱动程序
我正在学习 windows NDIS 中级(IM)驱动程序开发。我在安装时遇到问题。我总是需要手动安装它。
我的问题是如何以编程方式安装 NDIS 中间 (IM) 驱动程序
问候
纳瓦尼思
caching - 缓存 - 刷新和无效操作
我对缓存同步操作有一些疑问。
Invalidate:在 cpu 尝试读取设备更新的部分内存之前,需要使相应的内存失效。
Flush:在设备读取 CPU 更新的部分内存之前,CPU 必须将缓存中的内容刷新(写回也正确?)到内存,以便设备从内存中读取更新后的内容。
如果不执行刷新,它可能会读取内存中存在的垃圾数据,因为内存仍未使用写入缓存的内容进行更新。
请确认我的上述理解是否正确?
您什么时候想结合刷新和无效?我听说在玩设备控制描述符时,我们需要通过组合刷新和无效来进行同步。为什么这样?
我们是否需要遵循冲洗后无效的顺序?
是否存在无效后刷新有用的情况?
windows - 设备驱动程序 IRQL 和线程/上下文切换
我是 Windows 设备驱动程序编程的新手。我知道某些操作只能在 IRQL 执行PASSIVE_LEVEL
。例如,微软有这个如何从内核驱动程序写入文件的示例代码:
我的问题是:是什么阻止了在上述KeGetCurrentIrql()
检查后提出 IRQL?假设发生上下文或线程切换,当它返回到我的驱动程序时,IRQL 会不会突然出现,DISPATCH_LEVEL
这会导致系统崩溃?
如果这是不可能的,那么为什么不只检查DriverEntry
函数中的 IRQL 并一劳永逸地完成它呢?
windows - KeWaitForSingleObject 函数出现 PAGE_FAULT_IN_NONPAGED_AREA 错误
此代码会导致问题吗?(PAGE_FAULT_IN_NONPAGED_AREA)
可以换出waitEvent 变量吗?变量是否必须分配在非分页池上?
c - 在 linux 中提供鼠标驱动程序备用数据
我正在寻找更广泛的理解,以更广泛地了解将替代数据输入鼠标驱动程序以在不移动鼠标的情况下控制指针。
我已经修改了一个驱动程序(未经测试)以提供随机数据,但我需要能够打开/关闭随机鼠标数据,我不认为一个简单的 scanf 会要求“你想这样做吗?” 要去工作了。我认为我需要构建一个与驱动程序交互的某种接口。
任何人都可以给我任何观点吗?我不知道我需要做什么。
谢谢,肖恩刘易斯
usb - USB设备的多个驱动程序
USB设备是否可以支持多个驱动程序?我想支持我自己的专有驱动程序,但也想支持 CCID 作为第二选择。插入设备后,用户可以选择使用哪一个。要使用的驱动程序取决于 USB 描述符的内容,对吧?如果是这样,是否可以表明两个驱动程序都受支持?支持两个驱动程序的想法可行吗?
windows - glReadPixels() 上的 OpenGL“内存不足”
在低内存条件下,我在 glReadPixels() 上遇到了来自 OpenGL 的“内存不足”错误。我正在为具有针对这种情况的强大堆机制的程序编写插件,但我不知道是否可以或如何使 OpenGL 将其用于应用程序内存管理。通过这个[尽管过时的]线程在Mac OS [不是X]下的类似问题上引起了我甚至可能的想法:http: //lists.apple.com/archives/Mac-opengl/2001/Sep/ msg00042.html
我使用的是 Windows XP,并且已经在多个 NVidia 卡上看到过它。我也对我可能能够转发给用户的任何解决方法感兴趣(线程提到“增加虚拟内存”)。
谢谢,肖恩
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)将驱动程序加载到内存中,但仍然没有为我工作。
请帮助我......我坚持这个,我的截止日期已经过去了。我觉得我在这里发疯了,试图发现我做错了什么。
windows - 在 Windows 7 32 位中拦截和忽略键盘事件
我的硬件有问题,它不时发送一个“keydown”,然后是一个“keyup”事件:
keydown:无 LButton,OemClear 255
键控:无 LButton,OemClear 255
keydown:无 LButton,OemClear 255
键控:无 LButton,OemClear 255
在 Windows 中,每隔 1 秒或 2 秒,永远都是这样。
一般来说,它不会影响大多数应用程序,因为这个键是不可打印的。我认为这是一个特殊的功能键,例如媒体键或其他东西。它什么也没做。
但是,在一些听 keydown 和 keyup 的应用程序中,我得到了意想不到的行为。
问题:有没有办法在 Windows 中拦截这 2 个键盘事件(适用于所有应用程序和 Windows 本身)并使操作系统忽略它们?
这对我来说真的很重要,如果您能想到任何解决方案,我将永远感激不尽。
c - 在哪里可以找到有关在 C/linux 中为 USB 设备创建驱动程序的更多信息?
我知道wireshark中的捕获部分怎么样。解析和计算数据应该不是问题。指向我可以获得更多信息、教程或论坛的链接,以了解如何定位和从设备接收,或相关内容将是最有帮助的。