有没有人有任何书籍/教程可能对开始 Windows 设备驱动程序开发有用?
对于普通的 Win32/GUI 开发,Petzold 的书似乎是必不可少的参考。司机有这种情况吗?
我想指出,我实际上并不是在谈论硬件——我实际上想在软件中模拟一个硬件,但我想先看看一般情况下是如何工作的。
比利3
需要注意的一件事是设备驱动程序开发(架构和工具)的变化比 Win32 开发更多……因此,虽然 Petzold 1990 年代的书适用于 Win32,并且可能被认为是永恒的经典,但适用于多种驱动程序的架构(打印机驱动程序、网络驱动程序等)在各种操作系统版本中有所不同。
这是一篇评论各种书籍的博客条目:Windows 设备驱动程序书评。
不要忘记 DDK 中包含的 microsoft 文档:以及最重要的是 DDK 中包含的示例驱动程序(源代码)。例如,当我想编写一个模拟串行端口驱动程序时,我发现示例串行驱动程序文档与 DDK 文档相结合是非常宝贵的(而且足够了)。
要学好内核开发:
一种。大量示例内核程序:
Windows DDK 示例:
WDK 示例:
http://msdn.microsoft.com/en-us/windows/hardware/gg487428
或者只是搜索:
http://www.google.com/search?q=windows+ddk+samples
(因为上面的网址可能会改变,但谷歌可能会返回给你最合适/可达的)
湾。调试技巧很多,我觉得最好的是VMware(或VirtualBox)+windbg+串口调试:
http://www.google.com/search?q=windbg+vmware+kernel+debug
这篇论文是使用 VMWare + windbg(指环王0)的经典之作:
http://silverstr.ufies.org/lotr0/windbg-vmware.html
C。以及其他人构建的系统管理工具:
http://technet.microsoft.com/en-us/sysinternals/bb545021
(过去称为 SysInternals 由“Windows Internal”的合著者 Mark Russinovich 构建 - 必须阅读!!)
http://technet.microsoft.com/en-us/sysinternals/bb963901
从这些工具中,您将拥有巨大的调试选项。
d。加入 OSR 邮件列表(尤其是 ntdev 非常活跃,但还有其他类似 windbg 的):
http://www.osronline.com/page.cfm?name=ListServer
e. 在 channel9 上观看大量与 windows + 内核相关的视频(谷歌返回了 1000 多个链接):
http://www.google.com/search?q=site:channel9.msdn.com+kernel+video&num=100
F。论坛如:
http://social.microsoft.com/Forums/en-us/kernel/threads
http://social.msdn.microsoft.com/Forums/en-US/wdk/threads
也订阅了免费的 OSR 杂志(硬拷贝)。从 1998 年到现在,我一直收到我的 - 它是绕地球半圈交付的!
您可能应该使用最近的 Windows Driver Foundation (WDF) 框架,而不是旧的 WDM 框架。一个很好的起点是阅读WDF 概述 Word 文档。
如果您想阅读一本书,“使用 Windows 驱动程序基础开发驱动程序”就是您要找的书。
就个人而言,开始开发的最佳方式是通过现实世界的曝光。考虑到这一点,我会推荐这本书
这应该足以让您开始运行一些执行“某些事情”的代码,然后在您了解总体情况之后,您可能会关注诸如 - 缓冲/两者/直接方法之间的差异以及与它们相关的特性之间的差异。
当您需要有关某些特定主题的详细信息时,“Windows 驱动程序模型编程,第 2 版”也很有帮助。但首先,我认为最重要的是把事情放在上下文中,然后在此基础上再接再厉。