驱动程序技巧:每个驱动程序作者都需要知道的技巧

驱动程序提示提供了一些简单信息,包括为已发布的 Windows 版本编写驱动程序的基本技巧、工具和最佳实践,以及执行步骤和更多信息的链接。

最新驱动程序技巧:
White PaperEvtCleanupCallback 什么时候运行?
White Paper如何使用 KMDF 日志
White Paper如何启用 Frameworks Verifier
White Paper诊断 KMDF 驱动程序安装故障

KMDF 技巧
White PaperEvtCleanupCallback 什么时候运行?
White Paper如何使用 KMDF 日志
White Paper如何启用 Frameworks Verifier
White Paper诊断 KMDF 驱动程序安装故障
White Paper该句柄仍然有效吗?
Microsoft.com如何查看驱动程序的 KMDF 日志

内存管理驱动程序技巧
White PaperMDL 中的实际包含内容是什么?
White PaperMmProbeAndLockPages 到底锁定什么?
White Paper公用缓冲区 DMA?不需要任何转换!
White Paper如何避免驱动程序用光内核模式堆栈?
White Paper所有那些连续的内存都来自哪里?
White Paper谁在使用池?
White Paper高效使用内存的六个技巧

I/O 请求驱动程序技巧
White PaperDO_DEVICE_INITIALIZING 到底有什么用?
White PaperI/O 取消:在什么时候这很重要?
White Paper为工作项排队:一次就足够!
White Paper太长、太短还是正好?缓冲区大小问题
White Paper我的设备不见了。为什么我仍然收到 IRP?
White Paper让您的驱动程序一次处理多个 I/O 请求

即插即用和电源管理驱动程序技巧
White Paper太奇怪了!您的设备不见了。您的驱动程序应该做什么?
White Paper当 WDF 驱动程序可以使用电源管理的 I/O 队列时
White Paper您好,用户模式?即插即用调用

驱动程序设计技巧
White Paper从样例代码到生产驱动程序:在样例代码中更改什么  
White Paper使用 C++ 编写内核模式驱动程序:应该做什么?不应该做什么?
White Paper没有时间编写总线驱动程序?尝试使用设备对象命名空间

同步驱动程序技巧:
White PaperWindows 同步原语摘要
White Paper一次一个!防止共享数据进入并发例程

安全性和可靠性驱动程序技巧
White Paper在您的驱动程序中帮助防止缓冲区溢出!使用安全字符串函数
White Paper如何对文件系统驱动程序进行发布签名  
White Paper属性为 FILE_ANY_ACCESS 的 IOCTL:是否安全?
White Paper当然,它是一个有效的句柄!(不是吗?)
White Paper您的设备命名空间有多安全?
White Paper针对已签名驱动程序的自定义电源设置  

构建、测试和调试技巧
White Paper使用 PREfast 在驱动程序源代码中跟踪难以发现的 bug
White Paper在 Windows Vista 上安装测试版内置驱动程序
White Paper在内核模式驱动程序中调用 DLL
White Paper如何在 C++ 驱动程序代码中使用函数 typedefs 来改进 PREfast 结果
White Paper如何让调试器不要查找不需要的符号?
White Paper您的驱动程序在 DPC 和 ISR 中花费了多少时间?
White Paper测试访问和分配内存时的错误
White Paper调试 Windows Vista
White Paper驱动程序在 Windows 2000 上不加载?VER_SET_CONDITION 可能是罪魁祸首

资源
White PaperWDK 文档下载
WHDC Portal/NodalWindows 的驱动程序签名要求
WHDC Portal/Nodal开发人员工具包和工具支持
WHDC Portal/Nodal来自 Windows 开发团队的提示
WHDC Portal/Nodal驱动程序开发人员社区资源
WHDC Portal/Nodal驱动程序技巧:Windows 设备驱动程序最佳实践
Other驱动程序开发人员 blog
Microsoft.comWDK 在线

更多信息:
来自 Windows 开发团队的提示