驱动对象的一些关键字段
1.DriverStartIo (PDRIVER_STARTIO) : 指向StartIO入口函数的指针.
2.DriverUnload (PDRIVER_UNLOAD) :指向DriverUnload入口函数的指针。在驱动程序被从内存中卸载时,DriverUnload入口函数会被操作系统调用,你应该在该函数内部做一些与DriverEntry向对应的资源清除工作。
3.MajorFunction (一个数组,数组中每一元素又是一个指向函数的指针 PDRIVER_DISPATCH):数组中每一个指针指向一个入口函数。在接收到不同的请求包(IRP)时,OS会调用不同的入口函数。
4.DeviceObject (PDEVICE_OBJECT)
: 指向一个链表的指针,该链表中每一个节点都存储了一个FDO对象。每一个FDO都代表一个由该驱动维护的硬件设备实例。在WDM模型中,该链表由OS自动维护。
5.DriverExtension (PDRIVER_EXTENSION) :指向另外一个结构体,该结构体中唯一有用的字段为AddDevice。AddDevice字段指向一个入口函数。在操作系统发现一个新的设备实例时,它会自动调用AddDevice函数,你应该在该函数中做一些与设备实例相关的初始化工作。