我应该如何开始使用设备驱动程序

发布于 2024-09-13 00:26:27 字数 186 浏览 8 评论 0原文

我想在 Windows XP/VISTA/7 中用 C 语言编写驱动程序,尽管我认为这非常困难。我可以得到一些关于如何开始或要遵循的书籍的提示吗?驱动程序可以从我的 USB 端口/PCI/PCI Express 传输到 PC!

我知道在哪里可以查到书籍,我想知道我应该从哪些基础知识开始。我需要具备硬件知识吗?哪些特定书籍适合像我这样的新手?

I want to code drivers in C in windows XP/VISTA/7,though I think its very tough.Can I get some hints as to how to start or books to follow? Drivers can be from my USB port/PCI/PCI Express to PC!!

I know as to where I can search for books, I would like to know as to what the basic knowledge I should start with. Do I need to have hardware knowledge and which specific books are good for novice like me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丑疤怪 2024-09-20 00:26:27

第一步是从 Microsoft 下载 WDK

WDK 包含许多示例驱动程序和广泛的内核 API 文档。此外,用于驱动程序的构建环境和编译器。

有了这个,您可以选择使用哪个驱动程序模型,遵循哪个 api...等等。

网络上的一个很好的来源是 osronline 有许多文章和一个社区,可以在其中找到有关 Windows 下驱动程序开发的特定问题的答案。


针对具体问题,您的基础知识应该是什么。

  • 流利的 C 语言知识
  • 使用构建(makefile)系统
  • 多线程互斥/自旋锁/并发
  • 操作系统原理的整体知识(例如虚拟/物理内存之间的差异、分页、消息队列...)
  • 您想要深入研究的领域的具体知识。 (例如,USB 设备的注册接口/有关文件系统的知识/等)

(与硬件本身无关,因为大多数 Windows 都会向您隐藏低级硬件详细信息)

The very fist step is to download the WDK from Microsoft.

The WDK contains many sample drivers and an extensive documentation of the kernel API. Furthermore, the build environment and the compiler to use for drivers.

With this, you can choose which driver model to use, which api to follow ... etc.

A great source on the web is osronline with many articles and a community where to find answer for specific questions about driver development under windows.


To the specific question what your basic knowledge should be.

  • Fluent knowledge of C
  • Using build (makefile) systems
  • Multithreading mutex/spinlock/concurrency
  • Overall knowledge of OS principles (e.g. difference between virtual/physical memory, paging, message queues ...)
  • Specific knowledge of the area you want to drill into. (E.g. register interface for USB devices/knowledge about filesystems/etc.)

(Not so much about hardware itself, because mostly windows hides low-level hardware details from you)

筑梦 2024-09-20 00:26:27

首先在较低级别上工作会更容易,例如在微控制器上。这将使您了解硬件如何与软件配合使用。

It would be easier to work on a lower level first like on microcontrollers. This will give you an idea of how hardware behaves with software.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文