问题标签 [drivers]

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

windows - 为什么我们从分页池中分配并使用 pragma 来分配分页部分中的函数?

我所有的驱动程序代码目前都是这样做的,主要是因为我与一位非常资深的驱动程序程序员一起工作了几年,他之前在 Windows 内核团队工作了 15 年,他要求这样做。我养成了这样的习惯,从来没有真正问过“为什么?”这个问题。

我知道明显的原因,例如与分页相比,非分页池稀缺,并且您无法对目标系统做出假设(例如有多少非分页内存可用)。但是我们最近继承了许多 Linux 驱动程序程序员,他们开始使用我的驱动程序代码(显然在 Linux 中没有这样的区别),当我告诉他们代码/数据必须随时放入分页池时,他们都起身了可能的。

那么,我们进行分页/非分页池分配的真正原因是什么?

0 投票
1 回答
91 浏览

windows - 是什么导致了磁盘上的驱动程序和映射到内存的驱动程序之间的差异?

嘿,今天我尝试对 NDIS.sys 进行二进制比较,我发现了一些奇怪的东西。我接受了一个函数,并开始区分它。磁盘(使用 IDA)和内存(使用 WinDbg)上的前 30 个字节相同。然后,有些事情发生了变化。我看到了类似“jmp _ imp _XXXXX”的东西。JMP 字节相同,但地址不同。

我的问题是 - 有什么不同?我认为这与搬迁有关。尽管跳转是在同一个模块中寻址,但它是一个长跳转,这使得它相对于模块基地址。如果发生重定位,它也需要重定位这个地址,尽管它在同一个模块上。

我是对的还是完全错的?:-) 谢谢。

0 投票
1 回答
2811 浏览

c++ - USB RF 接收器鼠标黑客

无线鼠标是如何工作的,从技术上讲,您通过 USB (PnP) 插入的射频接收器是如何工作的?我想知道我将如何访问接收器的数据部分并查看将信息发送到 OS 驱动程序所涉及的实际代码,或者查看涉及进行反编译的驱动程序。

0 投票
10 回答
21100 浏览

usb - USB 编程

我想编写一个微控制器(AVR)来通过 USB 控制一些 LED。它只是出于对如何构建和编程 USB 设备的兴趣。有一些 AVR 微控制器支持 USB 协议,或者我可以自己在另一个微控制器中实现 USB 协议,但我想知道用什么在计算机上编写自己的驱动程序。

我在系统编程方面的水平:总菜鸟(因此问题)

那么,为了更好地了解 USB 技术以及如何编写自己的驱动程序及其他内容,您会建议哪些文献?

PS:我知道:

  • C(可能在这里需要它)

  • Java(这里可能不需要它)

  • Python(希望可以在这里使用)

  • 汇编程序(希望这里不需要它 XD)。

  • ...

PPS:不同操作系统的驱动程序开发不同。我使用 Linux 和 Windows,因此欢迎与这些系统中的一个或两个相关的任何材料。

0 投票
2 回答
5472 浏览

windows - 什么是 Windows 操作系统中的驱动程序堆栈?

什么是 Windows 操作系统中的驱动程序堆栈?

我正在阅读NDIS中的材料,但不知道它是什么。

0 投票
1 回答
7006 浏览

download - 贝尔金路由器管理器分别下载

基本上我希望这样做

http://en-us-support.belkin.com/app/answers/detail/a_id/3796

但我无论如何都找不到贝尔金路由器管理器,

有人有吗?

谢谢

石匠

0 投票
1 回答
1541 浏览

memory-management - #pragma alloc_text(PAGE) 代码不是页面对齐的

对于 WinXP 32 位,我在使用 DDK(一个相当旧的版本:3590)时遇到了一个(可能的)问题。我的驱动程序包含一些未初始化的静态变量(我想它们应该分配给 .bss 部分)和可分页代码部分中的一些函数(标有#pragma alloc_page(PAGE, func))。可分页代码收集在单独的目标文件中。我发现链接器似乎将静态和可分页代码分配给内核地址空间中的同一页面(即变量位于 0xEFFCB0A0 且函数位于 0xEFFCB600 - 已通过 windbg 验证)。静态变量在中断环境中使用,因此它们的页面必须锁定在内存中。但如果同一页面包含可交换代码,恐怕变量会突然消失。链接器'

如何强制链接器/加载器将单独的页面分配给可分页代码?是否有一些“#pragma”来强制部分对齐属性?难道我做错了什么?

PS:驱动程序加载器确实足够聪明,可以将包含变量和代码的页面从分页池中取出,但是由于页面包含变量,它必须是可写的。我希望可执行代码位于只读页面中。内核模式下错误的数组访问仍然很难调试......

PPS:在我的函数之前和之后添加了 4096 个“nop”......好吧,它有效......没有更好的建议吗?

0 投票
2 回答
2069 浏览

opengl - OpenGL 3、OpenGL 4 实现中的已知错误

正如我们最终都知道的那样,规范是一回事,实现是另一回事。大多数错误是我们自己造成的,但有时情况并非如此。

我相信列出以下内容会很有用:

GPU 驱动程序中当前已知的与最新版本的 OpenGL 和 GLSL 的实现有关的错误是什么?

请记住始终张贴相关的显卡驱动程序版本

0 投票
2 回答
326 浏览

windows - 内核模式和驱动的区别

我只是想了解修补内核和编写驱动程序的区别。

我的理解是内核模式驱动程序可以做任何内核可以做的事情,并且在某些方面类似于 linux 模块。

那么,当微软阻止他们修补 Windows 内核时,为什么 AV 制造商会如此沮丧呢?

你可以通过内核补丁来做哪些你不能通过驱动程序做的事情?

0 投票
1 回答
350 浏览

mongodb - C# MongoDB 驱动程序故障(NORM)

我在生产中使用了 NORM 驱动程序。新年假期 - 这很酷,所以我的项目负载很高,我想设置一个复制集,但有一个问题 - Norm 不支持复制集:( . 据我所知分片?

帮助我:) 谁使用了 mongodb csharp 或官方 10gen 驱动程序和 replset?生产有问题吗?如果我选择另一个驱动程序,我将不得不重写存储库,但我不希望它徒劳无功。是不是有些问题?