01
驱动开发概述
什么是驱动程序 · 内核态与用户态 · 环境搭建 (WDK/Linux Headers)
入门环境
02
驱动框架与模型
WDM / WDF (KMDF/UMDF) · Linux 字符设备 & 平台驱动
WDFLinux
03
编译与构建系统
VS 项目配置 · MSBuild/Cmake · Kernel Makefile · Kbuild
编译构建
04
驱动签名与部署
Windows 签名流程 · Linux 模块签名 · INF/insmod/rmmod
签名部署
05
版本兼容性分析
Win7/Win10/Win11 · Linux API 变更 · NTDDI_VERSION / LINUX_VERSION_CODE
兼容宏
06
驱动调试技术
WinDbg · KDNET · printk/dmesg · ftrace · QEMU 调试
调试WinDbg
07
性能调优基础
IOPS/Throughput/Latency · 中断绑定 · 内存屏障 · 缓存一致性
性能调优
08
内存管理调优
NonPagedPool/PagedPool · slab/kmalloc · DMA 一致性 · Driver Verifier
内存DMA
09
并发与同步优化
自旋锁/互斥锁 · RCU · 工作队列 · completion/waitqueue
并发同步
10
I/O 路径优化
同步/异步 I/O · IRP 优化 · io_uring · 零拷贝 (DMA/MMAP)
I/O零拷贝
11
电源管理适配
D0-D3 · Linux Runtime PM · 空闲检测 · 电源策略
电源PM
12
即插即用与热插拔
PnP 管理器 · IRP_MN_START_DEVICE · probe · udev
PnP热插拔
13
中断处理优化
MSI-X · 中断线程化 · top half/bottom half · 负载均衡
中断MSI
14
定时器与超时处理
DPC/定时器 · timer_list/hrtimer · 高精度定时器 · 超时重试
定时器超时
15
注册表与配置管理
ZwOpenKey · sysfs/configfs · 设备属性 · 动态参数
注册表sysfs
16
日志与追踪系统
ETW · tracepoint/trace event · 动态日志 · 性能开销
日志ETW
17
错误处理与恢复
NTSTATUS/errno · 错误传播 · 设备重置 · 蓝屏/Panic 分析
错误恢复
18
安全性与权限控制
Secure Boot · HVCI · LSM/SELinux · 数据校验
安全签名
19
多架构适配
x86/x64/ARM64 · 大小端 · 指针兼容性 · 移植要点
架构移植
20
驱动测试方法论
KUnit/WDF Tester · 压力测试 · HLK/HCT · 回归自动化
测试自动化
21
版本回退与升级策略
语义化版本 · 向后兼容 · INF 版本 · modaliases
版本升级
22
容器与虚拟化适配
Hyper-V 合成 · VMware Tools · virtio · GPU 透传
虚拟化容器
23
图形与显示驱动
WDDM · DRM/KMS · 帧缓冲 · GPU 调度 · 分辨率适配
显示GPU
24
网络驱动调优
NDIS · NAPI/RPS/RFS · TCP 卸载 · 多队列/RSS
网络NDIS
25
存储驱动优化
StorPort/SCSI · block layer/blk-mq · NVMe · IO 调度
存储NVMe
26
音频驱动适配
WaveRT/PortCls · ALSA · 低延迟 · 格式转换
音频ALSA
27
USB 驱动开发
USBD/UCX · USB core/gadget · Bulk/Isochronous · 电源管理
USBgadget
28
PCIe 驱动开发
配置空间 · BAR 映射 · MSI/MSI-X · AER 错误处理
PCIeBAR
29
固件与 BIOS 交互
ACPI 表 · SMBIOS · UEFI 运行时 · 版本协同
固件ACPI
30
综合实战案例
从零开发 PCIe NVMe 驱动 (Win+Linux) · 调优 · 发布 · 排坑
实战NVMe