前言:当前Windows驱动程序主要是以WDF框架进行搭建的,但是在了解WDF之前,熟悉WDM的基本知识,可以帮助我们更快的理解驱动中的许多概念
驱动程序的基本结构
文章目录
引入(从NT驱动开始)
1、驱动对象(DRIVER_OBJECT)
每个驱动唯一对应一个驱动对象,该对象由内核中的对象管理程序在驱动加载时创建。
完整的驱动定义:
- DeviceObject:设备对象
- DriverName:驱动名称
- HardwareDatebase:硬件数据库键名
- DriverStartIo:StartIO例程的函数地址
- DriverUnload:驱动卸载回调函数地址
- MajorFunction:派遣函数(文件驱动中使用)
2、设备对象(DEVICE_OBJECT)
设备对象记录通用的设备信息,每个驱动会创建一个或多个设备对象,用DEVICE_OBJECT表示:
typedef struct _DEVICE_OBJECT {
CSHORT
本文概述了Windows驱动程序的基础,重点关注WDM模型。内容包括驱动对象DRIVER_OBJECT、设备对象DEVICE_OBJECT、设备扩展的作用,以及WDM驱动的四个关键部分:物理设备对象、功能设备对象、过滤驱动和驱动入口。文章还详细阐述了设备层次结构的垂直、水平和复杂结构,帮助读者更好地理解Windows驱动的工作原理。
订阅专栏 解锁全文
1234

被折叠的 条评论
为什么被折叠?



