二者是一个不太严格的双向链表关系:
1、DriverObject( DriverObject.DeviceObject域)-->DeviceObject1 (DeviceObject.NextDevice域)--->DeviceObject2-->....DeviceObjectN-->NULL
2、DeviceObject(DeviceObject.DriverObject域)-->DriverObject
3、同一驱动程序调用IoCreateDevice可以创建多个设备,最后创建的位于链表的第一个设备(表头结点)。这多个设备形成一个单向链表关系。显然,要遍历一个链表,只能从表头指针开始,即DriverObject.DeviceObject。而对某一个设备,由于其跟驱动对象是双向链表关系,故直接通过DeviceObject.DriverObject就能找到驱动对象。