windows驱动开发-设备扩展
设备对象Device_Object记录通用设备信息,另外一些信息记录在设备扩展里,设备扩展由程序员自己定义,由程序员指定内容和大小,由I/O管理器创建,并保存在非分页内存中。
驱动程序中,尽量避免使用全局函数,因为全局函数往往导致函数的不可重入性,
重入性是指,在多线程程序中,多个函数并行运行,函数的运行结果不会根据函数的先后调用顺序而导致不同,
解决办法是,将全局变量以设备扩展的形式存储,并加以适当的同步保护措施,
除此之外,在设备扩展中,还会记录以下一些内容,
1,设备对象反向指针,
2,设备状态或驱动环境信息,
3,中断对象指针,
4,控制器对象指针,
由于设备扩展是驱动程序专用的,它的结构必须在驱动程序的头文件定义