对于 DriverObject:
它是驱动的核心部分,每一个驱动程序,都会对应有一个驱动对象,每一个驱动对象都会派生出一个或对个的设备对象。。。
也可以说“设备对象重属于驱动对象”
对象又可以分成3类:
1:文件对象
2:设备对象
3:驱动对象
设备对象(DeviceObject)
它的flags 有几个域在过滤程序中经常用到。。。
DO_BUFFERED_IO(缓冲读取)-------------DO_DIRECT_IO(直接读取)内存描述符表
DO_DEVICE_INITIALIZING(设备的初始化)--------DO_POWER_PAGED----(电源是否可以出于分页处)
IRP,可以将它理解为请求,因为90%它代表的是系统或应用程序向驱动发来的请求。。。
它是驱动的一个重要的概念,想到与应用层的消息。。。是传递一种信息的媒介吧。。。
设备扩展(DEVICE_EXTENTION):
保存一些信息,解决全局变量的重入问题。。。
重入问题:当多个线程的程序中,多个函数并行运行,函数的运行结果不会受到调用的先后而影响。。。